Create your fleet of lanes. One orchestrator, the right implementer for every job.
$ npx -y skills add amElnagdy/delegate-skills --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: amElnagdy/delegate-skills
What's inside
Create your fleet of lanes. One orchestrator, the right implementer for every job.
Discover the implementer CLIs already installed on your machine, organize them into lanes like
feature, tests, and ui, then delegate by lane โ or choose one implementer directly. Either way,
you keep the review and the commit.
npx skills add amElnagdy/delegate-skills
Then ask your orchestrating agent to create the fleet:
Use $delegate-setup to discover my installed implementer CLIs and create a fleet for feature, tests, and UI work.
Or delegate directly:
Use $codex-delegate to have Codex implement the refactor in services/billing/, then review and commit it.
flowchart LR
S["$delegate-setup<br/>discover โ propose โ approve"] --> F["Example fleet"]
O["Your orchestrator"] --> F
F -->|"feature"| A["OpenCode"]
F -->|"tests"| B["Codex"]
F -->|"ui"| C["Cursor"]
A --> R["Review the diff<br/>Run the gates"]
B --> R
C --> R
R --> L["You land the commit"]
| Skill | Job |
|---|---|
delegate-setup | Discover installed CLIs, propose fleet lanes, and write global or project config after you approve. Never dispatches work. |
A fleet is your set of named lanes. Each lane binds a kind of work to one implementer and optional dials such as model, effort, or variant. Setup discovers what is available, proposes a compact fleet, shows you the complete configuration, and writes only after explicit approval.
Configuration can apply globally or to one repository. Once it is ready, dispatch with the matching
*-delegate skill and --lane <name>. Explicit flags override lane dials, and the wrong implementer
skill for a lane fails loud. Project config is content-bound to explicit setup approval, so cloned or
edited project lanes fail closed until re-approved. See the
delegate-fleet.v1 schema for paths, supported dials,
and overlay behavior.
Skip setup when you want one implementer or one-off dials. Pick the skill for a CLI you have:
| Skill | Implementer CLI | Write access (default) | Read-only run | Resume |
|---|---|---|---|---|
agy-delegate | Google Antigravity (agy) | Antigravity's own permissions; bypass opt-in | โ 1 | --resume-last, --conversation <id> |
claude-delegate | Claude Code (claude) | acceptEdits + explicit tool surface | --read-only (plan mode) | --resume-last, --session <id> |
codex-delegate | OpenAI Codex (codex) | --sandbox workspace-write | --read-only | --resume-last, --session <id> |
cursor-delegate | Cursor Agent (cursor-agent) | --force; --no-force withholds command approval | --read-only (plan mode) | --resume-last, --session <id> |
grok-delegate | Grok Build (grok) | workspace-scoped; --full-access opt-in | --read-only โ best-effort 2 | --resume-last, --session <id> |
kimi-delegate | Kimi Code (kimi) | auto permission mode, always | โ 1 | --resume-last, --session <id> |
opencode-delegate | OpenCode (opencode) | agent build (--model required) | --read-only (agent plan) | --resume-last, --session <id> |
pi-delegate | Pi (pi) | full local tools โ no sandbox, no permission modes 1; project trust opt-in | --read-only (read,grep,find,ls) | --resume-last, --session <id> |
qoder-delegate | Qoder (qodercli) | auto permission mode; bypass opt-in | --permission-mode plan | --resume-last, --resume <id> |
vibe-delegate | Mistral Vibe (vibe) | accept-edits; --full-access opt-in | --plan-only (plan agent) | --resume-last, --session <id> |
Each skill name links to its SKILL.md, which owns that implementer's prerequisites, flags, and
caveats. Building one for another CLI? Claim it first,
then see CONTRIBUTING.md.
Browse first:
npx skills add amElnagdy/delegate-skills --list
Install the package, the setup skill, or one implementer skill:
npx skills add amElnagdy/delegate-skills
npx skills add amElnagdy/delegate-skills --skill delegate-setup
npx skills add amElnagdy/delegate-skills --skill codex-delegate
To pin an installation, append an existing release tag as @vMAJOR.MINOR.PATCH. The Skills CLI
installs by git ref, not by metadata.version in SKILL.md.
Install for a specific agent, or globally:
npx skills add amElnagdy/delegate-skills --skill codex-delegate --agent claude-code
npx skills add amElnagdy/delegate-skills --global
Works with any orchestrating agent the Skills CLI supports.
Whether you choose the implementer directly or through a fleet lane, every dispatch follows the same review-first loop:
relay.mjs.result.json.Use $claude-delegate to have a separate Claude Code session implement the parser fix, then review and commit it.
Use $opencode-delegate with --lane feature to implement the billing workflow, then review and commit it.
Use $codex-delegate to run this queue of migration tasks through Codex while I review each one.
Every relay speaks the same delegate-relay.result.v1 contract: status, exitCode, signal
(with a host-killed hint when the OOM killer ends a run), the implementer's own final report,
touchedFiles, and a session id where the CLI exposes one. Learn the loop once, swap the implementer
freely.
You feel it when a bounded task โ a migration, a mechanical refactor, a removal sweep โ comes back as a clean diff with a structured report, and you land it after re-running the gates yourself instead of typing it all by hand.
Four invariants hold for every *-delegate skill. They are also the bar for a new implementer:
git diff.git, plus the platform process launcher where a Windows
shim or a process-tree kill needs one.This is a loop, not a forwarder: a forwarder hands over one task and returns the output. Here you dispatch, poll, review, and land, across one task or a queue. It stays complementary to a vendor's own plugin or subagents โ those coordinate inside one agent; this keeps the contract portable across orchestrators, with the commit on the reviewer.
delegate-setup is the setup-skill exception: it discovers CLIs and writes an approved fleet map, but
never dispatches coding work.
Full checklist: CONTRIBUTING.md.
*-delegate skill, its implementer CLI authenticated as you would at the terminal. Each
implementer skill's SKILL.md carries its own install and login commands.delegate-setup requires no implementer CLI; it discovers whichever ones are available.git.This package is intentionally inspectable:
*-delegate skill has exactly one
scripts/relay.mjs. The delegate-setup utility ships discover.mjs / config.mjs / lane.mjs
(and a shared implementer table) instead of a relay โ it never dispatches coding work.git, plus the
platform process launcher/termination utility where a Windows shim or process-tree kill requires one.
Discover may invoke installed CLIs for --version / model list probes (those CLIs may contact their
own services). Read the script before you run it.Verification status โ claims here are backed by runs, not assumptions.
True of every relay: argument handling, exit codes, result.json shape, resume, and signal reporting
are verified, along with each implementer-specific guard.
Per skill โ platform, CLI version, and what the run exercised:
agy-delegate โ macOS, agy 1.0.16: headless edit run, --print= delivery, absolute --add-dir
workspace pin.claude-delegate โ macOS, claude 2.1.220: write run under acceptEdits; plan mode refusing an
edit, with the Git tripwire true on a violation and false on a clean run;
--session/--resume-last resume; claude_unavailable/127 and usage errors exiting 2 without a
result file; deny rules and the shell sandbox blocking git commit, git push, git -C <dir> push,
a nested claude, and a $HOME write.cursor-delegate โ Windows, cursor-agent 2026.07.23-e383d2b: write run under --force; plan-mode
--read-only touching nothing; --session <id> resume applying a delta brief; usage errors exiting
2. A maintainer-run native macOS plan-mode smoke against the same version captured model, session,
and usage with no touched files.grok-delegate โ macOS, grok 0.2.101: streaming-json report capture, file-based brief delivery,
resume; read-only is best-effort by measurement, hence the violation flag.kimi-delegate โ macOS, kimi 0.24.0: headless -p edit run, stream-json parsing, and both
resume paths โ the relay's --session/--resume-last, which drive Kimi's own --session and
--continue.pi-delegate โ macOS: stdin brief delivery, explicit provider and model selection, JSON
session/provider/model/usage capture, and a --read-only run leaving a clean tree. Write,
--session, and --resume-last runs are contributor-reported.qoder-delegate โ macOS, qodercli 1.0.47, by the contributor: Lite edit run, accept_edits,
explicit model and 32768-token context window, no commit.codex-delegate, opencode-delegate, vibe-delegate โ contract-tested only: argument validation,
bounded version preflight, missing binary, result parsing, and whole-process-tree timeout/abort
cleanup. No end-to-end run is recorded here.delegate-setup โ contract-tested: discover JSON shape, config validate/write/load, whole-lane
project overlay, global write without creating .delegate/, and --lane resolve / wrong-skill /
flag-override against relays. The smoke suite runs live discovery against installed CLIs
(versions vary by machine). Native Windows discover smoke not yet claimed.Not yet verified: native Windows launches for agy, claude, grok, kimi, pi, qoder, and
vibe (the codex/opencode/grok .cmd shim handling is in place and quoted; Cursor serializes a
pre-joined, quoted command; Qoder and Vibe target their documented native executables). Claude's own
shell sandbox is unsupported on native Windows regardless of launch mechanics, and upstream Vibe
officially targets UNIX. A native Linux cursor-agent run is unverified. The full delegate โ review โ
commit loop is designed for and run on Claude Code; other orchestrators (Cursor, โฆ) are designed-for
but unproven.
Implementer skills share one shape; the setup utility has a different one:
skills/
โโโ <name>-delegate/
โ โโโ SKILL.md
โ โโโ scripts/relay.mjs
โ โโโ references/
โ โโโ writing-the-brief.md
โ โโโ dispatch-and-poll.md
โ โโโ review-and-land.md
โ โโโ multi-task-queues.md
โโโ delegate-setup/
โโโ SKILL.md
โโโ scripts/
โ โโโ discover.mjs
โ โโโ config.mjs
โ โโโ lane.mjs
โ โโโ implementers.mjs
โโโ references/
โโโ schema.md
โโโ setup-dialogue.md
Adding an implementer is a new directory plus two lines here: a table row, and a verification line once a run backs it.
Contributing? House rules, the controlled vocabulary, and the pre-publish checklist live in AGENTS.md โ read it before opening a pull request, and point your agent at it too.
MIT โ see LICENSE.
No CLI-enforced read-only mode. touchedFiles and the diff, not a flag, are the guarantee. โฉ โฉ2 โฉ3
grok cannot be prevented from writing headlessly. The relay reports a tri-state
readOnlyViolation tripwire for detected Git-visible changes; it does not enforce or attribute them. โฉ
.github/
ISSUE_TEMPLATE/
claim-implementer.yml
pull_request_template.md
workflows/
relays.yml
.gitignore
AGENTS.md
CONTRIBUTING.md
docs/
plans/
relay-core-dedup.md
LICENSE
README.md
skills/
skills.sh.json
agy-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
claude-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
codex-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
cursor-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
delegate-setup/
references/
schema.md
setup-dialogue.md
scripts/
config.mjs
discover.mjs
implementers.mjs
lane.mjs
SKILL.md
grok-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
kimi-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
opencode-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
pi-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
qoder-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
vibe-delegate/
references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs
SKILL.md
test/
event-scanner.mjs
fixtures/
fake-cli.cjs
fake-cli.cs
slow-result-write.cjs
harness/
constants.mjs
create-harness.mjs
install-shim.mjs
relay/
relay-isolated.mjs
relay-parity.mjs
relay-smoke.mjs
abort.mjs
agy.mjs
atomic.mjs
claude.mjs
codex.mjs
cursor.mjs
delegate-setup.mjs
index.mjs
package-shape.mjs
pi.mjs
preflight.mjs
qoder.mjs
read-only-tripwire.mjs
syntax.mjs
timeout-bounds.mjs
timeout-tree.mjs
vibe.mjsFAQ
delegate-skills is a Claude Code plugin with 11 hand-picked skills for automation work, indexed on Flowy. Install it with the command on its page. It includes agy-delegate, claude-delegate, codex-delegate. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.