Polly
Multi-agent coding orchestrator. Polly breaks your task into sub-tasks and delegates each one to a different AI agent, with cross-vendor code review built in.
omni polly
omni # also launches Polly when a Claude credential is configured
How it works
Polly is a supervisor that never writes code itself. It decomposes your goal into sub-tasks and delegates each one to a sub-agent running on its own harness and git worktree. One agent implements, a different agent reviews. Each implementer opens its own PR. Polly never merges. The human decides.
| Sub-agent | Harness | Role |
|---|---|---|
claude_code | claude-native | Claude Code |
codex | codex-native | Codex |
opencode | opencode-native | OpenCode |
cursor | cursor-native | Cursor |
hermes | hermes-native | Hermes Agent (Nous Research) |
pi | pi | Pi (headless, any gateway model) |
claude_code, codex, opencode, cursor, and hermes are the primary
implementers, each running as a real CLI coding harness in its own terminal you
can open in the UI's Subagents panel to watch or take over. pi runs headless
as the review/explore specialist. Six distinct vendors means any implementer's
diff can be reviewed by a different one — the cross-vendor check is the point.
Tool approvals in headless workers
Polly's native workers launch in a headless pane where no human is watching to
answer a tool-approval prompt, so an Edit/Write/Bash that would prompt
stalls the worker. Each worker's bundle therefore declares a full-bypass stance
so it can edit and run unattended:
| Worker | Harness | Bypass config | Effect |
|---|---|---|---|
claude_code | claude-native | permission_mode: auto | passed through as --permission-mode auto |
codex | codex-native | yolo: true | --dangerously-bypass-approvals-and-sandbox |
cursor | cursor-native | yolo: true | --yolo (cursor-agent's don't-ask / full bypass) |
Set executor.config.yolo: false on a worker to keep it prompting — useful for
a read-only or must-approve sub-agent (its gated calls then surface as approval
cards). For the Cursor worker, executor.config.permission_mode: auto (or
exec_mode: auto / auto-review) selects Smart Auto (--auto-review) instead
of full --yolo, matching Claude's permission_mode: auto ergonomics.
Bypass only skips the interactive per-tool prompt — Omnigent's blast_radius
policy still DENYs the catastrophic set.
Skills
/fanoutruns independent tasks in parallel. Each gets its own git worktree and sub-agent. Each opens its own PR./cross-reviewsends an implementer's diff to a different-vendor reviewer. Blocking issues loop back as fixes until clean./investigatedelegates read-only work (debugging, audits, code understanding) to sub-agents and synthesizes findings.
Goal mode
In the web UI, for a top-level Polly session, the composer shows a Goal
button next to the input. Click Goal, enter a Completion condition (for
example, All tests pass and the implementation is complete), and choose
Start goal. Polly keeps working until that condition is met, with progress
and completion reported in the conversation.
Omnigent sends this to Polly as a /goal <condition> command — posted
immediately if the session is idle, or queued to open the next turn if one is
already streaming — so the objective persists across turns rather than being a
one-off instruction.
Goal mode is available on top-level Polly sessions whose brain harness is
claude-sdk or codex. This is the harness Polly's own supervisor loop runs
on — not the sub-agent harnesses in the table above, and sub-agent sessions
never show the control (including those on claude-native and codex-native).
omni polly runs the Claude variant; to use the Codex brain harness, start a
new Polly session from the web UI and pick the Codex harness.
- To stop early on the Claude harness, send
/goal clear. Codex has no equivalent: sending/goal clearon Codex sets a goal whose objective is the literal stringclear, so don't use it to stop. - A goal can also end without succeeding: Codex reports
blocked,usageLimited, orbudgetLimited, and Claude can report the condition as unachievable. - In read-only (shared, view-only) sessions the button is disabled.
When to use
- Large refactors that benefit from parallel work.
- Cross-vendor code review where one agent writes and another reviews.
- Specialized sub-tasks routed to the harness best suited for them.