| title | Abbyfile Format |
|---|---|
| parent | Guides |
| nav_order | 1 |
This guide explains the two files that define agents: the Abbyfile manifest and agent .md files.
The manifest lives at your project root and declares which agents to build. The CLI accepts both Abbyfile and abbyfile.yaml as filenames — when no -f flag is given, it checks for Abbyfile first, then abbyfile.yaml.
version: "1"
agents:
go-pro:
path: .claude/agents/go-pro.md
version: 0.1.0
tool-eng:
path: .claude/agents/tool-eng.md
version: 0.2.0| Field | Required | Description |
|---|---|---|
version |
yes | Manifest format version (currently "1") |
agents |
yes | Map of agent name → agent reference |
agents.<name>.path |
yes | Path to the agent's .md file (relative to Abbyfile) |
agents.<name>.version |
yes | Semantic version for the built binary |
The agent name (the YAML key, e.g. go-pro) becomes the binary name. The version here overrides anything in the .md file.
Each agent .md file has two YAML frontmatter blocks followed by the system prompt body:
---
name: go-pro
description: "when editing Go code files"
memory: project
---
---
description: "A Go development assistant for idiomatic, concurrent systems"
tools: Read, Write, Edit, Bash, Glob, Grep
---
You are a senior Go developer with deep expertise...The first frontmatter block identifies the agent to Claude Code:
| Field | Required | Description |
|---|---|---|
name |
yes | Agent name (used as binary name if not overridden by Abbyfile) |
description |
no | Short description shown in Claude Code's agent picker |
memory |
no | Set to any value (e.g. project) to enable persistent memory |
model |
no | Model hint for the runtime (surfaced in --describe and MCP instructions). Can be overridden at install time (--model) or via config set model |
The second frontmatter block declares tools and a fuller description:
| Field | Required | Description |
|---|---|---|
description |
no | Detailed description (overrides block 1 if present) |
tools |
no | Comma-separated list of builtin tool names |
custom_tools |
no | List of custom CLI tool definitions (see Tools guide) |
skills |
no | List of skill definitions for plugin output (see Plugins guide) |
model |
no | Hint for Claude Code |
Skills are markdown files that get packaged into a Claude Code plugin directory when building with --plugin. Each skill becomes a skills/<name>/SKILL.md in the plugin.
skills:
- name: review-pr
description: "Review a pull request for quality"
path: skills/review-pr.md
- name: write-tests
description: "Generate unit tests"
path: skills/write-tests.md| Field | Required | Description |
|---|---|---|
name |
yes | Skill name (used as directory name) |
description |
yes | Short description for Claude Code |
path |
yes | Path to skill markdown file (relative to agent .md file) |
Everything after the second --- delimiter is the system prompt. This gets embedded into the compiled binary and is returned by --custom-instructions and exposed via MCP.
Agents declare tools by their Claude Code name. The builder maps these to MCP tool implementations:
Declare in .md |
MCP tool name | Description |
|---|---|---|
Read |
read_file |
Read file contents at an absolute path |
Write |
write_file |
Write content to a file, creating parent dirs |
Edit |
edit_file |
Find-and-replace a unique string in a file |
Bash |
run_command |
Execute a shell command with timeout |
Glob |
glob_files |
Find files matching a glob pattern (supports **) |
Grep |
grep_search |
Search file contents with regex |
Example:
tools: Read, Write, Bash
If memory is enabled, memory tools (memory_read, memory_write, memory_list, memory_delete) are added automatically.
The smallest valid setup:
Abbyfile:
version: "1"
agents:
helper:
path: agents/helper.md
version: 0.1.0agents/helper.md:
---
name: helper
---
---
tools: Read
---
You are a helpful assistant.Build and run:
make build && ./build/abby build
./build/helper --version # helper v0.1.0
./build/helper validate # check wiringA typical project layout:
Abbyfile # manifest (or abbyfile.yaml)
.claude/agents/
go-pro.md # agent definition + prompt
tool-eng.md # another agent
skills/ # skill markdown files (for --plugin)
review-pr.md
write-tests.md
build/
abby # CLI tool (from make build)
go-pro # compiled agent (from abby build)
tool-eng # compiled agent
go-pro.claude-plugin/ # plugin directory (from abby build --plugin)
.mcp.json # auto-generated by abby build
The .claude/agents/ path is a convention — you can put .md files anywhere and point to them from the Abbyfile. Skill paths are relative to the agent .md file.