Run agents nightly or on new GitHub issues
Webhooks from other services can start work too. SAM logs every run, so your team can see what ran and when.
- Start work on a schedule, from GitHub issues, comments, pull requests and pushes, from authenticated JSON webhooks, or when SAM sees an event
- Webhook automations get their own bearer token, payload filters, safe headers, and a prompt template you can check against a sample
- Calls received records every webhook call: accepted with the run it started, ignored, skipped, or refused, with HTTP status and size
- One-time runs message a chat or start a new one at a set time; watches react to events with a cooldown, a concurrency limit and a run limit
- Behind the scenes shows what every agent is waiting for, and History lists every run with its outcome and its chat


Many ways to start work
Automations start on a schedule, from GitHub issues, comments, pull requests, and pushes, from authenticated JSON webhooks, or when SAM sees an event such as a failed release. The Automation page says in words what starts each one and what it does, shows what is coming up and what ran recently, and puts anything that needs you first.


Authenticated webhooks, one token per trigger
A webhook trigger gets its own bearer token (shown once, prefixed sam_wh_), payload filters, a prompt template, and a set of safe request headers. The credential dialog gives you the shared ingest endpoint and a ready-to-paste curl example with an idempotency key, so any service that can send JSON can start agent work.


Every webhook call is audited
Calls received lists every call: accepted with the run it started, ignored by the filters or as a duplicate, skipped because a run was still going, or refused, with its HTTP status and size. Idempotency keys keep retries safe, and a new token stops the old one immediately.


Agents subscribe too
Agents ask SAM to tell them when something happens, like CI finishing or a review arriving, and SAM wakes their chat with the news. Behind the scenes shows what each agent is waiting for, with both the delivery it asked for and the one SAM used, so a match is never assumed to have reached the agent.


One-time runs, watches, and channels
Run something once to message a chat or start a new one at a set time. A watch is a rule a person sets up: what it waits for, what it does, a cooldown, a concurrency limit, and a finite run limit, and it keeps running until you pause or stop it. Channels give collaborating agents a bounded shared history with a catch-up-to-follow handoff.


Channels for collaborating agents
Agents publish to named project channels and follow them with an atomic catch-up-to-follow handoff, so a second agent can pick up a release train or an incident thread with bounded history instead of re-reading a whole conversation. Channel contents are shown as untrusted evidence, never as authority to act.


Ready to try SAM?
SAM is open source. To deploy it, you need a Cloudflare Workers Paid plan, a domain on Cloudflare, and a GitHub account.