Skip to content
Building blocks and discussion for building a common Clojure code formatter
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

CLJ Commons Formatter

In the last ten years or so, source code formatters with limited/no configuration have become popular. Go is the most well known example, shipping with gofmt, but there are similar tools in Rust, JavaScript, Python.

CLJ Commons believes it would be useful for the Clojure community to be able to develop (or adopt) a single source-code formatter which is able to format Clojure source code to a canonical format. The purpose of this repository is to help develop the problem space, hear from different stakeholders, and determine whether such a tool is desired, possible, and likely to be useful. It seems unlikely that 100% of the community would want such a tool, but we feel like there is enough desire for a common formatting tool that this could still be valuable.

You can see the announcement of this project along with discussion of the goals, motivations, and potential benefits for building this tool at ClojureVerse.


  • Come to a common agreement amongst the community on a style for formatting Clojure code
  • Create a spec for formatting Clojure code
  • Create a test-suite for verifying adherence to the spec
  • Create a reference implementation formatting tool

Getting Involved

At this stage, we are looking to explore the problem space, hear from different stakeholders, and start wrestling with some of the tricky formatting decisions that will need to be made. No particular tool or formatting style has been chosen yet, though we welcome suggestions here.

General discussion about the idea can go on ClojureVerse. If you'd like to discuss a particular formatting question, open an issue on this repository, or comment on one that is already there.

For a tool like this to have the best chance of success, it needs to get input from a wide variety of people. If you've got thoughts, please share them.


You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.