专题

基于 Pi Durable 的项目:应用、机器人与存储后端

基于 Earendil 实验性 durable harness Pi Durable 的社区项目:多人 Web 与 iOS 客户端、聊天机器人、Home Assistant、Pi 扩展,以及 Cloudflare 与 PostgreSQL 后端。均按固定提交核验源码。

概览

Earendil 于 2026 年 10 月 1 日随 Pi 1.0 发布 Pi Durable。它是构建长期运行 Agent 的框架,并不取代 Pi Coding Agent:每个运行步骤都作为任务记录检查点,崩溃后可恢复未完成的任务,会话也能在任意位置分叉。该包仍属实验性质,API 可能变化。

本页于 2026 年 10 月 7 日整理。GitHub 代码搜索找到约 75 个 package.json 引用 @earendil-works/pi-durable 的公开仓库;我们只保留非测试源码确实导入它的项目,再按用途挑出九项。全部按固定提交做了源码核验,未安装或运行。

按用途比较

表格可横向滚动;详细配置与来源见下方。

资源与用途介入环节依赖与 Key外发数据失败行为核验证据
pi-pocket

自托管 Web 应用,可在手机上使用 Pi,并支持多人共享实时会话。

一个 Pi Durable harness 将所有会话、模型请求、工具调用和子代理存进同一个 SQLite 文件;定时任务、目标、安全防护、内置浏览器和子代理均以 Durable 扩展实现。需要 Node.js 22.19+,并用 Pi 登录服务商(pi 后执行 /login)或提供服务商 Key。从 Git 仓库检出后执行 npm install 与 npm start,未发布到 npm。固定使用 Pi Durable 1.0.2。会话与工具上下文发送给所配置的模型服务商。远程访问方式由你选择:局域网模式使用明文 HTTP,可选的 Cloudflare 快速隧道会将服务公开到互联网。—
README / quick start / features ↗
oppi

原生 iPhone、iPad Pi 客户端,配合自托管服务端使用;Durable 会话是需要手动开启的实验功能。

每个会话选择一种引擎:经典 Pi 或 durable。durable 引擎运行在 Pi Durable harness 上,并将事件、线程与历史投射到 iOS 界面。需要 npm 包 oppi-server(0.51.0 依赖 Pi Durable 1.0.4)与 Node.js 22.19+。执行 oppi config set experimental.serverDurable true 并重启服务端,再在设备上开启「设置 → 实验 → Durable Sessions」。沙箱工作区还需要 Node.js 23.6+ 与 QEMU。App 通过经过认证的 HTTPS/WSS 连接你的 oppi-server,可经局域网、Tailscale 或公网主机访问;模型请求发往你配置的 Pi 服务商。—
Durable Sessions experiment (usage docs) ↗
pi-imessage

运行在 Mac 上的自托管 iMessage 机器人,每个聊天各有一个 durable 会话。

在本机读取「信息」App 的聊天,通过使用 JSONL 存储的 Pi Durable harness 回复。定时任务与周期性压缩以 durable 后台任务运行,并提供查看历史、任务与日程的小型 Web 界面。需要带「信息」App 的 macOS、Node.js 22.22.2+、Python 3、为终端授予完全磁盘访问权限,以及已登录的 Pi。npm 包 @kingcrab/pi-imessage 0.0.43(2026 年 8 月)早于 Durable 迁移,Durable 版本需从仓库源码构建。读取本机信息数据库。聊天上下文发送给所配置的模型服务商;可选的网页搜索与抓取工具会访问外部网站。—
README / requirements ↗
@geminixiang/mikan

面向 Slack、Telegram、Discord 与 GitHub 的自托管团队 Agent,每个频道或私信都有独立工作区。

每个对话作为存储在 SQLite 中的 Pi Durable 会话运行;自定义执行环境将工具调用交给宿主机或 Docker 沙箱执行。需要 npm 包 @geminixiang/mikan 1.0.0 与 Node.js 24.15+,并执行 mikan onboard。沙箱运行需要 Docker;SLACK_BOT_TOKEN、TELEGRAM_BOT_TOKEN、DISCORD_BOT_TOKEN 等平台 Token 视启用的渠道而定。连接你配置的聊天平台 API,并将对话上下文发送给所选 pi-ai 服务商;沙箱镜像从 ghcr.io 拉取。—
README / onboarding ↗
ha-pi-durable (Hearth Pi)

实验性 Home Assistant App,探索带严格审批边界的 durable 执行。

Pi Durable harness 将输入、任务检查点与会话记录持久化到 SQLite。Home 模式只读取明确授权的实体,灯光或开关操作需人工逐项批准;可选的代码模式运行在独立受限的 worker 中。需要 Node 24.21 LTS。可将仓库添加到 Home Assistant 应用商店,或用离线 provider 运行本地演示。在线 provider 支持 OpenAI(API Key)或 OpenAI Codex(ChatGPT 登录)。使用在线 provider 时,输入、会话上下文与工具输出发送给该服务商;Home Assistant 通过受限代理访问。README 说明不收集遥测。中断的编码调用不会重放;中断的设备指令记为结果未知,不会自动重试。恢复后模型请求可能重复发送。
README / boundaries / recovery ↗
pi-fabric

Pi 扩展,其派生的 agent 与 actor 默认运行在 Pi Durable 上。

为 Pi 提供一个可编程工具 fabric_exec。它运行的程序可以启动 worker、常驻 agent 与 actor;默认 agents.runner 为 pi-durable,即由 Durable harness 与 JSONL 存储支撑的独立 Pi SDK 进程。外层 Pi 会话保持不变。需要 Pi 1.0.0+ 与 Node.js 24+。用 pi install npm:pi-fabric 安装,Pi Durable 作为固定版本依赖随包提供。将 agents.runner 设为 pi 可改回原先的 Pi CLI worker。——
Durable Pi runner documentation ↗
webfox

联网搜索与研究工具集,同时以 Pi Durable 扩展的形式提供这些工具。

除 CLI、库和常规 Pi 扩展外,webfox/durable 入口导出 createWebfoxExtension,供自建 Durable 宿主安装。每次调用都在会话的执行环境中运行,较大的结果保存为私有文件。需要 Node.js 22+,以及所用服务商各自的 API Key,例如 BRAVE_SEARCH_API_KEY。pi install npm:webfox 安装常规 Pi 扩展;Durable 入口需要以 peer 依赖形式提供 Pi Durable 1.0。查询与文档发送给你选择的网页或 LLM 服务商。中断的请求不会重放,因为服务商可能已计费;取消请求未必能停止服务商侧已经开始的任务。
README: Use with Pi Durable ↗
Cloudflare Agents SDK

Cloudflare Agents SDK 内含适配器,可在 Durable Object 中托管 Pi Durable。

agents/harness/pi 导出 PiHarness:它把 Pi Durable 状态存进 Durable Object 的 SQLite,并在对象被驱逐后重新唤醒 harness。仓库还提供 Pi harness 与 channels 示例。需要可使用 Workers 与 Durable Objects 的 Cloudflare 账号。安装 agents(核验时为 0.26.0),并自行安装作为 peer 依赖的 Pi Durable;模型凭据视示例而定。——
PiHarness ↗
@netzlabor/pi-durable-postgres

Pi Durable 的 PostgreSQL 存储后端,适合已有 Postgres 运维与备份的宿主。

基于单个 PostgreSQL 连接实现 Pi Durable 的 Storage 接口,并用 advisory lock 保证每个 schema 只有一个写入者。它通过上游存储一致性测试,并提供删除会话的事务化维护工具。需要 Node.js 22.19+、PostgreSQL(已测试 17)与 DATABASE_URL。安装 @netzlabor/pi-durable-postgres 时,需将 Pi Durable、Chord 与 pi-ai 固定为 1.0.3。——
README / status / limitations ↗

安装与运行边界

pi-pocket

自托管 Web 应用,可在手机上使用 Pi,并支持多人共享实时会话。

按原项目安装说明配置 →

实现机制
一个 Pi Durable harness 将所有会话、模型请求、工具调用和子代理存进同一个 SQLite 文件;定时任务、目标、安全防护、内置浏览器和子代理均以 Durable 扩展实现。
前置依赖
需要 Node.js 22.19+,并用 Pi 登录服务商(pi 后执行 /login)或提供服务商 Key。从 Git 仓库检出后执行 npm install 与 npm start,未发布到 npm。固定使用 Pi Durable 1.0.2。
数据范围
会话与工具上下文发送给所配置的模型服务商。远程访问方式由你选择:局域网模式使用明文 HTTP,可选的 Cloudflare 快速隧道会将服务公开到互联网。
已知限制
登录链接即所有者密钥。README 明确提示,能操控会话的受邀者相当于获得 shell 权限。在 Android/Termux 上,Lancet Guard 的 ONNX 模型可能无法加载。

已查阅源码 / 文档 ·
reviewed source 3e6046612db4358b599da302d5c96bd407d9de5c (2026-10-05) · Git install, not on npm

oppi

原生 iPhone、iPad Pi 客户端,配合自托管服务端使用;Durable 会话是需要手动开启的实验功能。

npm install -g oppi-server
实现机制
每个会话选择一种引擎:经典 Pi 或 durable。durable 引擎运行在 Pi Durable harness 上,并将事件、线程与历史投射到 iOS 界面。
前置依赖
需要 npm 包 oppi-server(0.51.0 依赖 Pi Durable 1.0.4)与 Node.js 22.19+。执行 oppi config set experimental.serverDurable true 并重启服务端,再在设备上开启「设置 → 实验 → Durable Sessions」。沙箱工作区还需要 Node.js 23.6+ 与 QEMU。
数据范围
App 通过经过认证的 HTTPS/WSS 连接你的 oppi-server,可经局域网、Tailscale 或公网主机访问;模型请求发往你配置的 Pi 服务商。
已知限制
Durable 默认关闭,开启后也不会转换已有会话。已保存的 Agent 暂时不能启动 durable 会话。核验的源码比 npm 发行版对应的提交更新。

已查阅源码 / 文档 ·
npm oppi-server 0.51.0 · reviewed source 844e6d170aeca52885d7b284878e64f214bfbd7d (2026-10-06)

pi-imessage

运行在 Mac 上的自托管 iMessage 机器人,每个聊天各有一个 durable 会话。

按原项目安装说明配置 →

实现机制
在本机读取「信息」App 的聊天,通过使用 JSONL 存储的 Pi Durable harness 回复。定时任务与周期性压缩以 durable 后台任务运行,并提供查看历史、任务与日程的小型 Web 界面。
前置依赖
需要带「信息」App 的 macOS、Node.js 22.22.2+、Python 3、为终端授予完全磁盘访问权限,以及已登录的 Pi。npm 包 @kingcrab/pi-imessage 0.0.43(2026 年 8 月)早于 Durable 迁移,Durable 版本需从仓库源码构建。
数据范围
读取本机信息数据库。聊天上下文发送给所配置的模型服务商;可选的网页搜索与抓取工具会访问外部网站。
已知限制
仅支持 macOS,只回复配置在允许列表中的聊天。

已查阅源码 / 文档 ·
reviewed source ebdf5c290e01b9d97964952c1531bb9c249fb8ba (2026-10-06) · npm 0.0.43 predates Pi Durable

@geminixiang/mikan

面向 Slack、Telegram、Discord 与 GitHub 的自托管团队 Agent,每个频道或私信都有独立工作区。

npm install -g @geminixiang/mikan
实现机制
每个对话作为存储在 SQLite 中的 Pi Durable 会话运行;自定义执行环境将工具调用交给宿主机或 Docker 沙箱执行。
前置依赖
需要 npm 包 @geminixiang/mikan 1.0.0 与 Node.js 24.15+,并执行 mikan onboard。沙箱运行需要 Docker;SLACK_BOT_TOKEN、TELEGRAM_BOT_TOKEN、DISCORD_BOT_TOKEN 等平台 Token 视启用的渠道而定。
数据范围
连接你配置的聊天平台 API,并将对话上下文发送给所选 pi-ai 服务商;沙箱镜像从 ghcr.io 拉取。
已知限制
GitHub 适配器标记为实验性。README 显示 MIT 徽章,但 GitHub 未能识别仓库许可证。

已查阅源码 / 文档 ·
npm 1.0.0 · gitHead matches reviewed source c95f3701119cfa8ac6abf7af86cd884470e87502 (2026-10-07)

ha-pi-durable (Hearth Pi)

实验性 Home Assistant App,探索带严格审批边界的 durable 执行。

按原项目安装说明配置 →

实现机制
Pi Durable harness 将输入、任务检查点与会话记录持久化到 SQLite。Home 模式只读取明确授权的实体,灯光或开关操作需人工逐项批准;可选的代码模式运行在独立受限的 worker 中。
前置依赖
需要 Node 24.21 LTS。可将仓库添加到 Home Assistant 应用商店,或用离线 provider 运行本地演示。在线 provider 支持 OpenAI(API Key)或 OpenAI Codex(ChatGPT 登录)。
数据范围
使用在线 provider 时,输入、会话上下文与工具输出发送给该服务商;Home Assistant 通过受限代理访问。README 说明不收集遥测。
失败行为
中断的编码调用不会重放;中断的设备指令记为结果未知,不会自动重试。恢复后模型请求可能重复发送。
已知限制
作者标明为技术预览,不建议用于生产。操作默认关闭;服务调用成功不代表设备已实际变化;不能加载一般 Pi 扩展或 MCP 服务。

已查阅源码 / 文档 ·
reviewed source bde4eedea875f83d1b608e266198e6dc3d170fe8 (2026-10-04) · no npm release

pi-fabric

Pi 扩展,其派生的 agent 与 actor 默认运行在 Pi Durable 上。

pi install npm:pi-fabric
实现机制
为 Pi 提供一个可编程工具 fabric_exec。它运行的程序可以启动 worker、常驻 agent 与 actor;默认 agents.runner 为 pi-durable,即由 Durable harness 与 JSONL 存储支撑的独立 Pi SDK 进程。外层 Pi 会话保持不变。
前置依赖
需要 Pi 1.0.0+ 与 Node.js 24+。用 pi install npm:pi-fabric 安装,Pi Durable 作为固定版本依赖随包提供。将 agents.runner 设为 pi 可改回原先的 Pi CLI worker。
已知限制
版本更新很快,配置项较多。核验源码对应 0.108.1,核验当日 npm 已更新到 0.109.0。

已查阅源码 / 文档 ·
reviewed source b9e40f9f35af5ce0e7739de48a66b0aadef037e9 (2026-10-06, v0.108.1) · npm latest 0.109.0

webfox

联网搜索与研究工具集,同时以 Pi Durable 扩展的形式提供这些工具。

pi install npm:webfox
实现机制
除 CLI、库和常规 Pi 扩展外,webfox/durable 入口导出 createWebfoxExtension,供自建 Durable 宿主安装。每次调用都在会话的执行环境中运行,较大的结果保存为私有文件。
前置依赖
需要 Node.js 22+,以及所用服务商各自的 API Key,例如 BRAVE_SEARCH_API_KEY。pi install npm:webfox 安装常规 Pi 扩展;Durable 入口需要以 peer 依赖形式提供 Pi Durable 1.0。
数据范围
查询与文档发送给你选择的网页或 LLM 服务商。
失败行为
中断的请求不会重放,因为服务商可能已计费;取消请求未必能停止服务商侧已经开始的任务。
已知限制
Durable 适配器不安装 CLI,不注册标准 Pi 渲染器,也不提供 codemode 的结构化结果接口。

已查阅源码 / 文档 ·
npm 4.7.0 · gitHead matches reviewed source 2fcc7d99d8e0bdbd644c53cc27a99d7f1f93d010 (2026-10-03)

Cloudflare Agents SDK

Cloudflare Agents SDK 内含适配器,可在 Durable Object 中托管 Pi Durable。

npm install agents
实现机制
agents/harness/pi 导出 PiHarness:它把 Pi Durable 状态存进 Durable Object 的 SQLite,并在对象被驱逐后重新唤醒 harness。仓库还提供 Pi harness 与 channels 示例。
前置依赖
需要可使用 Workers 与 Durable Objects 的 Cloudflare 账号。安装 agents(核验时为 0.26.0),并自行安装作为 peer 依赖的 Pi Durable;模型凭据视示例而定。
已知限制
Pi 只是这个大型 SDK 中的一个 harness 适配器,并非其核心运行时。pi-on-cf 与 gitorange 都基于此适配器构建。

已查阅源码 / 文档 ·
npm agents 0.26.0 · reviewed source 92d1770de7d4f0b2c643e23f4ac867950bae69fc (2026-10-06)

@netzlabor/pi-durable-postgres

Pi Durable 的 PostgreSQL 存储后端,适合已有 Postgres 运维与备份的宿主。

npm install @netzlabor/pi-durable-postgres
实现机制
基于单个 PostgreSQL 连接实现 Pi Durable 的 Storage 接口,并用 advisory lock 保证每个 schema 只有一个写入者。它通过上游存储一致性测试,并提供删除会话的事务化维护工具。
前置依赖
需要 Node.js 22.19+、PostgreSQL(已测试 17)与 DATABASE_URL。安装 @netzlabor/pi-durable-postgres 时,需将 Pi Durable、Chord 与 pi-ai 固定为 1.0.3。
已知限制
处于 Alpha 阶段。尚不支持删除运行中的会话,不支持 PgBouncer 事务池;表名不带前缀,需要使用专用 schema。核验源码比 npm 发行版更新。

已查阅源码 / 文档 ·
npm 0.1.1 · reviewed source d10b637aae29bb8fcf16c1280372b2f74060ead3 (2026-10-05)

按要运行的场景选择

想用手机连接 Coding Agent,可在浏览器使用 pi-pocket,或在 iPhone、iPad 上使用 oppi。pi-imessage、mikan 和 Hearth Pi 分别是 iMessage、团队聊天和 Home Assistant 中的常驻助手。在 Pi CLI 中,pi-fabric 默认用 Pi Durable 运行其 worker;webfox 则为自建宿主提供 Durable 扩展形式的联网工具。

自建宿主时,Cloudflare Agents SDK 可在 Durable Object 中运行 Pi Durable,PostgreSQL 后端则把 Agent 状态存进已有数据库。页尾的更多实现还包括 Cloudflare 多租户运行时、PR 审查和 Durable 子代理。

状态可恢复,不代表副作用可以重放

Pi Durable 记录的是 harness 执行到哪里;文件、部署、支付和设备仍各有自己的状态。因此本页多个项目不会自动重放中断的工作:Hearth Pi 将中断的设备操作标记为结果未知,等待人工处理;webfox 也不重发被中断的服务商请求,因为这些请求可能已经计费。

评估项目时,除了会话能否恢复,还要看工具在重启后的行为。恢复过程中模型请求可能再次发送,并再次产生用量。

版本与安装来源

10 月 5 日,npm 上的 Pi Durable 已更新到 1.0.4。各项目固定的 1.0.x 版本不同,且常常精确锁定;PostgreSQL 后端要求同时安装 1.0.3 版的 Pi Durable、Chord 和 pi-ai。在同一宿主中组合多个库时,应先统一这些版本。

还要确认所装版本确实包含 Durable 代码。pi-imessage(0.0.43)与 @rivet-dev/pi(0.1.0)当前的 npm 版本并不依赖 Pi Durable,Durable 实现只在各自仓库中;oppi-server 已包含它,但在开启服务端实验选项前不会启用 durable 会话。

npm install @earendil-works/pi-durable @earendil-works/pi-ai @earendil-works/chord

未收录的项目

部分热门仓库只在内置的 Pi monorepo 副本、实验性探针或可选的开发后端里包含 Pi Durable,自身产品代码并不导入它;pi-dispatch 提到的 durable 队列也与 Pi Durable 无关。这些项目未在本页列出。

Stars 记录于 10 月 7 日,只代表关注度。多数项目创建不过数日,请把本页视为快照,并留意各仓库的后续变化。

更多实现

  • @rivet-dev/pi →

    将 Pi 作为 durable Rivet Actor 运行。基于 Pi Durable 的版本(0.5.0)目前只在仓库中,npm 0.1.0 尚未使用 Pi Durable。

  • roamgate →

    Herdr 的桌面与移动客户端:控制终端、监控 Coding Agent、审阅 diff。内置助手运行在使用 SQLite 存储的 Pi Durable 上。

  • pi-on-cf →

    实验性单用户 Cloudflare Coding Agent,每个会话一个 Durable Object 和一个容器工作区。没有认证,需用 Cloudflare Access 保护。

  • antiproton →

    Cloudflare 上的多租户 Agent 运行时:每个租户与 Agent 一个 Durable Object,工具网关让凭据不进入模型上下文;每个对象内由 Pi Durable 运行 Agent。

  • sift →

    GitHub Action 形式的多 Agent PR 审查:主审与各专项审查者在 Docker 工作区中检查代码,每个 PR 保存一份 SQLite 快照。仅用于受信任仓库,跳过 fork PR。

  • pi-durable-subagents →

    Pi 扩展:后台子代理可查看、引导,重启后可恢复,可选在 git worktree 中隔离。

  • pi-durabletask-mcp →

    Nyarlathoteppppp 维护的外部 MCP 桥接,让 Claude/Codex 委派 Pi,支持 steer、同会话 follow_up 和可选 SQLite 重启恢复;需已配置的全局 Pi,非 Pi 扩展。

一手来源与核验范围

本文区分源码 / 文档核验与实际运行测试。未标注“已实测”的功能、性能和节省比例不代表本站测量结果。