crew
AGENTS.md1 starsChanged 48 days agoMITView on GitHub
- Zero runtime dependencies. TypeScript runs directly on Node ≥ 24 (type stripping): erasable syntax only, .ts import specifiers. Check with npm test && npm run typecheck. - bin/crew is the only entry point. Plugin caches delegate to ~/.local/bin/crew (this checkout), so CLI changes are live immediately. Skills, agent defs and hook files are copied into the plugin caches: bump version in .claude-plugin/plugin.json and .codex-plugin/plugin.json, then run node scripts/install.ts. - Tests must never touch the user's real herdr, Claude or…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,700 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- advisor-intelligenceSkill
- advisor-role-advisorSkill
- advisor-role-builderSkill
- advisor-role-checkerSkill
- advisor-role-foremanSkill
- advisorSkill
- advisor-teamSkill
- cosSkill
- rosterSkill
- routerSkill
The file
We split this AGENTS.md into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
Never use codex queue, including for roots: it creates future turns that cannot be cancelled when the inbox is consumed.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
crew — notes for agents working on this repo
- Zero runtime dependencies. TypeScript runs directly on Node ≥ 24 (type stripping): erasable
syntax only,
.tsimport specifiers. Check withnpm test && npm run typecheck. bin/crewis the only entry point. Plugin caches delegate to~/.local/bin/crew(this checkout), so CLI changes are live immediately. Skills, agent defs and hook files are copied into the plugin caches: bumpversionin.claude-plugin/plugin.jsonand.codex-plugin/plugin.json, then runnode scripts/install.ts.- Tests must never touch the user's real herdr, Claude or Codex state: use
CREW_HOME/CREW_CONFIG/CREW_ROSTERtemp dirs and a stubherdronPATH(seetest/crew.test.ts). - State is plain files in
~/.crew; every cross-process race is settled by an exclusive-create claim file (runs/<id>/.settled-<hash>,.stalled) or by merging into live metadata (updateRun). Never write a staleRunMetaback. - Herdr: always pass the run's recorded session (
--session) and address agents by pane id. herdr types the launch line into a shell that may still be loading its rc files, where the tty keeps only 1024 bytes of a line: instructions go inruns/<id>/brief.md, never in argv. - Host services outlive the call that starts them and hand their environment to every later session
(Claude Code's
--bgdaemon; Codex's app server). A Claude bg child's crew env goes in--settings, never theclaude --bgprocess env, andCREW_RUNis trusted only viaownRun: a run belongs to the first session that claims it. - Compaction drops file reads. Anything a session must keep following lives in a file that the
SessionStart
compactbranch (afterCompactioninsrc/hook.ts) points back to. - Mail: the inbox is the only content channel. Pushes (herdr prompts) are one-line
pointers, one per unread batch, so nothing stale is replayed turn by turn. Children treat plain
mail as advice; scope changes go through
crew amend, which appends to the packet. Never usecodex queue, including for roots: it creates future turns that cannot be cancelled when the inbox is consumed. Connected Codex roots use their explicitly recorded owning Unix socket for turn/steer (active) or turn/start (idle and loaded). Never resume an unloaded root to wake it. Roots without that connection keep their turn alive and use foreground waits, inbox reads and the Stop hook. Runs also hear mail through their PostToolUse hooks. - Settlement follows the packet, not the first DONE: a terminal status settles only once the child
has read every amendment, and a settled run whose result returns to IN PROGRESS is reopened
(
reopeninsrc/mail.ts), so waits and nudges cover it again. - Hooks run in every Claude/Codex session on the machine: per-tool-call hooks must exit in the
shell guard (
$CREW_RUNunset) before starting node. - Codex: hook trust is keyed on the command string, so hook commands must stay version-stable
(
codex/hooks.json).workspace-writekeeps.gitread-only; spawn grants it viawritable_roots. - Host-agnostic: user entry points are skills (
skills/<name>/SKILL.md), never host-specific commands, so every Agent Skills host gets them (Claude/crew:<name>, Codex$<name>, OpenCode and others). Host-only frontmatter keys (e.g. Claude'sallowed-tools) are fine; others ignore them. - Claude Code:
/advisoris a built-in command, so the skill is/crew:advisor. - OpenCode has no hooks:
opencode/crew.jsmaps its plugin events ontocrew hook …and wakes its own idle sessions from their crew inbox (the TUI serves no port, so nothing outside can push). - Work goes through
crew spawn. Inside a crew run, the Claude PreToolUse hook refuses native subagents other than read-only Explore/Plan: they inherit the run's model and skip routing, grading. - Routing evidence is only a reviewed verdict: a
--checkschecker'sAs found:line or the parent'screw grade. A run's own DONE never is. Tests pointrouter.commandat a fake router.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

