Problem: "I have too many terminals open and can't keep track of which agent is working on what issue."
jefe gives you one terminal control plane for multiple LLxprt Code agents across repositories.
New here? Start with the step-by-step guide: docs/getting-started.md
- shows all your repos and agents in one place,
- keeps each agent in its own tmux-backed session,
- lets you quickly jump to the right agent and terminal,
- makes it easy to see status/output without tab chaos,
- supports day-to-day operations (create, edit, kill, relaunch, delete),
- persists your setup/state between runs.
- Dashboard: repositories, agents, terminal, preview.
- Split view: compact cross-agent operational view.
- Form / Confirm / Search / Help modals.
- Terminal capture mode: key/mouse input forwarded into selected running agent.
F12/t: toggle terminal capture focus.Alt+1..9(plus macOS Option-symbol fallback): jump to agent shortcuts.n/N: new agent / new repository.Ctrl-d: delete selected.Ctrl-k: kill selected agent.v: toggle active-only visibility (running repositories + running agents).l: relaunch dead agent.s: split view.?/h/F1: help.
| Platform | Status | Sandbox Engines |
|---|---|---|
| macOS (arm64/x86_64) | Supported | Podman, Docker, Seatbelt |
| Linux (x86_64/aarch64) | Supported | Podman, Docker |
| Windows | Not supported | — |
Seatbelt (macOS sandbox-exec) is available only on macOS. If a persisted
configuration references an unsupported engine, jefe normalizes it to Podman
at startup with a warning.
brew tap vybestack/tap https://github.com/vybestack/homebrew-tap
brew install jefePick the latest release and architecture-specific asset from:
https://github.com/vybestack/llxprt-jefe/releases/latest
Then install:
sudo dpkg -i ./jefe-vX.Y.Z-x86_64-unknown-linux-gnu.deb
# or
sudo dpkg -i ./jefe-vX.Y.Z-aarch64-unknown-linux-gnu.debIf dependencies are missing:
sudo apt-get install -fPick the latest release and architecture-specific asset from:
https://github.com/vybestack/llxprt-jefe/releases/latest
Then install:
sudo rpm -i ./jefe-vX.Y.Z-x86_64-unknown-linux-gnu.rpm
# or
sudo rpm -i ./jefe-vX.Y.Z-aarch64-unknown-linux-gnu.rpm(If upgrading an existing install, use sudo rpm -Uvh ....)
jefe launches llxprt agents, so install llxprt separately and ensure it is on PATH.
brew tap vybestack/tap https://github.com/vybestack/homebrew-tap
brew install llxprtnpm i -g @vybestack/llxprt-codeCode Puppy agents expose a Quick resume setting. When enabled, Jefe relaunches the agent with --quick-resume AGENT_WORK_DIR, using the effective local or remote work directory. This restores Code Puppy's most recent autosaved checkpoint for that Git root and branch; it cannot restore an in-flight shell process or an unsaved partial response. Newly created agents and fresh issue/PR sends default to a fresh session. The installed Code Puppy version must support --quick-resume; otherwise its CLI reports the unsupported option during launch.
By default, jefe resolves settings/state using platform paths, with env var overrides:
JEFE_SETTINGS_PATHJEFE_CONFIG_DIRJEFE_STATE_PATHJEFE_STATE_DIR
Use the --config <dir> (short -c <dir>) runtime argument to point an
instance at an isolated config directory. Both settings.toml and state.json
live directly under that directory, and external themes are loaded from
<dir>/themes/:
# Default instance
jefe
# Isolated dev/test instance that won't touch your main config/state
jefe --config ~/.config/jefe-devThis is handy when developing jefe with jefe: run a stable instance in one
tab while testing changes against a throwaway config in another. The directory
does not need to exist beforehand — it is created on first write. When
--config is supplied, it takes precedence over the JEFE_* path environment
variables.
Related runtime/env toggles:
JEFE_WINDOWED=1to disable fullscreen mode.JEFE_LOG_FILEandJEFE_LOGfor structured logging output/filtering.
If llxprt copy appears not to work inside jefe, verify tmux clipboard settings:
tmux set-option -g set-clipboard on
tmux set-option -g allow-passthrough on
tmux set-window-option -g allow-passthrough onYou can check current values with:
tmux show-options -g set-clipboard
tmux show-options -g allow-passthrough
tmux show-window-options -g allow-passthroughSee CONTRIBUTING.md for the contributor guide and
coding/architecture/display standards.
Build/test/developer details moved to docs/building.md.
Local PR gate command (matches CI):
make build(make ci-check is kept as an alias.)
