HomeBlog › `##agent spawn-all`: hire a whole team from a folder of markdown
Blog

`##agent spawn-all`: hire a whole team from a folder of markdown

Jul 19, 20264 min readBy the Rysh team

One folder of .md files, one command, a full roster of specialist agents. Onboarding a team is now a git clone.

Yesterday's post showed that in rysh, one agent is one markdown file (https://rysh.ai/blog/agents-from-a-markdown-file). Today: what happens when you stop thinking in files and start thinking in folders.

##agent spawn-all ./agents

That's the whole command. rysh parses every .md file in the directory and spawns an agent from each one. A folder becomes a team.

The team-in-a-folder pattern

Here's what a repo's agents/ directory tends to grow into once this exists:

agents/
├── code-reviewer.md     # correctness-first, quotes exact lines
├── test-writer.md       # table-driven tests, hates mocks it didn't need
├── docs-agent.md        # keeps README and docs honest against the code
├── release-notes.md     # reads merged PRs, drafts human release notes
├── refactor-scout.md    # flags duplication, proposes consolidations
└── oncall-helper.md     # reads logs and configs, drafts incident notes

Each file: YAML frontmatter (name, description, optionally model) on top, the system prompt below. Files without frontmatter still work — the whole file becomes the system prompt and the filename becomes the agent's name.

Run spawn-all and every one of them comes up as a headless worker in your session — no PTY, no window clutter, each with its own execution loop and standing orders. Then:

##agent list

That's your roster. Address anyone on it by name from any pane:

@test-writer the new codec paths need coverage
@release-notes draft notes since v0.1.24
@@refactor-scout deactivate     # bench the noisy one for today

Onboarding is a git clone

Here's where this stops being a convenience and starts being a team practice.

Because the team is a folder, and the folder lives in the repo, joining a project means inheriting its agents:

git clone git@github.com:yourorg/yourservice.git
cd yourservice
rysh
##agent spawn-all ./agents

New teammate, day one, has the same reviewer with the same standards, the same test-writer with the same conventions, the same docs agent that knows the README's structure. Not "here's our prompt library in Notion, copy-paste what you need" — the working configuration, versioned, identical for everyone.

And when someone improves an agent — tightens the reviewer's standards, teaches the test-writer the team's fixture conventions — that improvement ships as a pull request. Everyone's roster upgrades on the next pull. Agent quality compounds the way code quality does, because it's stored the same way. (More on that in https://rysh.ai/blog/agents-live-in-git.)

Managing the roster

A team you can hire in one command needs day-two operations, and they're all there:

##agent list                       # who's on the roster, who's active
@@docs-agent deactivate            # benched: stays defined, ignores prompts
@@docs-agent activate              # back in
@@code-reviewer stop               # cancel its current task, keep the agent
##agent delete refactor-scout      # actually gone
##agent register-output code-reviewer   # its replies → this pane's chat stream

That last one matters for sanity at team scale: each rysh pane keeps separate output streams per mode, so agent replies land in a chat stream — never spliced into your shell output. Six agents reporting doesn't mean six windows or one unreadable scroll; it means you decide which pane is the newsroom.

deactivate earns its keep faster than you'd think. Not every agent should run every day. The release-notes agent matters on release day; the oncall-helper matters when things are on fire. A roster with a bench is a roster you can afford to keep broad.

Why per-repo teams beat one super-agent

The tempting alternative is one generalist agent with a 4,000-line system prompt that knows everything. Teams that try it learn the same lesson prompt-writers keep relearning: instructions dilute each other. The reviewer's "be ruthless about correctness" and the release-notes agent's "be warm and readable" do not want to live in one prompt.

Small, single-purpose agents with short, sharp standing orders — one per file — are easier to write, easier to review in a PR, and easier to blame when behavior drifts. The folder is the org chart. spawn-all is just the hiring paperwork.

The honest part

rysh runs on Claude — you bring your own Anthropic key — and it's self-hostable on your own infra. spawn-all doesn't conjure a senior team out of thin air: six mediocre prompts spawn six mediocre agents, very efficiently. What it changes is the economics of iteration — when improving an agent is editing a file, and distributing the improvement is git push, your prompts actually get better over time instead of rotting in a dashboard.

Hire in one command. Improve by pull request. That's the loop.


rysh is in private beta. If your repo deserves its own agent team, we're onboarding design partners — free access, direct line to the founder: https://rysh.ai/design-partner

Related: Autonomous agents from a markdown file · Your agents live in git: skill files are source code

Try Rysh

Every pane is a shell and an AI agent — install takes one command.

Get started free →