The open-source runtime for process-shaped agents — work measured in hours and days, not seconds, that shrugs off crashes, deploys, and a literal kill -9. In your cloud.
A resumed run never re-pays for a completed model call.
Crash-tested after every single write point.
Your VPC. Your keys. Apache-2.0, forever.
"90% of the work is checkpointing, delivery tracking, and human oversight — agent logic is 10%."
Every serious agent team rebuilds the same plumbing: queues, checkpoints, retries, approval flows. Toren is that 90%, built once, chaos-tested, and open — so your team ships the 10% that's actually yours.
Every model call and tool call is recorded in a Postgres event log the moment it completes. The run's state is the log — so nothing that lives in a process can die with one.
Files define the agent. Waves fan out the work. The event log holds everything. Parked runs cost nothing — not a worker, not a container, not a poll loop.
export default async function (ctx) { // one planner task; the model decides // what deserves research const plan = await ctx.wave("plan", [ctx.task("planner", ctx.input)]); // your code turns the plan into a // dynamic parallel fan-out const topics = parse(plan.results[0].output); const found = await ctx.wave("research", topics.map(t => ctx.task("researcher", t)), { onTaskFailure: "collect" }); // park for a human — zero compute const memo = await ctx.wave("write", [ctx.task("writer", join(found))]); return memo.results[0].output; }
effects: "external", // recorded once, never re-run idempotency: "keyed", // retries carry a stable key approval: "always" // parks until a human signs
const t = new TorenClient({url, token}); const {runId} = await t.startRun({input}); const run = await t.waitForRun(runId);
| Long-running agents | Your cloud | Never re-pay tokens | Open source | ||
|---|---|---|---|---|---|
| 01 | Vercel Eve | limited | no — theirs | no | framework only |
| 02 | Temporal | code, not agents | yes | no | yes |
| 03 | LangGraph | checkpoints only | partly | no | yes |
| 04 | Inngest / Restate | functions, not agents | partly | no | partly |
| 05 | TOREN | yes — by design | yes — by design | yes | yes · Apache-2.0 |
Postgres is the entire stack — state, queue, and event log in one boring database. The scaffold runs offline; no API keys required to feel it work.
npx toren init → toren run
One Terraform apply into your AWS: SQS, RDS, Fargate workers, an authenticated HTTP API. Your VPC, your keys, your data boundary. Identical binary.
toren deploy-aws --region eu-central-1 --yes