Stop retyping the same cd, the same pnpm dev.
runit is a full-screen, fuzzy-searchable project picker for your terminal — it finds your projects, previews them live, and launches your dev server and editor for you.
Everything between "I want to code" and coding
Six small conveniences that add up to one big one: you never think about the plumbing.
Nothing else to install
The picker, banner, and preview are built natively in Node — no fzf, gum, or figlet required on your system.
Auto-detects your terminal
Alacritty, kitty, gnome-terminal, konsole, Windows Terminal, Terminal.app — finds one and spawns your dev server there. None found? Runs in the background and logs to a file instead.
Upgrades fix themselves
The shell hook that lets runit cd your terminal repairs itself automatically on every upgrade
— no dotfile editing when the internals change.
Full-screen, like an app
Takes over the terminal in an alternate screen buffer, the same trick btop and vim use. Your scrollback comes back untouched when you're done.
See before you leap
Fuzzy-filter the list and watch a live directory listing update in the pane beside it, before you commit to opening anything.
Scan wherever you want
runit --add-dir ~/Freelance adds a folder on the spot. --remove-dir takes one
back out, with a confirmation so a typo can't wipe your list.
Four system packages became one runtime
runit started as a bash function shelling out to fzf, gum, alacritty, and figlet. It's now a self-contained Node CLI.
One command. That's the whole install.
npm install -g @mouhinou/runit-cli
This detects your shell (bash, zsh, or fish) and writes the one line it needs into your
rc file automatically — safe to re-run, and it self-heals on every future upgrade. Open a new terminal and
runit is ready.
Shell not auto-detected, or installing in CI? Add it yourself →
eval "$(command runit --init bash)" # or: zsh command runit --init fish | source # fish