Skip to content

Latest commit

 

History

45 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

First, follow these instructions to install bbin, if it is not already installed.

Then install jus:

bbin install io.github.paintparty/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

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 issuing a PR.

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