volume.toml, and any compatible runtime can discover and load them.
Component type summary
Component types
Agent
An autonomous runtime actor that receives a goal and independently decides how to accomplish it
using tools, skills, and other agents.
Skill
Reusable instructional knowledge loaded into agent context. The runtime interprets and applies
it — skills are not executed as code.
Command
A user-invokable action triggered by a slash command pattern such as
/review or /summarize.Tool
A function or API endpoint that an agent calls programmatically during task execution. Has typed
inputs and outputs.
Hook
A lifecycle event handler that fires automatically at defined points in the agent runtime —
session start, tool use, compaction, and more.
MCP Server
A Model Context Protocol service packaged as a distributable volume component. Runs as a
long-running process.
LSP Server
A Language Server Protocol service that provides code intelligence and editor integration when
loaded by a compatible runtime.
Export model
A volume exports components by declaring them involume.toml and placing their entrypoint files at the declared paths. Three rules govern every exported component:
- Every exported component must be listed in
volume.tomlunder[[components]]. - Every declared component must have a valid entrypoint file at the specified path.
- Component names must be unique within a volume across all component types.
[[components]] entry requires three fields:
Two optional fields are supported for all component types:
Recommended directory layout
The spec recommends organizing your volume with a dedicated directory per component type. This layout is a convention, not a requirement — theentrypoint path in volume.toml is authoritative.
Entrypoint resolution
When a runtime or validator loads a component, it follows a three-level precedence chain:
The minimum a portable validator checks before passing a component to a runtime adapter is type-specific. For Markdown-based types, the entrypoint must exist and have a supported extension. For JSON-based types (
mcp-server, lsp-server), the file must exist, be valid JSON, and parse to an object. For command, the frontmatter must include a valid trigger. For hook, the descriptor must declare a canonical lifecycle event and a valid hook type.
Entrypoint paths must be relative to the volume root. Absolute paths, paths containing
..
segments, and paths that resolve outside the volume root are all validation failures.