GitHub Explorer
📰 公众号已发布 2026-06-06

libGDX 老兵的 60K star 反潮流:1000 token 内核撑起 9 协议编码 Agent

GitHub: https://github.com/earendil-works/pi

一句话总结

Pi 是一款**「故意克制到极致」**的终端 AI 编码 Agent:系统提示词 + 4 个工具合计 < 1 000 token,runtime 依赖 0,却在 9.9 个月内统一了 9 种 LLM 协议、跑出 60K stars 和 100 个 release,把 Claude Code 一类「功能堆叠」产品反向拆回了「极简内核 + 自扩展」。

值得关注的理由

  • 极简哲学罕见地跑通了:17.6 万行 TS、零 runtime 依赖、281 tag、每 3 天一个版本,月度 commit 稳定在 400-500,证明「不内建 MCP / Plan / Sub-agents / TODO」的产品克制是能 scale 的。
  • 跨 9 协议统一 API 的工程硬功夫:Model<TApi> 泛型 + 条件 compat 字段 + satisfies 三连,把 Anthropic / OpenAI Responses / OpenAI Completions / Google / Bedrock 等 wire-format 异构性收口到 TS 类型层。
  • 真实训练数据飞轮:pi-share-hf + Hugging Face badlogicgames/pi-mono(2 069 月下载)让 Pi 跑出「真实编码 Agent 会话 → 公开数据 → 第三方微调(Qwen3.5-9B-Pi-Agent)」的完整闭环。

项目展示

第三方截屏与演示

  1. Pi Doom 扩展截图 — 类型: hero。把「Pi 不只是 CLI,它是个可装 Doom 的终端宿主」打到屏幕上(来源:pi.dev/press-kit)。
  2. Session Tree 视图 — 类型: architecture。展示「树状 session 历史 + 分支 / 书签 / 过滤」这一非传统竞品的关键能力(来源:pi.dev/press-kit)。
  3. Pi logo — 类型: brand。来自 README 的官方 logo。
  4. Exy 吉祥物 — 类型: screenshot。来自 README,exe.dev 捐赠 pi.dev 域名的致谢。
  5. 官方主页内联演示 GIF 集合:pi.dev — 类型: demo。中途 /model 切模型、运行中 steer 跟车、Crooked UI 切换、build a custom extension、session tree 分支分享等动图集中在主页段落,公众号发布时可由作者站点直接引用。

演示视频:Mario 演示如何用 pi-share-hf 发布会话(X/Twitter)

项目画像

维度数据
GitHubhttps://github.com/earendil-works/pi
Star / Fork60 333 / 7 242(2026-06-06 快照)
Watcher / Open Issue / Open PR209 / 49 / 5
代码行数176 155 行(注释 24 233 行,注释比 13.8%)
语言分布TypeScript 89.9% / JSON 5.6% / JavaScript 3.5% / CSS 0.5% / Shell 0.3%
文件数781
运行时依赖0(dev 依赖 10:biome、esbuild、husky、jiti、tsx、tsgo 等)
项目年龄9.9 个月(2025-08-09 → 2026-06-05)
总 commit4 429(近 30 天 437 / 近 90 天 1 287)
Release100 个 / 281 tag / 最新 v0.78.1 / 节奏 ≈ 每 3 天一版
开发阶段密集开发(已进入高频打磨期,非爆发成长期)
开发模式职业项目(周末 25% + 夜间 44%,月度稳态 400-500 commit)
贡献模式核心少数 + 社区:Mario Zechner 73.4% 占比、Top3 80.5%、总计 229 位贡献者
热度定位大众热门(60K stars / 半年内 TS 项目第一梯队)
许可证MIT
质量评级代码[优秀] 文档[优秀] 测试[充分] 治理[完善]

作者视角:为什么存在这个项目

创始人/作者背景

Mario Zechner(GitHub badlogic,奥地利 Graz)—— 15+ 年跨 ML / 数据科学 / 编译器 / 图形学经验,libGDX 与 RoboVM 作者。其个人站 mariozechner.at 2025 年 6-11 月连续发 5 篇前置博文:Claude Code 系统提示漂移分析 → Patching Claude Code for /cost → MCP vs CLI benchmark → What if you don’t need MCP(2025-11-02)→ What I learned building an opinionated and minimal coding agent(2025-11-30),是 Pi 的直接思想源流。Earendil Inc.(奥地利)为公司主体,旗下 Pi + Lefos 双产品线,pi.dev 域名由 exe.dev 捐赠。

次重要合作者:Armin Ronacher(mitsuhiko,Flask / Rye 作者,176 commits)从 Vercel AI SDK 短板(自托管模型、工具调用)切入;Helmut Januschka / Aliou Diallo / Markus Ylisiurunen / Nico Bailon 等 4-5 人稳定协作者 + 长尾 PR 构成外围;github-actions[bot] 105 commits 跑自动发版。

治理风格:.github/APPROVED_CONTRIBUTORS 白名单(117 次更新) + 新人 issue/PR 默认 auto-close(maintainer 每日 review)—— 一种「反 slop 优先于实时 PR review」的非常规开源治理。

问题判断

2025 下半年 Claude Code 凭借「内置一切」登顶 AI 编码 Agent 市场,但 Mario 在自己的博文中反复揭示其隐性代价:

  • 系统提示词臃肿到数千行,Mario 多次发文分析其 prompt drift 现象(甚至专门写了一篇《Patching Claude Code for /cost》—— 给 Claude Code 打补丁显示成本失控)。
  • MCP(Model Context Protocol)被当作「AI Agent 的 HTTP」普遍接入,但 Mario 用 benchmark 论证「多数 MCP 工具的调用其实可以直接走 bash + file read」—— MCP 是过度抽象。
  • 闭源商业 Agent 把 provider 锁死,单协议栈无法跨 OpenAI / Anthropic / Bedrock / 本地模型自由切换。

时机:2025-12 → 2026-Q2 是「Claude Code 臃肿化反扑窗口」 + 「OpenAI 兼容协议 + Claude Code 协议 + Anthropic Messages 协议三家割据」双重红利的交汇点 —— 极简 + 跨协议的「中间层」恰好踩中。

解法哲学

Pi 的「设计哲学」不是 feature list,而是一组显式的负面承诺:

  1. 不内建 MCP(Mario 2025-11-02 博文主题)
  2. 不内建 Plan mode / Sub-agents / Built-in TODO / Background bash / Permission 弹窗(Mario 2025-11-30 博文)
  3. 不补全 LLM 协议差异 —— 4 协议全部用 < 1 000 token 系统提示词统一表达
  4. 默认 YOLO(拿到调用者全部权限),主张「安全护栏在 Agent 能读+能执行的现实下多半是 theatre」,容器化(Gondolin micro-VM / OpenShell / Docker)外移
  5. 「If I don’t need it, it won’t be built」(Mario 自述)

「系统的所有功能」通过外部化策略达成:扩展、容器、prompt 模板、技能(Skills)、主题、Pi 包。

战略意图

badlogicgames/pi-mono Hugging Face 数据集 + pi-share-hf 真实会话上传工具 + 第三方基于该数据集微调 Qwen3.5-9B-Pi-Agent 等模型 —— 这是 Pi 项目的真实护城河:

跑出 Anthropic 训练自家模型用的那种「真实编码 Agent 会话」飞轮,让 Pi 用户每一次共享会话都反哺公开数据集,反过来又让第三方小模型能在 Pi 上跑得更好 —— 形成「使用 → 共享 → 微调 → 更好模型 → 更多使用」的正向循环。

Earendil Inc. 的商业化路径推测是「Pi 核心开源 + Lefos 商业化(猜测是云端 SaaS / 企业版)+ Hugging Face 生态影响力」。

核心价值提炼

创新之处

按新颖度 × 实用性排序:

  1. 泛型 Model<TApi> + 条件类型 compat 字段做「编译时协议隔离」(packages/ai/src/types.ts:566-596)。把 9 种 Api 的 wire-format 异构性压到 compat interface 上:调用方拿 Model<"openai-responses"> 时 compat 自动是 OpenAIResponsesCompat,写 compat.thinkingFormat 不会被允许到 Anthropic 字段。Provider 内部代码(anthropic.ts / openai-responses.ts / openai-codex-responses.ts)各自读自己 compat 字段,没有交叉。models.generated.ts 16 939 行全靠 satisfies Model<"..."> 在构建时验证 metadata 合法。这是 TS 类型系统被工程化用足的项目里极少数之一。

  2. Pull-push 混合流 EventStream<T, R>(packages/ai/src/utils/event-stream.ts:4-88,仅 88 行)。push 端 push(event) 把事件入队或直接递给等待 consumer;end(result?) 终结 + 解析 final result promise。调用方用 for await (const e of stream) 拉取,同时可以 await stream.result() 拿终止态。失败不抛,必须emit error 事件 + AssistantMessage.stopReason = "error"/"aborted" + errorMessage。整个 agent loop 因此可以全异步、无 catch 块地写完。

  3. 4 层 timeout 架构(transport / SSE header / WS connect / idle stream / retry-backoff)。openai-codex-responses.ts:1190-1201 显式命名 idleTimeoutMs,http-dispatcher.ts:38-55 控制 undici dispatcher 的 headersTimeout / bodyTimeout / allowH2: false。每层 timeout 是单独一层的,issue 定位能精确定位到哪一层失效。

  4. 极简 + 可自扩展组合:系统提示词 < 1 000 token + 4 工具(read / bash / edit / write)vs Claude Code 17+ 工具的 4-5× 差距,换来 prompt cache 命中率 + 用户自定义时的「可解释性」。grep/find/ls(tools/index.ts:147-154)被刻意拆出为 read-only 集合,默认不带。

  5. 扩展可声明 provider/model —— 第三方「软官方」补位:registerProvider(name, config)(extensions/types.ts:1301-1316)让 extension 注册全新 provider(不仅是 model)。Ollama / LM Studio / vLLM 等本地 LLM 不进 KnownProvider,让第三方 extension 用 registerProvider 填位。Issue #3357「官方 local LLM provider」22 评论 0 维护者回复 —— Pi 故意不背书,由生态补位。

可复用的模式与技巧

  1. 「负面承诺」做产品定位:把「不做什么」写进 README / CONTRIBUTING.md / 官方博文的硬规则,比 feature list 更能吸引「不想被工具栈绑架」的核心用户群。

  2. AGENTS.md 用第二人称对 LLM agent 下规则:AGENTS.md:14-15 显式「Read files in full before wide-ranging changes… Do not rely on search snippets for broad changes.」+ AGENTS.md:18「No inline imports」+ AGENTS.md:23「Never hardcode key checks」 —— 把「反 LLM slop」做硬规则,对应 CONTRIBUTING.md:7 的「The One Rule: You must understand your code. Using AI to write code is fine. Submitting AI-generated slop without understanding it is not.」。

  3. 测试前自动备份 ~/.pi/agent/auth.json + unset 30+ API key(test.sh:1-77)—— 防「开发本地凭据污染 CI」的反 slop 实践,可直接迁移到任何需要多 API key 的项目。

  4. issue 编号命名的回归测试:packages/coding-agent/test/suite/regressions/ 19 个 issue-编号命名的回归测试(AGENTS.md:33 规范 <issue-number>-<short-slug>.test.ts),可迁移到任何 monorepo。

  5. .npmrc 设 min-release-age=2 + 直接依赖钉死精确版本 + CI 跑 npm audit signatures(scripts/check-pinned-deps.mjs)—— 供应链加固的标准范式,可零成本迁移到任何 npm 项目。

  6. 「核心少数 + 社区」 monorepo 治理:1 个绝对主力(71.7%) + 4-5 个稳定外部协作者 + 长尾 PR —— 对应「.github/APPROVED_CONTRIBUTORS 白名单 + 新人 issue/PR auto-close + maintainer 每日 review」,适合「核心质量优先于社区规模」的开源项目。

关键设计决策

决策 A:泛型 Model<TApi> + 条件类型 compat 字段做「编译时协议隔离」

  • 问题:要在一个 SDK 里支持 9 种 Api,每种协议在「tool call id 字符集」「tool_choice 格式」「cache_control 字段名」「thinking 参数」上都是异构的。union + 判别式 → 调用方每个分支都要重新 if (api === "anthropic-messages") { ... },switch hell;基类继承 → 行为差异变成 virtual override,无法在 TS 类型系统里精确定位。
  • 方案:Model<TApi> 是泛型(types.ts:566-596),compat 字段定义为条件类型(types.ts:589-595)—— 写 Model<"openai-responses"> 时 compat 自动是 OpenAIResponsesCompat,跨字段误用根本编译不过。models.generated.ts 每个 entry 用 satisfies Model<"bedrock-converse-stream"> 形式声明,metadata 写入时 TS 已把字段合法性验证过一遍。
  • Trade-off:写 provider 的人必须为每种 api 写独立 Compat interface(AnthropicMessagesCompat 在 types.ts:431-476 已 ~45 行)—— 新增 provider 意味着新 interface。但换来的好处是:每条 wire-format 异构性都被收口在「compat field + provider 内部」两处,没有运行时 type assertion。
  • 可迁移性:高。任何做「跨协议 SDK」的 TS 项目都能用。关键是「把字段异构性的全部复杂性提前到类型层、在 compat interface 一次性收口」。

决策 B:把 agent 状态机收口到 runAgentLoop,用 8 个回调钩子暴露扩展点

  • 问题:agent loop 一般有多个「我想加一段逻辑」的入口点:上下文转换前/后、tool call 前/后、steering、follow-up、决定 stop 等。如果做成可继承的 virtual method,扩展者必须继承整个 class 才能改一处;如果做成 event bus,扩展者会反复注册 listener,listener 之间的 priority 又是新问题。
  • 方案:AgentLoopConfig(types.ts:135-277)是纯数据 interface,8 个回调钩子签名被 JSDoc 严格说明「不抛不拒,返回 safe fallback」(types.ts:144-146 / 182-185 / 194 / 206 / 228 / 241)。runAgentLoop(agent-loop.ts:95-269)内部只有 ~170 行 pure function:外层 while 循环处理「agent 走完一圈后看是否有 follow-up」,内层 while 处理「一个 turn 内的 tool call + steering」。扩展点 = 改 config.beforeToolCall 一个 lambda,不需要 class 继承。
  • Trade-off:8 个回调对简单 case 显啰嗦;中途改 config 的语义(prepareNextTurn 返回新 model)需要接受 partial override 的 merge 规则(agent-loop.ts:226-239)。但「不抛不拒、返回 safe fallback」是这一设计的灵魂 —— 任何一个钩子写错了不会 crash loop,只会「某次 turn 行为偏一次」。
  • 可迁移性:高。JS/TS 任何 agent 框架都能用这套 pattern,但关键不是「回调」本身,而是 JSDoc 里写死的「contract」:每个钩子都被明确说明「不能 throw」「返回什么算 noop」「何时被调用」。

决策 C:扩展加载用 jiti + 虚拟模块映射,不做 plugin classloader

  • 问题:让 extension 在 Bun 二进制和 Node 源码两种模式下都工作,且 extension 可以 import 整套 pi 包(@earendil-works/pi-ai / typebox 等),传统做法是给 extension 一个独立 module loader + 自定义 resolver。会导致:① 路径解析在不同 runtime 行为不一致;② 调试时 extension 的 stack trace 路径错位;③ 第三方 extension 可能 import 了一个 runtime 不存在的包。
  • 方案:extension/loader.ts:44-116 维护两个路径:
    • Bun binary 模式:VIRTUAL_MODULES 字典(loader.ts:44-61),把 typebox / @earendil-works/pi-coding-agent 等映射到已经静态 import 过的 namespace 对象。Bun bundle 时把它们塞进 bundle,extension import 时完全不走 node_modules 解析。
    • Node 模式:getAliases()(loader.ts:71-116)解析到 node_modules 里的 dist 文件或 workspace 软链,作为 jiti 的 alias。
    • 注释直白说明(loader.ts:16-18):「These MUST be static so Bun bundles them into the compiled binary.」
  • Trade-off:每次加新 package 都要同时改 VIRTUAL_MODULES 和 getAliases() 两处 —— 重复 boilerplate。但消除了运行时 resolver 的不确定性。
  • 可迁移性:中。任何做「app + plugin」的项目都能用,但关键 insight 是**「把 import target 锁死在 build 时刻」**比「让 plugin 自己写 import 路径」更安全。

竞品格局与定位

竞品对比矩阵

维度Pi (earendil-works/pi)Claude CodeOpenAI Codex CLIOpenCodeAider
工具集4(read / bash / edit / write)17+单一自带丰富偏 git / 文件 diff
系统提示词< 1 000 token数千行(Mario 多次发文分析其 prompt drift)单一较丰富较精简
MCP故意不内建原生原生原生有限
Plan mode故意不内建原生无自带无
跨 provider9 种 Api + 30+ providers仅 Anthropic + Bedrock + Vertex仅 OpenAI Responses / Codex Responses多 provider多 provider
协议统一抽象4 协议统一(Anthropic Messages / OpenAI Completions / OpenAI Responses / Google GenAI)单一自家单一多多
容器化安全外部(Gondolin / OpenShell / Docker)工具级 permission 弹窗单一自带较轻
扩展生态第三方 Pi 包生态(pi.dev/packages 3 672 个,Top 5 月下载 50K-130K)无(闭源)弱弱配置 + repo map
训练数据飞轮pi-share-hf → Hugging Face badlogicgames/pi-mono(2 069 月下载)→ 第三方微调闭源闭源弱弱
商业模式MIT 开源 + 第三方扩展生态闭源 + 订阅闭源 + 订阅MIT 开源MIT 开源
基准成绩Terminal-Bench 2.0 与 Codex / Cursor / Windsurf 同台同上同上较弱同上

差异化护城河

  1. 心智模式壁垒:「极简内核 + 显式反对 MCP 列入」是信念问题不是技术问题 —— 任何想做同样定位的人都要先回答「为什么需要 MCP / Plan mode / Sub-agents」。
  2. 真实训练数据飞轮:pi-share-hf → Hugging Face 公开数据 → 第三方微调(Qwen3.5-9B-Pi-Agent) → 更好小模型能在 Pi 上跑。这是其他竞品都没有的生态资产。
  3. 跨 9 协议统一 API 的工程硬功夫:4 协议 wire-format 异构性收口到 TS 类型层 + compat 条件类型,可读可审。models.generated.ts 16 939 行 metadata 全部 satisfies 静态校验,新增 provider 只需写 1 个 Compat interface。

竞争风险

  • 最可能被 Claude Code 替代:当 Claude Code 团队(Anthropic)决定做「精简模式」时,闭源 + 订阅的商业产品可以快速复制 Pi 的产品哲学。Pi 的差异化「开源 + 极简」对部分用户不可替代。
  • 可能被 OpenCode 替代:当 OpenCode 决定「显式拒绝 MCP / Plan」时,开源同行 + 自带功能齐全可能比 Pi 更有竞争力。OpenCode 已经在 Pi 的 CHANGELOG 里作为兼容性 fix 出现(0.78.1 修复 OpenCode Go Kimi K2.6 thinking requests)。
  • 多 Provider 抽象的债务:#4945 / #4251 / #5089 共同暴露「多 provider × 多 transport 的横切关注点(超时、模型发现、协议兼容)尚未完全收敛」—— 这是技术债,但 Mario 71.7% 单核占比意味着短期只能让 issue 自然消化。

生态定位

Pi 填补了**「多 provider + 极简内核 + 可自扩展」三角的生态空白 —— 整个 AI 编码 Agent 赛道里唯一**以这三角为定位的项目。其他产品在至少一个轴上妥协:Claude Code 选「功能齐全」;Codex CLI 选「单协议栈」;Aider 选「git-first」;OpenCode 选「功能齐全」。

套利机会分析

  • 信息差:60K stars / 100 release / 4 429 commits + libGDX 老兵作者 + 真实训练数据飞轮 = 「公开信息 + 但工程深度被严重低估」。多数中文技术社区还在把 Pi 当成「又一个 Claude Code 替代品」,没看到其类型系统级的工程贡献。
  • 技术借鉴:
    • 跨协议 SDK 的 Model<TApi> + 条件 compat + satisfies 三连 —— 可迁移到任何多供应商适配场景(云厂商 SDK、支付 SDK、消息队列 SDK)。
    • EventStream<T, R> pull-push 混合流 —— 失败不抛、用 protocol 事件编码的「错误即数据」哲学,可迁移到任何长连接 / 流式 SDK。
    • AGENTS.md 用第二人称对 LLM agent 下规则 —— 可作为「AI 编码 agent 友好的项目文档」范式直接借鉴。
  • 生态位:填补了「真正想自己掌控 prompt + 上下文的硬核开发者」这一长期被商业产品忽视的用户群;同时填补了「多 provider + 极简 + 跨协议」的技术生态位。
  • 趋势判断:2025-12 → 2026-Q2 是「Claude Code 臃肿化反扑窗口」 + 「跨 provider 切换需求爆发」双重红利的交汇期。Pi 在正确的时间踩中了正确的产品克制。Mario 71.7% 单核占比是最大风险也是最大优势 —— 没有公司化决策稀释,每 3 天一版的迭代节奏让 Pi 在 Terminal-Bench 2.0 上保持竞争力。

风险与不足

  • 单核作者风险(bus factor = 1):Mario Zechner 73.4% 占比 + 周末 25% + 夜间 44% 的高强度投入 = 项目可持续性高度依赖 Mario 个人节奏。任何人身/职业变故都会直接传导到项目。
  • 超大单文件未拆分:packages/coding-agent/src/modes/interactive/interactive-mode.ts 5 678 行(402 次变更) + packages/ai/src/models.generated.ts 16 939 行(397 次变更)—— 是项目两大 hot file,9.9 个月里没有把它拆出去。
  • 200 采样 commit 里 refactor 仅 0.5%(1 次):4 429 commit 的项目只显式 refactor 1 次非常反常,与 17.6 万行代码体量是显著反差。项目处于「feature 优先 + 后期 debt 累积」阶段,下半年大概率需要一波系统性 refactor。
  • packages/agent-old 仍有 36 次修改:意味着重构有遗留,对潜在贡献者是入场门槛。
  • 多 Provider 抽象的横切关注点尚未完全收敛:Issue #4945(Codex hang on Working…)53 评论、#4251(OpenCode Go Kimi K2.6 协议错误)、#5089(timeoutMs 大值被静默截断)—— 三者共同指向「多 provider × 多 transport 的超时 / 模型发现 / 协议兼容」架构债务。
  • 默认 YOLO 安全姿态:项目立场是「安全护栏在 Agent 能读+能执行的现实下多半是 theatre」,容器化建议外移。对企业用户来说这是一个明确的合规阻力。
  • 核心抽象层 0 处 as any,但 openai-completions.ts 单文件 20 处:provider 差异兜底集中在 openai-completions.ts,需要后续关注。
  • 第三方生态依赖冷启动:「核心不提供 / 官方生态提供」的反向工作模型(Ollama / 本地 LLM 不进 KnownProvider)依赖扩展生态,已有 3 672 个第三方包但「软官方」地位尚未稳定。

行动建议

  • 如果你要用它:

    • 适合「多 provider 切换 + 跨协议调试」的重度用户(OpenAI / Anthropic / Bedrock / Google / 本地 LLM 自由切)。
    • 适合「想自己掌控 prompt + 上下文」的硬核开发者(4 工具 + < 1 000 token 系统提示词 + extension)。
    • 适合「真实训练数据飞轮」研究 / 微调工作(Qwen3.5-9B-Pi-Agent 等小模型反哺)。
    • 不适合:纯商业闭源需求(请直接用 Claude Code);不想写 extension 的轻度用户(pi 的 4 工具极简需要你接受「先写 extension 再用」心智)。
  • 如果你要学它:重点关注

    • packages/ai/src/types.ts:566-596 —— Model<TApi> + 条件 compat 字段的「编译时协议隔离」范式
    • packages/ai/src/utils/event-stream.ts:4-88 —— 88 行实现 pull-push 混合流
    • packages/agent/src/agent-loop.ts:31-269 —— 8 个回调钩子替代 class 继承的 agent 状态机
    • packages/coding-agent/src/core/extensions/loader.ts:44-116 —— jiti + 虚拟模块映射的 Bun / Node 双 runtime 扩展加载
    • packages/ai/src/providers/openai-codex-responses.ts:1190-1201 —— 4 层 timeout 架构的实战样例
    • AGENTS.md + CONTRIBUTING.md —— 反 LLM slop 的工程文化(The One Rule + Read files in full + No inline imports)
  • 如果你要 fork 它:可以改进的方向

    • 把 interactive-mode.ts 5 678 行拆为「TUI 渲染 / 模式分发 / 用户输入处理」三个模块
    • 引入「显式 refactor」commit 规约,把现有 4 429 commit 中的「隐式重构」(chore: / feat: 内的重构) 显式化
    • 补齐 Ollama / LM Studio / vLLM 的「官方级」registerProvider 示例(Issue #3357 22 评论 0 维护者回复)
    • 给 pi-ai 添加 OpenTelemetry / structured logging hooks(目前 telemetry 不在产品定位内)
    • 把 models.generated.ts 16 939 行从「自动生成 metadata」升级为「自动生成 metadata + 静态校验 + 文档生成」三连

知识入口

资源链接
DeepWikideepwiki.com/earendil-works/pi(已索引,最近同步 2026-06-03)
Zread.ai未收录(403)
关联论文无
在线 Demopi.dev(官网 + 演示 GIF 集合) + pi.dev/packages(3 672 个第三方 Pi 包)
官方博文What I learned building an opinionated and minimal coding agent(2025-11-30) · What if you don’t need MCP(2025-11-02) · MCP vs CLI benchmark(2025-08-15) · Patching Claude Code for /cost(2025-08-06) · Prompts are code(2025-06-02)
训练数据huggingface.co/datasets/badlogicgames/pi-mono(146 喜欢 / 2 069 月下载)
关键 Issue#4945 openai-codex hang on Working… · #3357 Official local LLM provider extension · #5089 Doesn’t respect timeoutMs past a certain value
演示视频Mario 演示 pi-share-hf 发布会话(X/Twitter)
官方媒体素材pi.dev/press-kit

相关报告