Generate scaffolding for a new project based on a template

$ lein new [template_name] [project_name]

Start a REPL session either with the project or standalone
$ lein repl

Run the project's -main function with optional args
$ lein run [args]

Run the project's tests
$ lein test

Package up the project files and all its dependencies into a jar file
$ lein uberjar


lein [-o] [-U] [TASK [ARGS]]
lein [-h|--help]
lein [-v|--version]


Leiningen is for automating Clojure projects without setting your hair on fire.

Working on Clojure projects with tools designed for Java can be an exercise in frustration. With Leiningen, you just write Clojure.


lein help will show the complete list of tasks, while lein help TASK shows usage for a specific one.

lein help tutorial has a detailed walk-through of the various tasks, but the most commonly-used are:

lein new NAME

generate a new project skeleton

lein test [TESTS]

run the tests in the TESTS namespaces, or all tests

lein repl

launch an interactive REPL session in a networked REPL server

lein uberjar

package up the project and its dependencies as a standalone .jar file

lein install

install a project into your local repository

lein deploy [REPOSITORY]

deploy a library to a remote repository

Other tasks available include:
lein change

Rewrite project.clj by applying a function.

lein check

Check syntax and warn on reflection.

lein classpath

Print the classpath of the current project.

lein clean

Remove all files from project's target-path.

lein compile

Compile Clojure source into .class files.

lein deps

Download all dependencies.

lein do [TASK], ...

Higher-order task to perform other tasks in succession.

lein jar

Package up all the project's files into a jar file.

lein javac

Compile Java source files.

lein pom

Write a pom.xml file to disk for Maven interoperability.

lein release

Perform :release-tasks.

lein retest

Run only the test namespaces which failed last time around.

lein run

Run a -main function with optional command-line arguments.

lein search

Search remote maven repositories for matching jars.

lein show-profiles

List all available profiles or display one if given an argument.

lein trampoline [TASK]

Run a task without nesting the project's JVM inside Leiningen's.

lein update-in

Perform arbitrary transformations on your project map.

lein vcs

Interact with the version control system.

lein version

Print version for Leiningen and the current JVM.

lein with-profile [PROFILE] [TASK]

Apply the given task with the profile(s) specified.



Run a task offline.


Run a task after forcing update of snapshots.

-h, --help

Print this help or help for a specific task.

-v, --version

Print Leiningen's version.


Leiningen reads its configuration from the project.clj file in your project root. Either use lein new to create a fresh project from which to work, or see the exhaustive list of configuration options with lein help sample.

You can customize your project map further with profiles; see lein help profiles.


Check to see if your problem is a known issue. If not, please open a new issue on that site or join the mailing list at Please include the output of lein version as well as your project.clj file and as much of the relevant code from your project as possible.


Copyright (C) 2009-2017 Phil Hagelberg and contributors.

Distributed under the Eclipse Public License, the same as Clojure uses. See the file /usr/share/doc/leiningen/copyright.


This manpage is written by Phil Hagelberg <>

Copied to clipboard