Pylon requires Docker and a Telegram bot or Slack app before you begin. If you haven’t installed Docker yet, see Installation for the full prerequisites checklist.
Install Pylon
Download and install the Pylon binary with a single command:The install script detects your architecture (amd64 or arm64), downloads the matching binary from GitHub Releases, and places it in
/usr/local/bin. Verify the installation:Run pylon setup
Run the interactive setup wizard to configure your channel and AI agent:Setup walks you through three choices:Channel — where Pylon sends notifications and agent results. Select Telegram or Slack. For Telegram, you’ll provide a bot token from @BotFather and a chat ID (setup can auto-detect the chat ID if you add the bot to a group and send a command). For Slack, you’ll paste a bot token (
xoxb-…) and an app-level token (xapp-…).AI agent — the coding assistant that runs inside Docker. Select Claude Code (uses your ~/.claude/ OAuth session or an ANTHROPIC_API_KEY) or OpenCode (supports built-in Zen mode with no key required, or a bring-your-own provider key).Public URL — optional base URL where external services like Sentry or GitHub can reach your daemon. Leave blank if you’re running locally and will use a tunnel.After setup completes, your global config is saved to ~/.pylon/config.yaml and your tokens are stored in ~/.pylon/.env.Create a pipeline from template
Create a Sentry error-triage pipeline using the built-in template:The
sentry template configures a pylon with:- Trigger: webhook at
/my-sentry - Workspace:
git-clone(clones your repo fresh for each job) - Agent prompt: investigates the error title, culprit, level, and Sentry URL
- Approval: enabled — you’ll receive an Investigate / Ignore notification before the agent runs
pylon edit my-sentry to customize the prompt or add your repo URL.The
--from flag accepts four templates: sentry, github-pr, cron-audit, and blank. Run pylon construct <name> without --from for the fully interactive wizard.Start the daemon
Start Pylon and power up all your configured pipelines:The daemon loads every pylon from To start only a specific pylon instead of all of them:
~/.pylon/pylons/, registers webhook paths and cron schedules, and begins listening on 0.0.0.0:8080. You’ll see output like:Send a test webhook
In a second terminal, send a test event to confirm the pipeline is working:This sends a synthetic Sentry-shaped webhook payload to
http://localhost:8080/my-sentry. If approval is enabled (it is for the sentry template), you’ll immediately receive an Investigate / Ignore message in your Telegram group or Slack channel.Check your channel
Open Telegram or Slack. You should see an approval message with the test error details and two buttons: Investigate and Ignore.Tap Investigate. Pylon will:
- Clone your repo (or skip if no repo is configured in the template yet).
- Pull the agent Docker image and start the container.
- Pass the prompt and payload to the agent.
- Post the agent’s findings back to the same channel thread.
Next steps
Webhook examples
Sentry error triage, GitHub PR review, and custom webhook pipelines.
Pylon concepts
Learn how triggers, agents, channels, and workspaces fit together.
pylon construct
Full reference for the construct command and all available templates.
YAML reference
Edit pylon YAML directly to customize prompts, timeouts, and approval flow.