Cyberneura

j-menu

Type "j", press Enter, pick, press Enter. A TUI menu launcher for per-project commands.

It turns the commands you use in each project into a list you can reach in a few keystrokes. The selected command runs with the TTY fully attached, so interactive programs such as ssh, vim, and top behave exactly as if you had typed them. Renamed from jj-menu to j-menu in 0.3.0, as jj is the Jujutsu command.

Download the latest version

You can also install it with Homebrew (macOS / Linux):

brew install cyberneura/tap/j-menu

Supported OS: macOS / Linux

github.com/cyberneura/j-menu

Features

  • Configure it in YAML, TOML, or JSON, with submenus, arguments prompted at run time, and incremental search (/)
  • Entries are picked up automatically from package.json, Makefile, Cargo, and Gradle projects, with no configuration needed
  • With the shell function (eval "$(j-menu --shell-init zsh)"), entries such as cd or export affect your own shell, and the command is pushed into your shell history
  • Works with zsh, bash, and fish

Requirements & notes

  • Binaries are published for macOS and Linux (x86_64 and ARM64). Windows is not supported.
  • The Homebrew formula works on both macOS and Linux.
  • When moving from jj-menu, configuration files are renamed too — .jj-menu.yaml becomes .j-menu.yaml and ~/.config/jj-menu/ becomes ~/.config/j-menu/. The old names are not read.
  • The fish function needs fish 3.4 or newer.
  • Open source under the MIT License.