Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


cljdoc Unit Tests Libs Test Native Image Tests Code Coverage Join chat Clojars project bb built-in Contributors

A library that reads and writes Clojure, ClojureScript and EDN from Clojure and ClojureScript in a whitespace and comment preserving way.


Rewrite-clj v1 has been successfully and widely adopted.

Used In…​

Some projects using rewrite-clj v1

  • ancient-clj πŸ₯ - Version Metadata Retrieval for Maven Artifacts

  • antq πŸ₯ - Point out your outdated dependencies

  • babashka πŸ“ - Native, fast starting Clojure interpreter for scripting

  • carve πŸ₯ - Carve out the essentials of your Clojure app

  • classpath πŸ“ - Classpath/classloader/deps.edn related utilities

  • clerk πŸ₯ - Local-First Notebooks for Clojure

  • cljfmt πŸ₯ - A tool for formatting Clojure code

  • cljstyle πŸ₯ - A tool for formatting Clojure code

  • clojure-lsp πŸ₯ - Language Server (LSP) for Clojure

  • duck-repled πŸ“ - Transform your REPL interation into Pathom queries

  • kit πŸ“ - Lightweight, modular framework for scalable web development in Clojure

  • kusonga πŸ₯ - Renaming and moving namespaces in Clojure(script)

  • refactor-nrepl πŸ₯ - nREPL middleware to support refactorings in an editor agnostic way

  • reval πŸ₯ -reproduceable eval - namespace eval and storage with browser ui

  • rewrite-edn πŸ₯ - Utility lib on top of rewrite-clj with common operations to update EDN while preserving whitespace and comments

  • rich-comment-tests πŸ₯ - Turns rich comment forms into tests

  • test-doc-blocks πŸ₯ - Test AsciiDoc and CommonMark code blocks found in articles and docstrings

  • umschreiben-clj πŸ₯ - Rewrite utilities for refactoring clojure files

  • zprint πŸ₯ - Executables, uberjar, and library to beautifully format Clojure and Clojurescript source code and s-expressions

Some projects using rewrite-clj v0 and/or rewrite-cljs

  • depot πŸ₯ 🩹 - Find newer versions of your dependencies in your deps.edn file

  • confair πŸ“ - A configuration library for Clojure

  • gen-fn πŸ“ - Generate Datomic function literals from regular Clojure namespaces

  • kibit πŸ₯ - There’s a function for that!

  • lein-ancient πŸ₯ - Check your Projects for outdated Dependencies

  • mranderson πŸ₯ - Dependency inlining and shadowing

  • mutant πŸ₯ - Mutation testing for Clojure

  • repl-tooling πŸ“ - a base package for Clojure’s editor tooling

  • update-leiningen-dependencies-skill πŸ“ - Track project.clj dependencies across different projects

Have an update? Let us know!

πŸ₯ canary tested against rewrite-clj v1 lib test suite
🩹 source required minor change to work with rewrite-clj v1
πŸ“ no easy-peasy way to run automated unit tests found for this project


Rewrite-clj versioning scheme is: major.minor.release-test-qualifier

  • major increments when a non alpha release API has been broken - something, as a rule, we’d like to avoid.

  • minor increments to convey significant new features have been added.

  • release indicates small changes or bug fixes - starting with v1.1, it is the rewrite-clj release count over the life of rewrite-clj.

  • test-qualifier is absent for stable releases. Can be alpha, beta, rc1, etc.


A big thank you to all the people who have contributed to rewrite-clj!


We honor the original MIT license from rewrite-clj v0.

Code has been merged/adapted from: