Packing bags
Use this when you want to add a bag’s tools to your Barry, or make a bag of your own.
A bag bundles tools, instructions, and actions; packing it puts it on your identity.
Before you begin
Section titled “Before you begin”- Build a Barry. These commands act as the
bonanzaidentity from that guide; use your own identity’s command in its place. - To make a bag, have a directory for it, such as
~/repos/my-tools.
Install and pack a bag
Section titled “Install and pack a bag”The example is the Blender bag, which renders 3D animation on your Mac. It also needs Blender and ffmpeg, which its README lists.
To see everything a bag registered, run barry bag show blender.
Create a bag
Section titled “Create a bag”When you change the bag’s code, run barry install ~/repos/my-tools again to
rebuild it.
What a bag.yaml holds
Section titled “What a bag.yaml holds”A manifest needs only name and description. These are the fields a first
bag uses:
| Field | What it does |
|---|---|
name |
Required. The bag’s name, its automatic trait’s name, and the default namespace of its tools |
description |
Required. One line on what the bag provides |
tools |
A list that sets per-tool metadata and visibility (for example deferred). The tool code itself is auto-discovered from tools.ts or src/tools.ts; you do not name the module here |
mcp-servers |
An MCP server the bag owns: url for HTTP, or command and args for stdio. The server’s name becomes its tool namespace |
traits |
Extra named grants, each with description, access (read or readwrite), and the bags it grants |
dependencies |
Host programs the bag needs on PATH, each with a name and an optional install and reason. Barry reports a missing one and installs nothing |
The schema is strict: an unknown key fails the whole manifest, and a failed
manifest contributes no tools and no traits. barry bag check reports it.
Beside bag.yaml, a bag can hold instructions/<name>.md,
actions/<name>/action.yaml, and skills/<name>/.
Using actions covers actions.
Verify
Section titled “Verify”To confirm the identity packed the bag, run:
bonanza identity showThe Bags: line lists blender and my-tools. To see what a bag registered,
run barry bag show blender: it prints the bag’s path and its traits, along
with any tools, services, and dependencies it declares.
If it fails
Section titled “If it fails”barry bag checkreports a manifest error. Fix what it reports inbag.yaml; an unknown key fails the whole manifest.- A host program is missing. Barry reports a dependency it cannot find on
your
PATHand installs nothing. Install it yourself: the Blender bag needs Blender and ffmpeg. - The session has no tools from the bag. Packing does not grant tools; a trait does. See A tool the agent should have is missing.
What’s next
Section titled “What’s next”- Install external bags from a repository, an npm package, or an MCP server.
- Bag fields for every key
bag.yamltakes. - Run sessions to put a packed bag to work.