Three agents means three terminals to watch, three “done”s to trust, and three diffs you didn’t read.
Coding agents that follow your process.
A desktop app that runs Claude Code, Codex, GitHub Copilot and OpenCode through stages you design.
Say what you want. Answer when asked. Approve the diff.
Everything in between is agents, checked by other agents. Watch SHOP-29 go from a note to main.
Noyan, your planning agent, files it
You said “add a coupon field at checkout”. Noyan read the code and filed SHOP-29 with what it found. It starts in priority order, once an agent is free.
Build the flow your tickets walk.
You decide the stages, in your order, and what each one is: an agent working, a check, or a delivery. If a check fails, the work goes back to the stage you choose. Start from a preset, or have one made from how you already work. Flip them to see the columns change.
Runs a skill you pick, in the ticket’s own worktree. Asks you when the ticket doesn’t say.
An agent, or you, passes or fails the work. Several check agents can run side by side.
Merge on your machine, on your click or on its own once the checks pass, or open a pull request.
Or have one made from how you already work.
Ask Claude Code, Codex, Copilot or OpenCode to read its own history and your repo. It proposes a flow, and every stage says why it’s there. Keep what you like, then Apply.
Stop watching terminals.
Anything waiting on you is turquoise, and nothing else is. One strip above the board lists it for the open project. Other projects show a badge on the rail, and ⌘J moves on to them.
The Needs you strip
One chip per thing waiting on you: a permission prompt, a question, your check, a check that failed three times. An open question stays until it’s answered, even when you answer in the terminal.
A notification, when it matters
Permission prompts, questions and stopped agents send a macOS notification. None while that ticket’s terminal has focus. Working normally is quiet.
Pause, and it stays paused
One button holds every agent in a project, or all of them. Nothing is lost, and nothing resumes until you say so.
By the time it reaches you, it passed your checks.
The diff, the agent’s summary, every check’s report, the decisions it made, and a list of what the agents couldn’t verify themselves. Run it from the review. Then merge, or open a PR.
On Local merge, if main moved since the checks ran, the merge check runs your command, pnpm test, on the combined result first. If it fails, the work goes back to the agent. A conflict found during Review goes back the same way, with no click needed.
Send back goes to the stage the flow names. To send a ticket anywhere earlier, drag its card.
Try it right here.
shop-web, with a flow of its own. Click around: nothing really runs, and nothing leaves this page.
Big features: plan first, then build in pieces.
Two things Otaq does for a feature that’s too big for one sitting. Both are stages in a flow, so they show up on the board like everything else.
Plan it first
With the Spec first preset, planning is stages. An agent asks you one question at a time and commits each decision to your project’s docs. Another works out how. A third writes the plan as numbered pieces. You check all three at Spec review, then Dev starts. Small tickets skip the planning stages.
Build it in pieces
A big ticket stays one card. Its build agent, the one in charge, starts a helper agent per piece, each in its own worktree, and merges their work. The helpers show as rows inside the card. A helper’s question goes to the agent in charge first; only what it can’t settle reaches you. The checks judge the whole ticket, and it takes one slot of your agent limit.
An agent is a name, a tool, a model, instructions and skills.
Make as many as you like and put one on each stage. Mix vendors: one company’s model can write, another’s can check. Names below are examples. Models are each tool’s “always the newest” choices, so they never go out of date.
Noyan picks one per ticket from your notes (“docs-only change”, “touches payments”). Your choice always wins, and a stage with one agent just uses it.
Each tool’s limit windows with reset times, and today’s tokens. When one tool runs out, only its agents wait;Use fallback now moves them to another. Otaq shows no dollar estimates.
Your code stays on your machine.
Your tools, your sign-ins
Otaq runs the real claude, codex, copilot and opencode programs with your own subscriptions and permission modes. Never your passwords or keys.
No account, no server
Tickets live in ~/.otaq. Worktrees sit outside your repository, one per ticket. Pushes happen only at a Delivery stage you set.
Otaq itself sends nothing
Unless you opt in to anonymous usage data: which features are used, the Otaq version and your OS. Never code, ticket text or file names. There is no update check.
v0.1Honest status
Otaq is used daily by its author and is early. There are no prebuilt releases yet: build it from source. macOS is the most tested platform; Windows and Linux build and run but have seen less use. Expect rough edges, and please open issues.
Build from source
Rust 1.99+ and Node 24, plus at least one agent tool installed and signed in.
Fair questions.
Why not tmux, a few worktrees and a script?
That works until the third agent asks you something and you miss it. Otaq adds the parts a script doesn’t: a board that is the picture of your flow, checks that run before you see the work, a strip that tells you which one needs you, and a merge that only happens the way your flow says.
Does my agent change?
No. Otaq starts the real claude, codex, copilot or opencode program in a worktree with a ticket. Your sign-in, permission mode, skills, hooks and settings stay as they are. What Otaq writes into a tool’s config is mainly that the folders you add are trusted; Settings → Agent tools lists everything.
Can it merge on its own?
Only if you set a Delivery stage to automatic, and then only after its checks pass. The default flow always waits for your click.
What does checking cost in tokens?
A check is another agent session, so it costs what that tool charges for it. Activity (⇧⌘U) shows each tool’s tokens today and what’s left in every limit window; each ticket shows its own tokens too. You decide how many checks a flow has and which model runs each.
Can my team review on GitHub instead?
Yes. The Team PR preset has no Review stage: checks pass, a pull request opens, and your team reviews it there. Use Delivery · PR in any flow you design.
Is it Mac only?
No, but macOS is the most tested platform. Windows and Linux build and run, with less use so far. Warm builds need a filesystem that can clone copy-on-write (APFS, btrfs, XFS, ReFS); elsewhere a new worktree builds from scratch.
What leaves my machine?
Only what your agent tools, git, gh or az send, with your own sign-ins. Otaq has no account and no server. It sends nothing itself unless you opt in to anonymous usage data, and there is no update check.
Hand off the tickets.
Keep the decisions.
Your flow. Your agents. Your call.