终端里的 可扩展编码 Agent

Pi 是一个极简、可扩展的 agent harness:给它一个目标和你的工作目录,它就能读文件、跑命令、改代码, 并且自己一步步把多步任务推进完成。默认能力足够强,同时把「改造权」完全交给你。

~/Go_Project/demo — pi
> 给 main.go 加上 graceful shutdown

   ● 读取 main.go …
   ● 修改 main.go(+18 −3)
   ● 运行 go build ./... …
   ✓ 构建通过

   > 再补一个单元测试
   ⠿ 思考中…
features

默认够用,扩展随你

Pi 刻意不做子 Agent、Plan Mode 这类「帮你决定工作流」的功能,而是提供一套干净的扩展点,让你把它改成自己的形 状。

终端原生

在项目目录直接运行 pi,读写文件、执行 shell、查看 diff,全程不必离开终端。

Extensions

TypeScript 模块可直接往进程里注册工具、斜杠命令、快捷键、Provider、事件处理器和 TUI 渲染器。

Skills & Prompts

技能说明按需加载,不占常驻上下文;提示模板把常用输入预展开,减少重复敲击。

包与共享

把扩展、技能、模板、主题打包成 Pi Package,通过 npm 或 git 一条命令安装给别人用。

会话即数据

会话是 JSONL 的树状结构,支持继续、分支、Fork、压缩;历史记录永远可回溯。

多路接入

交互模式、print 一次性、JSON 事件流、RPC 控制、TypeScript SDK —— 同一套内核,随场景选。

how it works

一个循环,四个组件

Pi 协调「模型请求 → 工具执行 → 上下文拼装 → 会话存储」。一次工具调用与结果就是一轮 turn,需要时自动进入下一 轮。

用户消息 active branch 模型请求 prompt + tools 工具执行 read / bash / edit 结果写回会话(JSONL · 树状分支) 需要下一轮 → 继续循环,否则结束
interfaces

同一内核,多种使用方式

所有入口共用同一套 agent 与 session 机制,脚本化、集成到自家产品都可以。

模式用途
interactive终端里交互式对话,实时渲染工具调用与 diff
print一次性执行任务,直接把最终结果写到 stdout
json输出结构化事件流,方便被其他程序消费
rpcstdin/stdout 走 JSONL 命令,控制独立的 Pi 进程
sdkTypeScript SDK,在自己的应用进程内创建并控制会话
quickstart

三步开始

需要 Node.js 22.19 或更高版本(官方安装脚本会按需装好)。

bash / powershell安装 · 登录 · 开始
# 1. 安装(macOS / Linux)
   curl -fsSL https://pi.dev/install.sh | sh

   # Windows
   powershell -c "irm https://pi.dev/install.ps1 | iex"

   # 2. 进入项目目录并启动
   cd /path/to/project
   pi

   # 3. 在 Pi 内用 /login 连接订阅或 API Key,然后直接提需求