Automations for the work nobody (wants to) get to.

Give an agent a recipe and a trigger. It sweeps for stale docs every Monday, upgrades dependencies every night, and picks up failures from CI or Sentry the moment they happen.

Stale docs sweep Mondays at 9:00
Scheduled
Dependency upgrades Every night at 3:00
Scheduled
Flaky test fixer Webhook from CI
Listening
Error triage Webhook from Sentry
Listening

A recipe and a trigger

An automation is a saved recipe and what sets it off. Each trigger starts a new run, linked from the automation so you can see how it went.

Schedules or webhooks

A cron expression with a timezone, or a webhook URL for your IRM, Sentry, CI or anything else that can send one.

A fixed recipe

Every fire follows your saved recipe: agent, repos and instructions. The payload arrives as context, with no say over the run’s permissions.1

Limited and on record

Webhooks are authenticated and rate-limited, and each accepted fire links to its run and outcome.

Agents as blueprints

Save an agent’s model, tools and instructions, and edit them any time. Every run keeps a snapshot of what it started with.

Submission policies

Per repo, open pull requests from successful runs automatically, or hold patches until someone approves them.

  1. Payloads and chat messages cannot change a run’s granted permissions. They are framed as untrusted context for the model, which is a prompt-injection mitigation, not a guarantee that the model will ignore malicious instructions. Each fire uses the current recipe and agent blueprint.

More of Ryph

Try it on your own machine.

One binary with the web app and database built in.

Get started