❯ ctx
Frictionless context-switching, in the terminal setup you already have.
ctx is a TUI and CLI for managing repo-scoped work contexts:
each context is a fresh checkout on its own local branch, wrapped in
a terminal multiplexer session with your panes already laid out. Spin one
up per task, jump between them, archive them when you're done.
$ cargo install ctx-tui
╭─ [1] Contexts ───────────────────────────────────────────────────────────────────╮ │ NAME REPO BRANCH STATUS PR AGENT │ │ holy-tiger papaya-nvim mb/holy-tiger * open ✓ working │ │ tokeniser-perf bm25 mb/tokeniser-perf ↑2 draft idle │ │ ppo-baseline nano-rl mb/ppo-baseline failing blocked │ │ docs-pass nano-rl mb/docs-pass merged │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭─ [2] Repos ────────────────────────────╮╭─ [3] Archived ─────────────────────────╮ │ NAME URL ││ NAME REPO ARCHIVED │ │ papaya-nvim * github.com/mb/papaya-nv… ││ lsp-hover papaya-nvim 5 minutes ago │ │ bm25 github.com/mb/bm25 ││ stemming bm25 3 hours ago │ │ nano-rl github.com/mb/nano-rl ││ reward-fix nano-rl 2 weeks ago │ ╰────────────────────────────────────────╯╰────────────────────────────────────────╯ space Open o Open PR d Archive n New context / Filter q Quit ? Help
Agents let you work on several things at once. ctx takes
the friction out of switching between them.
Fresh checkouts, not worktrees
Every context is a full clone on its own branch, based on the up-to-date default branch. No shared state, no git commands failing because you're in the wrong directory.
Sessions laid out your way
ctx is unopinionated about your setup. You describe the
panes a context opens with (editor, git client, an agent, anything)
and every session comes up that way, in the multiplexer you already
use.
Status at a glance
Status columns are pluggable. Git state is built in; add PR status, agent state (working, monitoring, idle, blocked), or integrate your own.
Agent-native
Agents know how to use ctx. With the skill installed,
they can manage contexts themselves: tell one to do something in a
new ctx and it spins one up, works in there, and wraps up when it's
done.
Is ctx for you?
ctx assumes that:
- your work happens in one or more git repos;
- you work in the terminal, inside tmux or zellij;
Get started
Just ask your agent to install ctx and set it up.
$ claude "install and set up ctx following its README: github.com/Michael-JB/ctx"