Skip to main content
When a pylon job finishes, Pylon sends the agent’s output to a channel. Channels also handle the approval flow — when approval: true, Pylon sends a notification with Investigate and Ignore buttons before the agent runs, and waits for a human to respond. You configure a channel under the channel key in pylon.yaml. If you omit the channel block, Pylon falls back to the global defaults in ~/.pylon/config.yaml under defaults.channel.

Channel fields

Approval flow

When approval: true, Pylon sends a notification with Investigate and Ignore buttons before starting the agent:
  • Investigate — Pylon runs the agent and posts the result back to the channel.
  • Ignore — Pylon discards the job with no agent run.
This is most useful for high-volume triggers like Sentry, where you want to triage before spending agent time on every event.
The approval flow is only supported for webhook triggers. When type: cron, approval: true is ignored and the agent runs immediately.

Telegram

Telegram support requires a bot token and a chat ID. Pylon uses the Telegram Bot API to send messages and render approval buttons.

Telegram fields

To find your chat_id, add your bot to a group and send a message, then check https://api.telegram.org/bot<token>/getUpdates.

Slack

Slack support uses Socket Mode, which means Pylon maintains a persistent WebSocket connection to Slack — no public inbound URL required.

Slack fields

Your Slack app must have Socket Mode enabled and the chat:write, channels:history, and reactions:write bot scopes at minimum. Approval buttons also require the interactivity feature to be turned on.

stdout

The stdout channel prints agent output directly to the Pylon process console. Useful for local development and testing.
No additional configuration is needed. Approval buttons are printed as text prompts in the terminal.

Webhook

The webhook channel posts a JSON payload to any HTTP endpoint after the agent finishes.
Webhook channel configuration (endpoint URL, headers, etc.) is managed through the global config. Per-pylon webhook channel customization is not yet supported.

Per-pylon channel overrides

The channel configured in pylon.yaml takes priority over the global default. You can mix and match — use Telegram as the global default and override specific pylons to post to Slack:

Coming soon

The following channels are planned but not yet available:
  • Discord
  • WhatsApp
  • iMessage