📈 GH Trending Explorer 🎲 Surprise me

← all repos

disler / durable-pi

git clone https://github.com/disler/durable-pi.git

Durable Pi playground and agent network: persistent, multi-device durable agents with web and terminal clients

+6
stars, 24h · #5,090
+~47
stars, 7 days · #4,250
+248
stars, 30 days · #3,246
248
★ total · +23% this week
70
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 228 ★ 2026-10-23 · 248 ★
LanguageTypeScript
LicenseMIT
Created2026-10-05 (17d ago)
Last push11d ago
Watchers3
OwnerUser

GitHub topics

Links

README excerpt
# Durable Pi: The Durable Agent Network
> **Proactive agents start working before you sit down. They don't wait for you to work. They work for you, then wait.**
> Durable pi agents on any machine you own, driven from a web UI, a terminal or one curl.
📺 Watch this video to get the full breakdown of this codebase: **Pi Durable PROACTIVE Agents**
Pi Durable, from the team behind the Pi coding agent, persists ongoing work, conversations and application state through failures, through clients and through change itself. This repo puts it to work. Every device runs a small server, `dpi-backend`, that owns its agents, their SQLite databases and their tools. Clients connect with a **URL and a bearer token**: a web hub that watches every device at once, `dpi-tui` in the terminal, or one `curl` that sends work and waits for the answer. **The agent lives on the device, not in the client.** Close the browser, quit the terminal or restart the machine mid-tool, and the run picks up from its last checkpoint.
---
## Install
### Agentic Install
Open the repository in Claude Code (or Pi, or your favorite agentic coding tool) and run:
 [code] 
The command lives in `.claude/commands/install.md`. It checks Node 24, npm, just and zsh, confirms `OPENROUTER_API_KEY` in `.env` without printing it, runs `just install`, writes this machine's device config with `just net up local`, builds the web UI, offers to set up the proactive demo and finishes with `just check`. It never starts a server and never touches a device other than `local`. Run `/prime` afterwards to load the project context into your agent.
### Manual Install
**Prereqs:** Node.js 24 (via nvm), `just`, `zsh` (macOS ships it), an OpenRouter API key. Remote devices need passwordless `ssh`, and exe.dev VMs need an exe.dev account.
 [code] 
The proactive demo has its own dependencies: `just proactive install`, `just proactive build`, then `just proactive take`.
---
## What is a durable agent?
Can't you just `/resume`? Resume restores a chat transcript. It does not know which tool call was running when the process died, what that call already changed, what input was queued behind it, or what your application believed was true. A durable agent commits all of it (history, queued input, task checkpoints and application state) to storage **before** anything is shown. Reopen the storage and the harness knows exactly where every piece of work stopped.
Replay-safe tools rerun after a crash. A tool that may have partially run, like a `bash` call cut off by a restart, comes back as an interrupted result, so the agent decides what happens next instead of silently repeating a side effect. Once a run survives its own process, it no longer needs the window that started it. So the agent moves to the device, and every interface becomes a thin client of one HTTP API. **The device owns the run. Clients only watch and steer.**
---
## The hook: a proactive durable agent
A durable agent doesn't have to wait for your prompt. `apps/proac