Agents · opencode
Run opencode in the background
Point opencode at any provider and let it work in the background. wisp runs opencode run with the model and variant you pick, gives it a way to ask you questions, and turns the session into a short report.
Free and open source · uses your own SST account · macOS, Linux, Windows (beta) · Node 20+

What wisp adds to opencode
- A worktree per task. Each task gets its own branch from
origin/main, so several opencode runs can work on the same repo at once without colliding. - A report instead of a transcript. When the run ends you read a headline, the numbers that changed, the real diff from its own edits, the test run and what to do next.
- Questions mid-run. When it needs a decision, the card moves to Needs you and you get a notification, on your desktop or your phone.
- Ship it. One click commits, pushes and opens the pull request; the card follows CI and review, and Merge syncs your local main.
- Take over any time. Press T and your terminal opens in the worktree with
opencode --session <id>.
How wisp runs opencode
wisp doesn’t replace or wrap opencode’s model access: it starts the opencode CLI you already have installed and signed in, in headless mode, and reads its event stream. Roughly:
opencode run --format json --print-logs --log-level ERROR \
[--agent plan | --auto] [--model provider/model --variant <effort>]
Follow-ups resume the same session, so opencode keeps its context. Override the binary with WISP_OPENCODE_BIN.
Permission modes
Pick a mode per launch in the launcher (ShiftTab cycles them) or with --mode on the CLI. Here is what each one passes to opencode:
| wisp mode | opencode flag |
|---|---|
| Plan (read-only) | --agent plan |
| Edits | (its own permissions) |
| Full auto | --auto |
Calls opencode refuses come back on the card with Allow & retry, which re-runs the turn with just that call allowed.
Questions, /btw and take over
- Asking you
- An MCP tool,
wisp_ask_user, added through opencode’s inline config, with a long MCP timeout so it can wait for you. /btwside questions- Type
/btw did you update the docs too?while it works. The question is answered on a fork of the session (--session <id> --fork), so it knows what the run did and why; the running task never sees it. - Take over
- Press T on the card, or run
opencode --session <id>yourself in the task’s worktree. - Models
- Every
provider/modelfromopencode models, with each model’s variants as the thinking level.
- Attachments go in with
--file. - When a free model is rate-limited and opencode keeps retrying in silence, wisp stops waiting and says so on the card.
- If opencode isn’t on your PATH, wisp can install its own copy from the launcher.
Get started
- Install opencode and sign in. Follow SST’s instructions until
opencoderuns in your terminal. - Start wisp.
- Pick opencode in the launcher, describe the task and press Enter. From a shell:
wisp "fix the flaky auth test" --agent opencode.
Run it next to other agents
The same queue takes every harness. Compare one task on two of them side by side, or let Auto pick the harness and model per task from what worked before.
Guides: Run Claude Code and Codex in parallel · Run coding agents on multiple machines · Multi-agent coding across Claude Code, Codex and more.