Skip to main content
Slack brings the loop into the channel where your team already works. Helix posts run events there, and takes commands from there.

Notifications

Helix emits an event at the points in the loop that need a human: a diagnose report ready for review, an eval verdict, an apply waiting on your approval. Each posts to a channel you choose, so a long-running evaluate or a gated apply doesn’t need a watched terminal — the approval request comes to you. The apply notification carries the remedy summary and the diff it would apply, so you can review and approve without switching back to the editor.

Drive the loop from a channel

The same intent routing the orchestrator uses in your editor extends to Slack. A listener routes a channel message to the stage that owns the job — “evaluate this,” “apply that fix,” “run another pass” — so you steer the loop from a message the same way you do in the editor.

Connect

Slack uses a bot token with chat:write (and Socket Mode for the inbound listener). Add it as a credential — an env-var name, never the token in the config:
.mutagent/config.yaml
Point your run at a channel and Helix posts there. The token is read from the environment at runtime; see the config reference for the credential model.
Slack is general-purpose — it works alongside any trace source or apply target. It’s the conversational front-end to the same loop you drive in your editor.