A pylon is the central building block in Pylon. Each pylon defines a complete pipeline: what event starts it (trigger), what code the agent works with (workspace), which AI agent runs (agent), and where results are sent (channel). When an event fires, Pylon loads the pylon config, spins up a sandboxed Docker container, runs the agent, and posts the output to your channel.
Config location
Each pylon stores its config at ~/.pylon/pylons/<name>/pylon.yaml. Pylon also keeps a job history database at ~/.pylon/pylons/<name>/jobs.db — a SQLite file that records every job run by that pylon, including status, timestamps, and output.
Complete example
The following is a real-world pylon that triages Sentry errors. When Sentry sends a webhook, Pylon asks you to approve before the agent investigates.
Fields
Managing pylons
Use these commands to work with your pylons:
pylon destroy removes the entire ~/.pylon/pylons/<name>/ directory, including jobs.db. This is irreversible.
Creating pylons from templates
Use pylon construct with the --from flag to start from a pre-built template instead of answering prompts:
After constructing, run pylon edit <name> to fill in repo URLs, secrets, and any other fields the template left blank.
Disabling a pylon
To pause a pylon without destroying it, set disabled: true in the config:
Pylon will skip disabled pylons when routing webhooks and scheduling cron jobs. Remove the field or set it to false to re-enable.