Fork me on GitHub


Free Download (Version 0.4.6)

JDK 7 or above required. Get it for Windows/Mac or Linux.

Support me by purchasing it on the Mac App Store or funding me via Gratipay or Bitcoin.
What is it?
Nightcode is a simple IDE for Clojure projects targeting the command line, the desktop, the web, and mobile. It's just a standalone jar file that will run anywhere without being installed. Whether you choose to make a Clojure, ClojureScript, or Java project, Nightcode will use its built-in copy of Leiningen to build and run your code.

Join the discussion on /r/Nightcode and read the source code.
Built-in templates
After hitting New Project and giving it a name, you'll be presented with several ready-made templates. The console, game, Android, and iOS templates come in two flavors: Clojure and Java. Additionally, there is a desktop template using Seesaw, a web template using ClojureScript, a database template using H2, a graphics template using Quil, and a sounds template using Pink and Score. Lastly, there is a download option where you can clone a git repository.
Keyboard friendly
Hold down the control key (or command on OS X), and you'll see shortcut hints appear over every applicable widget. Holding it while pressing Up/Down/Enter will move your selection in the project tree and expand/collapse directories. Holding it while pressing PgUp/PgDn will move between recent files, much like tabs in other IDEs but without the UI clutter.
The build pane on the bottom-right gives you access to all the Leiningen commands to run, build, and test your project. With the embedded lein-typed plugin, the 'Test' button will automatically run type checking on projects that use Typed Clojure. Additionally, if you click a project.clj file, you'll see a 'Check Versions' button which will run lein-ancient to look for new versions of your dependencies.

The editor pane also has several integrations. In addition to syntax highlighting, Clojure and ClojureScript files also show a 'Doc' button which enables code completion thanks to the integrated compliment library. There is also a 'Paredit' button, which enables the self-described mode which completes parenthesis and adds advanced editing behaviors.
With the embedded lein-cljsbuild plugin, building ClojureScript projects is supported. Using the web template, you can build a complete web app using Clojure on the server side and ClojureScript on the client side -- all inside the same project. You'll even find an 'Auto' button in the build pane, which runs lein-cljsbuild's auto rebuild feature so your ClojureScript files rebuild every time you save them.
With the embedded lein-droid plugin, building Android projects is supported (Android SDK required, but not the ADT Bundle). The 'Run' button builds and installs your app on your connected device. The 'Build' button creates a release version of the app and lets you sign it. In addition, Android projects have a special 'LogCat' item in the sidebar, which will show your device's or emulator's logs.
With the embedded lein-fruit plugin, building iOS projects is supported (Mac OS X, Xcode, JDK 7, and RoboVM are required). The 'Run' button builds and runs your app in the simulator. The 'Build' button creates a release version of the app that can run on a device.
With the embedded lein-clr plugin, building ClojureCLR projects is supported. It works on Windows with a recent version of the .NET framework, as well as Unix-like systems with Mono. You will also need JDK 7 or above installed and added to the PATH, in order to run Nightcode itself.
While it is a Clojure-based tool, Nightcode also works with pure Java projects. You can start one with one of the built-in Java templates, or you can import an existing project and it will prompt you to create a project.clj file. You'll need to edit it a little bit so Leiningen knows how to build the project.