shelbi agent
View as markdownshelbi agent <SUBCOMMAND> [OPTIONS]shelbi agent manages the agents a project ships
with: the roles (a system prompt plus an optional skill set) a
workspace loads when it picks up a task. Every
project starts with six (orchestrator, developer, review, qa,
security, adversarial), and these subcommands surface them and let you
author more.
Agents live under the project's agents/ directory:
~/.shelbi/projects/<project>/agents/<name>/ in the default
global mode or
<repo>/.shelbi/agents/<name>/ in in-repo mode. Each has an
instructions.md (its prompt) and an optional skills/ directory. Shipped
agents also carry agent.yaml (which runner and model the agent uses) and a
settings.json for Claude Code hooks; agent new scaffolds only
instructions.md and skills/. The shared agents/_shared/preamble.md is
prepended to every agent's prompt at launch time.
Shelbi writes the defaults when it creates the project. On shelbi init and
shelbi reload it updates any default you haven't edited to the current
release's version and leaves edited ones alone (except that runner-required
orchestrator sections are appended if missing). See
customizing an agent.
Every subcommand accepts the global -p / --project <PROJECT> flag, omitted
from the per-subcommand tables below.
list
shelbi agent listPrint a table of every agent in the project, sorted by name: its name, the
workflow status ids that reference it via the
agent: field, the
number of *.md files directly in its skills/ dir (directory-style skills
such as skills/<name>/SKILL.md aren't counted), and whether its
instructions.md has been customized away from the bundled default. On a fresh
project:
AGENT STATUSES SKILLS CUSTOMIZED
adversarial - 0 no
developer in-progress 0 no
orchestrator backlog, todo 0 no
qa - 0 no
review review 0 no
security - 0 noThe CUSTOMIZED column reads:
no: shipped default whoseinstructions.mdstill matches a bundled default (the current one, or an older release's that the next self-heal will update).yes: shipped default that's been edited (or whose file is missing on disk and would re-materialize on the nextshelbi reload).-: an agent you authored; there's no bundled body to compare against.
show
shelbi agent show <NAME>Print the agent's instructions.md to stdout, followed by a Skills:
section listing each *.md file directly in skills/ with the
description from its frontmatter (or (no description)).
Directory-style skills (skills/<name>/SKILL.md) aren't listed, so the shipped
review agent shows (none). Errors if the agent doesn't exist.
This shows you what one agent's file holds in isolation. It does not
prepend agents/_shared/preamble.md. That composition happens at launch
time, not at show time. To see the shared preamble, cat the project's
agents/_shared/preamble.md
(~/.shelbi/projects/<project>/agents/_shared/preamble.md in global mode,
<repo>/.shelbi/agents/_shared/preamble.md in in-repo mode).
| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | — | Agent name (positional, required). |
new
shelbi agent new <NAME>Scaffold a new agent directory under agents/<NAME>/ with a starter
instructions.md and an empty skills/. The starter prompt is a minimal
role template, not a copy of developer. It's there to be replaced.
Errors if an agent with that name already exists. Names must be non-empty,
must not start with . or _, and may only contain ASCII letters, digits,
-, and _.
The name doubles as the identifier referenced from workflow agent:
fields, so the validator is stricter than POSIX.
| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | — | Agent name (positional, required). |
edit
shelbi agent edit <NAME>Open the agent's instructions.md in $VISUAL, falling back to $EDITOR,
then vi. A blank variable is skipped, and a value with arguments (such as
code -w) is split on whitespace. Errors if the agent doesn't exist. Run shelbi agent new <NAME> first, or shelbi reload to materialize the shipped defaults if
this is the first time the project's been opened.
Edits take effect the next time the affected agent is launched: for the
orchestrator, on the next shelbi reload; for a workspace agent, on its
next task dispatch.
Examples
See the project's agents and where each is used:
shelbi agent listRead the QA agent's instructions:
shelbi agent show qaBake your repo's conventions into the default developer agent:
shelbi agent edit developerScaffold a focused reviewer:
shelbi agent new perf-review
shelbi agent edit perf-reviewThen wire it into a workflow status. Reference the status by id (its
name and category live in statuses.yaml) and name the agent:
statuses:
- { id: perf, owner: agent, agent: perf-review }See also
- Agents — what an agent is, the six shipped roles, on-disk layout, and the customization story.
- Workflows — the
owner+agentfields that route a status to one of these agents. shelbi workspace— the slots agents run in, and theAGENTcolumn that shows which is loaded where.