The worker crashes mid-run.
The run dies with the process. You start from call one.
The next worker connects and resumes from the last checkpoint. Call nine picks up where call eight left off.
From simple loops to complex workflows, Norns makes agents durable: checkpointed, idempotent, resumable across deploys. Your workers and keys stay in your infrastructure.
The run dies with the process. You start from call one.
The next worker connects and resumes from the last checkpoint. Call nine picks up where call eight left off.
The payment tool retries naïvely. You charge the customer twice and explain it to support tomorrow.
Retries are keyed by run and step. The charge is recorded once; the retry returns the original result.
In-flight runs die with the old workers. Users see half-done tasks vanish.
Runs are persisted in the orchestrator. New workers pick them up on the next version and carry them home.
Mimir is a Slack bot that answers questions about your project by searching the GitHub repos and pages you connect. It's built on Norns, so every thread is a durable run: state lives in Postgres, and conversations resume from the last checkpoint across crashes and redeploys.
Workers run in your own infrastructure. Norns never touches your API keys or data — it coordinates runs, retries, checkpoints, and event timelines.
$ brew install amackera/tap/nornsctl
$ nornsctl dev
$ nornsctl new my-agent && cd my-agent
$ uv sync && uv run my-agent-worker
result = client.send_message(
"support-bot",
"Where is my order?",
wait=True,
)