*vigent.txt* orchestrator for coding-agent harnessesMIT
vim native harness orchestrator

Run every coding agent at once, each in its own worktree.

Claude Code, Codex, OpenCode, Gemini CLI, Cursor CLI and pi are harnesses: each runs its own agent loop with its own login. vigent runs yours side by side. Every agent gets a copy-on-write worktree from riftri, so ten agents on a big repo cost almost no disk, and none of them touch your checkout until you |:merge|.

npm i -g @vigent/clithen vigent .read the docs →
your agents
Claude Code · Codex · OpenCode, your logins
1 worktree each
own branch, own files, live +/− counts
copy-on-write
APFS · Btrfs · XFS · OverlayFS · ReFS
vigent — ~/code/shop
 SESSIONS       2 running      │ ▸ fix-flaky-test  Claude Code · opus · high · riftri
  1 ├ ● auth-refactor          │ 
  │   refactor/auth +41 -18    │ ❯ the checkout test fails about one run in ten
  2 └ ● fix-flaky-test         │ 
      fix/flaky-test +6 -2     │ It waits a fixed 50ms for the queue to drain. I'll
                               │ wait on the queue's drain event instead.
                               │  ▸ Edit test/checkout.test.ts
 ENGINES              3/4      │  ▸ Bash npm test -- checkout --repeat 50
  ● Claude Code   default      │ 
  ● Codex                      │ 50 of 50 passed. Ready for :diff.
 NORMAL  fix-flaky-test  fix/flaky-testopus · high  31.2k tok 
npm i -g @vigent/cli " Node 20+, macOS, Linux, Windows
cd your-repo && vigent .
riftri comes with it. Press i, type a task, Enter: the first agent starts in its own worktree. |vigent-docs| has the rest.

2. Worktrees, fast*vigent-riftri*

A plain worktree is a full copy of your checkout. riftri makes each agent's worktree a real git linked worktree whose unchanged files share storage, so a new agent costs almost nothing and only the files it changes take space.
shop/                         your checkout, untouched
shop-worktrees/
├── fix-flaky-test/           fix/flaky-test   shares unchanged files
├── auth-refactor/            refactor/auth    shares unchanged files
└── docs-pass/                docs/pass        shares unchanged files
Agents survive a restart. Removing one goes through git's safety checks, so uncommitted work is never thrown away. Review, then land it:
:diffwhat the agent changed, hunk by hunk
:mergesquash it into your branch as one commit
:pror push the branch and open a pull request
worktrees, riftri and landing work → |vigent-worktrees|
vigent isn't a harness itself. The harnesses are the ones you already use: each calls its model and runs its tools with its own login, and vigent starts them, shows what they do and lands their work. It never reads their credentials.
Claude Codeyour installed CLI, signed in as usual
Codexyour installed CLI, with its own model list
OpenCodeyour installed CLI and its providers
Gemini CLIyour installed CLI, signed in with Google or a key
Cursor CLIyour installed cursor-agent
piyour installed pi, with its keys or login
Pick with |:engine|, or give one agent its own:
:new fix the flaky test --engine codex
signing in, auto, per-agent engines → |vigent-engines|
If you know Neovim, you already know most of it.
inew agent: type a task, Enter
]s [s <Space>1–9switch agents
<Space>Epick the engine
<Space>Mpick the model
<Space>esessions sidebar: j/k pick an agent
<Space>Rreasoning effort
/patternsearch the transcript as you type · n/N next/prev
yy yibcopy the last reply / a code block
?every key, yours first
every key and command → |vigent-keys|
28 colorschemes built in (three with layouts of their own), any Vim or Neovim theme imports, and Nerd Font icons like AstroNvim. Or follow the theme your Neovim config sets: >
theme = "nvim"
<
Try them on vigent above: move the cursor to the line below and press Enter (or t anywhere), then j/k to preview and Enter to keep. Or click one.
importing your Neovim theme, icons → |vigent-themes|
vim:tw=78:ts=8:ft=help:norl: