How It Works
- StrawPot calls
<wrapper> buildwith protocol args - The wrapper translates these into the agent’s native CLI command
- StrawPot launches the command via
Popenand manages the process
Agent Discovery
Agents are resolved in this order:- Project-local —
.strawpot/agents/<name>/AGENT.md - Global —
~/.strawpot/agents/<name>/AGENT.md - Built-in — Ships with StrawPot (e.g.
claude_code)
AGENT.md manifest describing its wrapper, dependencies, parameters, and required environment variables.
Agent Manifest (AGENT.md)
Wrapper Delivery
Two modes:| Mode | Config | Description |
|---|---|---|
bin.<os> | bin.macos: binary_name | Compiled binary in the agent folder, keyed by OS |
wrapper.command | wrapper.command: cli-name | External CLI on PATH |
Wrapper Protocol
Every wrapper must implement two subcommands:setup
Interactive one-time setup (auth, configuration). Runs with stdin/stdout attached.
build
Translate StrawPot protocol args into the agent’s native command. Returns JSON to stdout.
Runtime Types
| Runtime | Description | Used For |
|---|---|---|
InteractiveWrapperRuntime | Wraps command in tmux session | Orchestrator (interactive) |
DirectWrapperRuntime | Runs directly in terminal (fallback) | Orchestrator (no tmux) |
WrapperRuntime | Headless subprocess | Sub-agents (non-interactive) |
InteractiveWrapperRuntime. Sub-agents always use WrapperRuntime (headless).