Skip to content

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

◒  jus

A TUI app for Clojure dialects.


Scaffold new projects, run tasks, launch REPLs, and explore community resources.


Built on Babashka + Charm, with help from rewrite-clj + cljfmt.

Project Wizard dispatches to deps-new.



Features

•   Select and run bb tasks:


•   Launch the New Project Wizard to scaffold a new Clojure deps.edn project. More project types coming soon.


•   Launch an interactive REPL for a given dialect:


•   Explore Clojure community resources:


Status

Early days.


Requirements

Java
Clojure
Babashkav1.13.219
bbin


Installation

You can install jus via in-1 or bbin

Install with in-1

in-1 is a very simple way to install lots of things quickly and with no prerequisites.

Note: in-1 works for Bash, Zah and Fish. See the install page specifics.

To try jus without installing it permanently, just run:

source <(curl -sL in-1.cc) jus    # Bash or Zsh
curl -sL in-1.cc | source - jus   # Fish shell

The jus command will be installed in /tmp/in-1/bin/jus and then /tmp/in-1/bin will be added to your PATH. That means jus is only available in the shell you installed it into.

To install jus (more permanently) in $HOME/.local/bin/jus, run:

source <(curl -sL in-1.cc) --local in-1   # First install ~/.local/bin/in-1
in-1 jus                                  # Then install jus (or anything else) in ~/.local/bin/jus

Note: --local is just shorthand for PREFIX=$HOME/.local, which you can use to install to some other place. Just be sure that $PREFIX/bin is in your PATH.

Uninstall with in-1

To uninstall jus, just run in-1 --uninstall jus.


Install with bbin

If not already installed, follow these instructions to install bbin.

Then install jus:

bbin install io.github.paintparty/jus

Uninstall with bbin

bbin uninstall jus

Usage

Launch the TUI:

jus

If your project has a bb.edn file with tasks defined, you can interactively browse and select tasks:

jus tasks

Shorthand for jus tasks

jus t

Roadmap

Based on usage patterns and subject to community feedback going forward, here is a short list of features being considered:

  • Support a Quickstart/Fiddle wizard flow

  • Support idiomatic new project templates for additional dialects. Currently, the new project wizard produces a deps.edn project structure and bb.edn for JVM clojure projects. In order of priority, I would like to add support for: 1 Babashka 2 CLJS Browser 3 CLJS Node 4 Squint 5 nbb 6 Jolt

  • Leverage the TUI to expose the functionality of existing deps.edn project utility libs such as neil, similar to how jus currently dispatches to deps-new

  • A search UI for discovery of libs/functions à la The Clojure Toolbox, clojure.land, or Cloogle

  • Creation of a floating modal-panel to leverage for contextual menus and alerts (info, errors, warnings, and query results).

  • Lightweight "My Projects" directory/dashboard

  • Automated "recent news" aggregator feed for people who want to limit their exposure to the UI of Slack, Reddit, etc.

  • Interactive discovery, via pregenerated menu (at TUI app lauch), of relevant info for Clojure development:

    • Java/JDK version and install locations
    • Clojure version and install location
    • Clojure CLI tools installation status
    • Similar info about other dialects such as Babashka
    • If something that corresponds to one of these slots is not installed, the app could feature a CTA UI that would prompt the user to confirm installation process, which would exit the TUI and initiate the install.

Development

Install locally with bbin

Use this when developing from a checkout. The installed command continues to use this local source tree, so Clojure source edits are available the next time you run it.

  1. Install bbin and make sure its bin directory is on your PATH:

    brew install babashka/brew/bbin
    echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc
    exec zsh
  2. Clone this repository and enter it:

    git clone git@github.com:paintparty/jus.git jus
    cd jus
  3. Install this checkout under a development-safe command name:

    bbin install . --as jus-local

    bbin reads this project's :bbin/bin configuration, which launches jus.tui.core with -m. The --as name avoids replacing a separately installed jus command.

  4. Run it:

    jus-local
  5. Remove the local command when finished:

    bbin uninstall jus-local

To install the checkout as the normal command instead, use bbin install . --as jus and run jus.


Contributing

Issues for bugs, improvements, or features are very welcome.

Please file an issue for discussion before starting or submitting a PR.

If you want to submit a PR against an open issue, start by dropping a message in the open issue before doing any work or issuing a PR, in order to initiate communication and make sure everyone is on the same page.

If you have a feed that you want featured in the Community Resources section, please add it to one or more of the aggregators or curated lists that are featured in various resource menus, for example:


License

Copyright © 2026 Jeremiah Coyle

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.

Releases

Sponsor this project

Packages

Contributors

Languages