When a pylon job fires, Pylon spins up a fresh Docker container for the configured agent, mounts the workspace, injects the prompt, and lets the agent work. Each job gets its own isolated container — the agent has no access to previous jobs or the host filesystem beyond the mounted workspace. Pylon currently supports two agents: Claude Code and OpenCode. You configure an agent under theDocumentation Index
Fetch the complete documentation index at: https://docs.pylon.to/llms.txt
Use this file to discover all available pages before exploring further.
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. |
volumes | No | Host directories to mount into the container, e.g. credential directories. See pylon.yaml. |
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