open source · MIT · v0.x

Durability for agents.

From simple loops to complex workflows, Norns makes agents durable: checkpointed, idempotent, resumable across deploys. Your workers and keys stay in your infrastructure.

Install
$ brew install amackera/tap/nornsctl
Why it matters

The things that break agents in production.

01

The worker crashes mid-run.

Without Norns

The run dies with the process. You start from call one.

With Norns

The next worker connects and resumes from the last checkpoint. Call nine picks up where call eight left off.

02

A tool times out and retries.

Without Norns

The payment tool retries naïvely. You charge the customer twice and explain it to support tomorrow.

With Norns

Retries are keyed by run and step. The charge is recorded once; the retry returns the original result.

03

A deploy ships mid-flight.

Without Norns

In-flight runs die with the old workers. Users see half-done tasks vanish.

With Norns

Runs are persisted in the orchestrator. New workers pick them up on the next version and carry them home.

Reference implementation

See it in a real app — meet Mimir.

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.

Quickstart

From zero to a running agent.

Workers run in your own infrastructure. Norns never touches your API keys or data — it coordinates runs, retries, checkpoints, and event timelines.

Install and run
$ brew install amackera/tap/nornsctl
$ nornsctl dev
$ nornsctl new my-agent && cd my-agent
$ uv sync && uv run my-agent-worker
Send a message python
result = client.send_message(
    "support-bot",
    "Where is my order?",
    wait=True,
)