Skip to main content
Pylon is a self-hosted daemon that turns external events into AI agent runs. When a Sentry error fires, a GitHub pull request opens, or a cron schedule triggers, Pylon spins up a sandboxed AI coding agent inside Docker, gives it access to your codebase, and sends the result back to your chat channel — with an optional approval step so you stay in control of when the agent actually runs.

Key concepts

Pylon is built around five core concepts that you configure once and compose into pipelines:
  • Pylon — a named pipeline that wires together a trigger, an agent, a workspace, and a channel. Each pylon has its own config file and job history. See Pylons.
  • Trigger — what starts a pylon run. Currently supports inbound webhooks (HTTP POST) and cron schedules. See Triggers.
  • Agent — the AI coding assistant that runs inside Docker. Pylon supports Claude Code and OpenCode today, with Codex and Aider planned. See Agents.
  • Channel — where Pylon sends notifications and results. Telegram and Slack are supported; Discord, WhatsApp, and iMessage are in progress. See Channels.
  • Workspace — how the agent accesses your code. Options include a fresh git clone, a git worktree (faster, reuses a local repo), or a mounted local directory. See Workspaces.

Requirements

Before installing Pylon, make sure you have:
  • Linux — amd64 or arm64. macOS is not yet supported (blocked on Keychain credential storage for Claude OAuth).
  • Docker — Pylon runs every agent inside an isolated container. Install Docker from docs.docker.com/engine/install.
  • A Telegram bot or Slack app — Pylon posts results and approval prompts to a chat channel. You’ll configure this during pylon setup.
macOS is not yet supported. If Docker is not found during pylon setup, Pylon will print the install URL and continue — but the daemon will not be able to run agents until Docker is available.

How the daemon works

When you run pylon start, the daemon loads all your configured pylons and begins listening on a single HTTP port (default 0.0.0.0:8080). Each pylon with a webhook trigger registers its own path on that port. Cron pylons register with the internal scheduler. When a request arrives at a webhook path, Pylon:
  1. Parses the incoming JSON payload.
  2. If approval is enabled, sends a notification to your channel with Investigate and Ignore buttons and waits.
  3. Once approved (or immediately if approval is off), clones or mounts the workspace, pulls the agent Docker image, and launches a container.
  4. Streams agent output and, when the run completes, posts a summary back to your channel.
Up to three agent containers run concurrently by default. Jobs that arrive when all slots are occupied are currently rejected; a proper queue is on the roadmap.

Explore

Quick start

Install Pylon and trigger your first agent run in minutes.

What is a pylon?

Understand triggers, agents, channels, and workspaces in depth.

Webhook examples

Sentry error triage, GitHub PR review, and custom webhook pipelines.

CLI: pylon setup

Reference for the interactive first-time configuration command.