agent key in pylon.yaml. If you omit the agent block, Pylon falls back to the global defaults in ~/.pylon/config.yaml.
Agent fields
| Field | Required | Description |
|---|---|---|
type | No | Agent to use: claude or opencode. Defaults to global setting, or claude if not set. |
auth | No | Authentication method. See per-agent options below. |
api_key | No | API key reference, e.g. ${ANTHROPIC_API_KEY}. Used when auth is api_key or api-key. |
provider | No | LLM provider for OpenCode: anthropic, openai, or google. |
env | No | Additional environment variables to inject into the container. |
prompt | Yes | The instruction sent to the agent. Supports {{ .body.field }} templating. |
timeout | No | Maximum time the agent container can run, e.g. 10m, 30m. Defaults to 15m. |
tools | No | Host CLI tools the agent can call via the exec gateway. Overrides global tools if set. |
Claude Code
Claude Code (type: claude) is Anthropic’s agentic coding tool. It supports two auth methods:
- OAuth (recommended)
- API key
With OAuth auth, Pylon mounts your local
~/.claude/ directory into the container so Claude Code reuses your existing session. No API key is needed.OAuth auth requires that you have already authenticated Claude Code on the host machine by running
claude at least once.OpenCode
OpenCode (type: opencode) is a multi-provider coding agent with a built-in free tier (Zen) that requires no API key.
- Zen (no key needed)
- API key (bring your own)
OpenCode’s Zen mode uses a built-in model — no API key or
provider setting required.Prompt templating
Theprompt field supports Go template syntax. Use {{ .body.field }} to inject values from the webhook payload into the prompt at runtime.
{{ .body.pull_request.title }}, {{ .body.pull_request.head.ref }}, or {{ .body.repository.clone_url }}.
Timeout
Thetimeout field sets the maximum time the agent container is allowed to run. If the agent exceeds this limit, Pylon stops the container and records the job as timed out.
- Default:
15m - Format: Go duration string —
10m,30m,1h, etc.
~/.pylon/config.yaml under docker.default_timeout. The per-pylon timeout takes priority.
Additional environment variables
Useenv to inject arbitrary environment variables into the agent container:
Coming soon
The following agents are planned but not yet available:- Codex (OpenAI)
- Aider