Orca CLI
stablyai/orca
Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…
Parallel campaign orchestrator. An agent skill from SethGammon/Citadel.
$ npx skills add SethGammon/Citadel --skill fleet -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SethGammon/Citadel fleet --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/fleet .claude/skills/fleet && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fleet" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/fleet into .claude/skills/fleet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fleet", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/SethGammon/Citadel/tree/main/skills/fleetType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add SethGammon/Citadel --skill fleet -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SethGammon/Citadel fleet --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/fleet .agents/skills/fleet && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fleet" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/fleet into .agents/skills/fleet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fleet", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SethGammon/Citadel --skill fleet -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SethGammon/Citadel fleet --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/fleet .cursor/skills/fleet && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fleet" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/fleet into .cursor/skills/fleet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fleet", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/SethGammon/Citadel.git --path skills/fleet--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add SethGammon/Citadel --skill fleet -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SethGammon/Citadel fleet --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/fleet .gemini/skills/fleet && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fleet" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/fleet into .gemini/skills/fleet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fleet", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install SethGammon/Citadel fleetInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add SethGammon/Citadel --skill fleet -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/fleet .github/skills/fleet && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fleet" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/fleet into .github/skills/fleet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fleet", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SethGammon/Citadel --skill fleet -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SethGammon/Citadel fleet --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/fleet .opencode/skills/fleet && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fleet" agent skill from https://github.com/SethGammon/Citadel/tree/main/skills/fleet into .opencode/skills/fleet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fleet", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fleetParallel campaign orchestrator. An agent skill from SethGammon/Citadel.
Fleet is an agent skill from SethGammon/Citadel. Parallel campaign orchestrator. Runs multiple campaigns in coordinated waves within a single session. Spawns 2-3 agents per wave in isolated worktrees, collects discoveries, shares context between waves. Use when work decomposes into 3+ independent streams that can run simultaneously.
Its SKILL.md is about 6.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `__benchmarks__/no-fleet-dir.md`, `__benchmarks__/parallel-wave-execution.md` and `__benchmarks__/teams-pilot.md`).
It sits in Agent Workflows, covering Git worktrees. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fleet loads about 6.3k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 3,012 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 3,012 words, ~6,326 tokens.
.claude/skills/fleet/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Use for 3+ independent work streams that can run simultaneously in isolated worktrees. Do NOT use for single-file scope, linear work, or when a marshal or skill suffices.
Use when: Running 2+ independent work streams in parallel — tasks with non-overlapping file scopes that can execute simultaneously.
Don't use when: Work must execute sequentially or accumulate findings across phases (use /archon), a single orchestrated session is enough (use /marshal), or the task is simple enough for a bare skill.
| Command | Behavior |
|---|---|
/fleet [direction] | Decompose direction into parallel streams, execute in waves |
/fleet [path-to-spec] | Read a spec file, decompose into streams |
/fleet continue | Resume from the last fleet session file |
/fleet (no args) | Health diagnostic → work queue → execute |
/fleet --quick [task1]; [task2] | Lightweight parallel mode for solo devs — 2+ tasks, single wave, governed merge, minimal durable receipt |
/fleet --speculative N [direction] | Try N different approaches to the same task in parallel — see Speculative Mode below |
/fleet --teams [direction] | Pilot: native task spine when CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS is set, see Teams Mode (experimental) below |
.planning/campaigns/ for active campaigns.planning/coordination/claims/ for external claims.planning/momentum.json exists, run node .citadel/scripts/momentum-read.cjs and use the active scopes and recurring decisions to inform work queue prioritization. Skip silently if the file is absent or output is empty.Wave context restoration: Use the Claude Code Compaction API to restore fleet session context. Do NOT read
.claude/compact-state.json— deprecated in favour of server-side compaction (available on Opus 4.6+). Fleet session files (.planning/fleet/session-{slug}.md) remain the source of truth for inter-wave discovery relay; compaction handles agent memory, not campaign state. If the Compaction API is unavailable, read the fleet session file's Continuation State directly.
Run node .citadel/scripts/telemetry-log.cjs --event campaign-start --agent fleet --session {session-slug}, then node .citadel/scripts/momentum-watch-start.cjs. The watcher runs in the background and re-synthesizes momentum.json within 500ms of any new discovery write. Safe to call if already running — one watcher per project.
Produce a ranked list of campaigns with columns: Campaign name, Scope (directories touched), Dependencies, Wave, Agent type. Rules:
node scripts/fleet-steward.js --session .planning/fleet/session-{slug}.md and use its READY TO RUN, BLOCKED, MERGE NEXT, MERGE BLOCKED, and SCOPE CONFLICTS sections as the operational DAG.READINESS BLOCKED, do not spawn that task in a high-autonomy wave unless a human verified the worktree and you pass --override-readiness intentionally.For each wave:
.claude/agent-context/rules-summary.md.planning/map/index.json exists): run node scripts/map-index.js --slice "<agent's scope keywords>" --max-files 15 and inject the === MAP SLICE === block; skip silently if no indexnode .citadel/scripts/momentum-read.cjs and inject as a === PRIOR SESSION CONTEXT === block — a fresh read picks up discoveries from parallel Fleet sessions in other terminals; skip silently if emptynode scripts/sandbox-provider.js status --provider worktree --worktree {path}.planning/ paths the agent may write and the merge strategy for each (see Shared State Merge Strategies)node .citadel/scripts/telemetry-log.cjs --event wave-start --agent fleet --session {session-slug} --meta '{"wave":N,"agents":["name1","name2"]}'isolation: "worktree", the host's native permission policy, and prompt = full context + direction. Select an abstract capability tier and resolve it through the configured runtime-neutral alias: small (haiku) for bounded implementation, audit, and verify; balanced (sonnet) for cross-file integration/refactor; strong (opus) only for architecture, ambiguity, escalation, or holistic judgment. Never hardcode provider model IDs.citadel:phase-validator, Haiku, read-only, effort: low), all in one parallel batch. Supply only identity, exit conditions, and HANDOFF; never request source inspection or citation checks. For each verdict:pass: record the validator observation. The task becomes merge-eligible only after its deterministic gates and required Exit Evidence are also current, subject-bound, passed, and complete.fail: check the retry counter for this agent (max 2 retries in fleet; single-session so lower budget than Archon's 3):conditions_failed and suggestions appended to its prompt. Collect, re-validate, decrement counter.failed, log validator_halt: {agent-name} wave {N} — {conditions_failed}, and invoke the strong acting Arbiter when a binding holistic decision remains relevant. Arbiter block holds the task; Arbiter unavailability is unknown.unknown/VALIDATOR_TIMEOUT or unknown/OUTPUT_UNPARSEABLE. Retry within the durable budget; after exhaustion hold the task and its dependents.## Exit Evidence table. Run node scripts/evidence-validate.js --file .planning/fleet/session-{slug}.md --target task:{id}.passed evidence with complete required coverage unlocks dependencies or merge candidacy.unknown/held and joins the session's single deduplicated human escalation.node .citadel/scripts/telemetry-log.cjs --event agent-complete --agent {agent-name} --session {session-slug} --status {success|partial|failed}node .citadel/scripts/compress-discovery.cjs on each output, write compressed briefs to .planning/fleet/briefs/
6b. Write persistent discovery records per agent (cross-session memory): node .citadel/scripts/discovery-write.cjs --session {session-slug} --agent {agent-name} --wave {N} --status {success|partial|failed} --scope "{comma-separated-scope-dirs}" --handoff "{json-array}" --decisions "{json-array}" --files "{json-array}" --failures "{json-array}"node .citadel/scripts/telemetry-log.cjs --event wave-complete --agent fleet --session {session-slug} --meta '{"wave":N,"status":"complete"}'passed with complete coverage.After all waves:
node scripts/run-with-timeout.js 300 <typecheck-cmd>passed evidence, no unresolved dependency/checkpoint/human gate, and no binding Arbiter block.completed only when all required tasks and full-project gates passed. Otherwise use needs-continue and preserve held subjects; dependency-independent reversible work may still be packaged.node .citadel/scripts/telemetry-log.cjs --event campaign-complete --agent fleet --session {session-slug}node .citadel/scripts/momentum-synthesize.cjs
7.5. Knowledge handoff (once per campaign that completed this session, not per wave):.citadel/project.md (if present). The Learn skill writes .planning/wiki/, .planning/memory/, and possibly .claude/harness.json; do not invoke it if any of those writes conflict with project restrictions./learn {slug} in Claude Code, $citadel.learn {slug} in Codex). This is a Citadel skill invocation, not an npm command in the adopted project.## Knowledge Follow-up in the fleet session file. Do not claim compilation occurred.Create at .planning/fleet/session-{slug}.md:
# Fleet Session: {name}
Status: active | needs-continue | completed
Started: {ISO timestamp}
Direction: {original direction}
## Work Queue
| # | Campaign | Scope | Deps | Status | Wave | Agent | Branch | Evidence |
|---|----------|-------|------|--------|------|-------|--------|----------|
| 1 | {name} | {dirs} | none | pending | - | - | - | - |
## Wave N Results
### Agent: {name}
**Status:** complete | partial | failed
**Built:** ... **Decisions:** ... **Files:** ...
## Shared Context (Discovery Relay)
- {cross-agent finding → what Wave N+1 should know}
## Continuation State
Next wave: N Blocked items: ... Auto-continue: true
## Human Escalation
Status: open | resolved
- {subject}: {truth status}/{reason}; attempts={n}; dependent work held={ids}; next safe action={action}Before assigning agents to a wave, compare all agent scopes pairwise (a directory scope covers every file inside it):
src/api/ and src/api/auth/ OVERLAP (parent/child); src/api/ and src/ui/ do NOT (siblings)(read-only) scopes never conflict.planning/coordination/claims/ for external claimsUse the effort parameter for wave agents, not budget_tokens (rationale: docs/FLEET.md#budget): scouts (research, mapping, audit) medium ~100K; execution agents (build, refactor, implement) high ~250K; verify agents (typecheck, visual-verify, QA) low ~60K.
passed evidence with complete required coverage unlocks a dependency or authorizes mergeSub-agents can hang indefinitely; Fleet enforces time limits at the orchestrator level. Read values from harness.json → agentTimeouts.{skill|research|build} (defaults: skill 10 min / research 15 min / build 30 min = 600000/900000/1800000 ms; config reference: docs/FLEET.md#agent-timeouts).
On timeout: log agent-timeout, record unknown/AGENT_TIMEOUT, extract a partial HANDOFF if present, and retry once with a simplified prompt when safe. The timed-out task and its dependents remain held; other dependency-independent reversible tasks may continue. Record Status: timed out in the session file and add the subject to the single human escalation after retry exhaustion.
Parallel agents writing to the same .planning/ directory can silently overwrite each other. Strategies (full rules table: docs/FLEET.md#shared-state-merge-strategies):
.planning/discoveries/*.md, .planning/fleet/briefs/*.md, .planning/telemetry/*.jsonl, .planning/wiki/_staging/*.jsonl: each agent writes its own uniquely-named file or appends atomic JSONL lines; never overwrite an existing file..planning/fleet/session-{slug}.md (only the Fleet coordinator writes; agents emit HANDOFFs that the coordinator transcribes), .planning/campaigns/{slug}.md (only the owning Archon writes; fleet agents report campaign-adjacent work in their HANDOFF), .planning/coordination/claims/*.json (each agent owns its own claim file, named by instance ID).Enforcement: before Step 3 spawn, remind each agent in its context injection which paths it may write to and the strategy for each. Agents that attempt to modify lock-on-write resources they don't own must be blocked via scope claim verification.
For decisions that cannot easily be undone, spawn 3 Phase Validators in parallel with an identical vote prompt. Voting is advisory control input only; it cannot override evidence, a required checkpoint, a human gate, or a binding Arbiter block.
When to vote: selecting among safe repair/retry paths or deciding whether to abort and preserve mixed-result work. Do not use a vote to mark a partial Fleet completed or to merge failed, blocked, or unknown work.
Vote prompt: state the session slug, wave, proposed decision, and evidence (handoff summaries, validator results); ask for JSON {verdict: 'proceed'|'block', reason} (template: docs/FLEET.md#consistency-voting).
Tally: require at least 2 explicit, parseable proceed votes for an otherwise-authorized control decision. A timeout, malformed response, or absent vote is unknown/abstain. Two explicit blocks hold the decision. Any missing quorum joins the single human escalation. Underlying required evidence must independently pass regardless of the tally.
Instance IDs: every spawned agent gets a unique ID, format fleet-{session-slug}-{wave}-{agent-index} (e.g. fleet-auth-refactor-w1-a3). Write it to the agent's worktree as .fleet-instance-id, include it in all telemetry entries, and use it in coordination claims and dead instance recovery (details: docs/FLEET.md#instance-ids).
Dead instance recovery: after each wave, read .planning/coordination/claims/, verify each instance is still alive (worktree exists + HANDOFF present). Release orphaned claims; return uncompleted scope to the next wave's queue.
.planning/fleet/ does not exist: Create the directory before writing the session file..planning/ does not exist: Create .planning/fleet/ before starting. If .planning/coordination/ is absent, skip scope claim registration.unknown/VALIDATOR_TIMEOUT or unknown/OUTPUT_UNPARSEABLE, retry within budget, then hold the task and its dependents. Continue only dependency-independent reversible tasks.wave_validator_halt, hold dependent waves and target-branch merge, and add one consolidated entry to the session's human escalation.node scripts/fleet-steward.js --session .planning/fleet/session-{slug}.md --mark-failed {id} --reason "{reason}" --write to mark the row failed and add a repair task with inherited dependencies./fleet --speculative N [direction] — try N approaches to the same task simultaneously, each in its own worktree on branch speculative/{session-slug}/{strategy-label}. The user picks the winner; losers are archived, never deleted. (Depth and examples: docs/FLEET.md#speculative-mode.)
isolation: "worktree". Each gets the common direction, its own strategy description, its branch name, and the instruction to set branch and worktree_status: active in its campaign frontmatter. Scope overlap rules do NOT apply between speculative agents — they intentionally touch the same files.node scripts/run-with-timeout.js 300 <typecheck-cmd>, record built/typecheck/decisions in the session file. Present a comparison table (Strategy | Branch | Typecheck | Key Decision | Notable Tradeoffs). If ALL N fail typecheck: present the table with all entries marked FAIL typecheck and ask the user to pick the least-broken approach or abort. Do not proceed to step 4 without a user decision.worktree_status: merged, proceed with normal merge. Losers: set worktree_status: archived; do NOT delete branches (optional tag: git tag archive/{loser-branch} {loser-branch}). Add ## Speculative Comparison to the session file: direction, N strategies, comparison table, winner, merge timestamp./fleet --quick [task1]; [task2]; [task3]
Differences from standard Fleet are limited to minimum 2 streams, single-wave scheduling, no discovery briefs, and no scope claim. Quick Mode uses the identical validator, required evidence, retry, Arbiter, full-project verification, dependency hold, escalation, and governed merge semantics.
--quick argument (semicolon-separated)isolation: "worktree".planning/fleet/quick/{run-id}.json before validation and durably record task IDs, subject/worktree/base digests, attempts, truth status, coverage, reason codes, evidence references, dependency holds, decisions, escalation ID, and timestamps.unknown; partial is progress metadata only.passed decision. No-conflict is not a gate.Entry from /do confirmation prompt: user chose yes (1) or always (2). Preferences stored under consent.fleetSpawn in harness.json via readConsent/writeConsent.
/fleet --teams [direction]
Pilot: swap the coordination spine to native Agent Teams primitives. Everything not listed below is unchanged from the classic protocol above. Depth (comparison table, rollout plan, risks): see docs/FLEET.md, Teams Mode section.
Both must hold: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS present in the environment, AND the runtime is Claude Code. Otherwise print:
Teams mode unavailable: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS not set or runtime is not Claude Code. Falling back to classic worktree mode.and run the classic protocol unchanged.
| Concern | Delta from classic |
|---|---|
| Task spine | Lead creates one native task per scope (TaskCreate); dependency links mirror wave order; status via TaskUpdate |
| Discoveries | Teammates send discoveries to the lead via SendMessage |
| Durability | Lead mirrors every discovery to .planning/fleet/<session>/discoveries/ on receipt; the mirror is the source of truth for recovery |
| Merge review | Unchanged (steward gates merges exactly as classic) |
| Rebalancing | On teammate idle, the TeammateIdle hook appends to .planning/fleet/rebalance.jsonl; the lead reassigns the next unblocked scope via SendMessage |
On any disagreement between messages and the mirror, reconcile from the mirror. Skip rebalance lines that lack a teammate identity, and skip rebalancing entirely when no scope is unblocked.
In classic mode, when native Task tools are available, the lead also mirrors each scope as a native task and updates its status at wave boundaries. .planning files stay canonical; native tasks are a visibility layer only.
Red actions require explicit confirmation regardless of trust level.
Read trust level from harness.json:
Update the session file, then output:
---HANDOFF---
- Fleet session: {name} — {waves completed} waves, {agents} agents total
- Built: {summary of all wave results}
- Discoveries: {key cross-agent findings}
- Merge conflicts: {count and resolution}
- Next: {remaining work if any}
- Reversibility: amber -- multi-wave merges, revert each wave's merge commit
---© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in skills/fleet of SethGammon/Citadel.
Open the folder on GitHubat commit e41ff1d
Fleet next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fleet this skillSethGammon/Citadel | 922 | — | ~6.3k | Automated safety check: Pass | MIT | |
| Orca CLIstablyai/orca | 87k | 2 repos | ~593 | Automated safety check: Pass | MIT | |
| Using Git Worktreesjulianromli/opencode-template | 144 | 28 repos | ~1.4k | Automated safety check: Pass | None | |
| Nagentdavidondrej/skills | 4.1k | — | ~1.7k | Automated safety check: Notes | MIT | |
| Using Git Worktreesfarm-fe/farm | 5.6k | 13 repos | ~2k | Automated safety check: Pass | MIT | |
| Agent of Empires Session Manageragent-of-empires/agent-of-empires | 3.3k | — | ~2.1k | Automated safety check: Pass | MIT |
stablyai/orca
Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…
julianromli/opencode-template
A skill your agent uses when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory…
davidondrej/skills
Launch a new bb worker thread with the right project, model, worktree, and task brief.
farm-fe/farm
A skill your agent uses when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git…
agent-of-empires/agent-of-empires
Starts, monitors and organizes coding agent sessions that run in tmux through the aoe command, including groups, profiles and worktree-based parallel work.
YoanWai/agent-manager
Runs several coding-agent CLIs as real tmux sessions in one terminal UI, color-coded by whether each is working, waiting, idle or blocked.
SethGammon/Citadel
Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.
SethGammon/Citadel
File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.
SethGammon/Citadel
Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.
Categories
Parallel campaign orchestrator. An agent skill from SethGammon/Citadel. Fleet is an agent skill from SethGammon/Citadel. Parallel campaign orchestrator.
Fleet fits situations like: work decomposes into 3+ independent streams that can run simultaneously; tasks that involve Git worktrees.
Run `npx skills add SethGammon/Citadel --skill fleet -a claude-code`. Or copy the skill folder (skills/fleet in SethGammon/Citadel) into .claude/skills/fleet in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SethGammon/Citadel --skill fleet -a codex`. Or copy the skill folder (skills/fleet in SethGammon/Citadel) into .agents/skills/fleet in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill fleet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fleet, .gemini/skills/fleet, .github/skills/fleet and .opencode/skills/fleet in your project.
Going by SKILL.md and its folder, Fleet needs the command-line tools its instructions call (node and git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Fleet is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.3k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fleet: Orca CLI (stablyai/orca, 87k stars), Using Git Worktrees (julianromli/opencode-template, 144 stars), Nagent (davidondrej/skills, 4.1k stars) and Using Git Worktrees (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 922 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 1, 2026.
Source: SethGammon/Citadel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.