Pi Top 20 热门扩展盘点
pi.dev 上现在有 2400 多个扩展包,月下载量前 20 的加起来超过 50 万次。我来逐个介绍这些扩展。
pi-subagents — 70.6K/月
让 AI 把任务委派给专注的子代理。内置 7 个专业代理:
scout:快速本地代码库侦察,找到相关文件、入口点、数据流、风险,以及另一个代理应该从哪里开始
researcher:网络和文档研究,包括官方文档、规范、基准测试、最近变更,生成简洁的研究简报
planner:从现有上下文制定具体实现计划,只读和计划,不编辑代码
worker:实现工作,包括已批准的 oracle 交接,编辑文件、验证,遇到未批准的决策时升级而不是猜测
reviewer:代码审查和小修复,检查实现是否符合任务/计划、测试、边缘情况和简洁性
context-builder:规划前的更强设置阶段,收集代码上下文并编写交接材料如
context.md和meta-prompt.mdoracle:行动前的第二意见,挑战假设、捕捉偏离、推荐最安全的下一步,不编辑文件
可以用自然语言触发:”Use reviewer to review this diff” 或 “Ask oracle for a second opinion on my current plan”。也可以链式执行(scout → planner → worker)或并行执行(多个 reviewer 同时工作,一个关注正确性,一个关注测试,一个关注不必要复杂度)。
支持后台运行和 fork 上下文。子代理可以 TUI 澄清 UI 预览和编辑工作流。内置推荐编排模式:clarify → planner → worker → fresh reviewers → worker。
pi-mcp-adapter — 59.8K/月
MCP(Model Context Protocol)是 Anthropic 推出的模型上下文协议。问题是 MCP 服务器会暴露上百个工具,每个工具的定义要占 100-300 token,连接几个服务器就烧掉半个上下文窗口——而且不管你用不用这些工具都要付这个成本。
这个适配器用一个 mcp 代理工具(约 200 token)代替所有 MCP 工具。服务器懒加载——只有实际调用工具时才连接,不会在启动时连接。工具元数据缓存到磁盘(~/.pi/agent/mcp-cache.json),搜索、列出和描述功能不需要实时连接。
可以通过 directTools 配置把常用工具提升为 Pi 的一级工具,让 LLM 直接看到,而不是通过代理搜索。比如:
1 | { |
生命周期模式:lazy(默认,连接后空闲 10 分钟断开)、eager(启动连接但不自动重连)、keep-alive(启动连接,自动重连)。
支持 MCP UI 标准。当 agent 调用有 UI 资源的工具时,适配器通过 Glimpse(macOS)或浏览器打开它,UI 可以调用 MCP 工具并发消息回给 agent,双向通信。
配置文件:.mcp.json(项目)、~/.config/mcp/mcp.json(用户全局)、~/.pi/agent/mcp.json(Pi 全局覆盖)、.pi/mcp.json(Pi 项目覆盖)。
context-mode — 57.8K/月
“上下文问题的另一半”。从 4 个方面解决:
上下文节省:沙箱工具把原始数据挡在上下文外。Playwright 快照 56KB、20 个 GitHub issue 59KB、一个访问日志 45KB,通过沙箱后变成 5.4KB,98% 减少。
会话连续性:每个文件编辑、git 操作、任务、错误和用户决定都记录到 SQLite。对话压缩后不把这些数据倒回上下文——而是索引到 FTS5,通过 BM25 搜索只注入相关内容。模型从上次停的地方继续。如果你不用 --continue,上次会话数据立即删除——新会话是干净的开始。
Think in Code:LLM 应该编程来做分析,而不是计算。不是读 50 个文件到上下文来数函数,而是写个脚本做计数,console.log() 结果。一个脚本代替 10 次工具调用,节省 100 倍上下文。这是所有 15 个平台的强制性范式:停止把 LLM 当数据处理器,把它当代码生成器。
1 | // Before: 47 × Read() = 700 KB. After: 1 × ctx_execute() = 3.6 KB. |
不强制文风:context-mode 管数据往哪去,不管模型怎么写回答。简洁性、完整性、格式——你的模型决定(或通过你自己的 CLAUDE.md/AGENTS.md)。
11 个 MCP 工具:ctx_batch_execute、ctx_execute、ctx_execute_file、ctx_index、ctx_search、ctx_fetch_and_index(6 个沙箱工具)+ ctx_stats、ctx_doctor、ctx_upgrade、ctx_purge、ctx_insight(5 个元工具)。
支持 Claude Code(plugin 自动路由)、Gemini CLI(hook 自动路由)、VS Code Copilot(hook)、JetBrains Copilot(hook)、Cursor(hook/plugin)、OpenCode(plugin)等平台。
pi-web-access — 34.3K/月
网页搜索、内容提取和视频理解。零配置 Exa 搜索(不需要 API key),也可以添加 Exa、Perplexity 或 Gemini API key 获取更多控制,或者用浏览器 cookie 访问 Gemini Web。
工具:
web_search:通过 Exa、Perplexity AI 或 Gemini 搜索网络,返回带来源引用的综合答案。支持批量查询、按天/周/月/年过滤、限制域名、包含内容抓取
code_search:通过 Exa MCP 搜索代码示例、文档和 API 引用,不需要 API key
fetch_content:获取 URL 并提取可读内容为 markdown。自动检测和处理 GitHub 仓库、YouTube 视频、PDF、本地视频文件和常规网页
get_search_content:从之前的搜索或抓取中检索存储的内容
GitHub URL 被克隆到本地,不是抓取渲染的 HTML。模型拿到真实文件内容和本地路径,可以用 read 和 bash 探索。超过 350MB 的仓库通过 API 获取轻量级视图(可以 forceClone: true 覆盖)。克隆在会话中缓存,会话更改后清除。私有仓库需要 gh CLI。
YouTube 视频通过 Gemini 处理:完整转录、带时间戳的视觉描述、章节标记。可以传一个 prompt 问视频里的具体问题。结果包含视频缩略图。fallback:Gemini Web(启用浏览器 cookie 时)→ Gemini API → Perplexity(只有文本摘要)。处理所有 URL 格式:/watch?v=、youtu.be/、/shorts/、/live/、/embed/、/v/。
本地视频文件:传文件路径(/、./、../ 或 file:// 前缀)通过 Gemini 分析视频内容。支持 MP4、MOV、WebM、AVI 等常见格式,最大 50MB。可以传 prompt 问具体内容。安装 ffmpeg 会包含缩略图帧。
PDF URL 提取为文本并保存到 ~/Downloads/ 作为 markdown。agent 可以 read 特定部分而不加载完整文档到上下文。只有文本提取,没有 OCR(扫描文档)。
被阻止的页面:当 Readability 失败或只返回 cookie 通知时,扩展通过 Jina Reader(服务器端 JS 渲染,不需要 API key)重试,然后 Gemini URL Context API,再是 Gemini Web 提取(启用浏览器 cookie 时)。处理 SPA、JS 重型页面和反机器人保护。也解析 Next.js RSC flight 数据。
每个能力都有 fallback 链:搜索先试 Exa,再试 Perplexity,再试 Gemini API,最后试 Gemini Web(启用浏览器 cookie 时)。
配置:~/.pi/web-search.json。provider 设置默认搜索提供商(exa、perplexity、gemini)。workflow 设置默认 curator 模式(summary-review 打开 curator 并自动生成摘要草稿,none 原始结果)。
斜杠命令:/websearch(打开搜索 curator)、/curator(切换或配置 curator)、/search(浏览存储的搜索结果)、/google-account(显示当前认证的 Google 账户)。
活动监视器:Ctrl+Shift+W 切换显示实时请求/响应活动。
@ollama/pi-web-search — 26.1K/月
基于本地 Ollama 实例的网页搜索和抓取工具。适合本地部署场景,不依赖外部 API。
两个工具:
ollama_web_search:搜索网络获取实时信息
ollama_web_fetch:从网页获取并提取内容
要求:pi coding agent 已安装、Ollama 正在运行(ollama serve)。
如果连接错误:确保 Ollama 正在运行、验证 web search/fetch 在 Ollama 配置中启用、检查 OLLAMA_HOST 环境变量匹配设置。
@plannotator/pi-extension — 21.9K/月
交互式计划审查。可以给 agent 消息添加注释,还能审查代码和 PR。提供计划审查界面,agent 可以交互式审查计划,标注问题,收集反馈,改进方案。
pi-lens — 13.7K/月
实时代码反馈。每次 write 和 edit 时运行一个快速、语言感知的管道:
Secrets 扫描:阻止写入,检测到凭证(密码/token/secret)
Auto-fix:6 个工具的安全自动修复(Biome
check --write、Ruffcheck --fix、ESLint--fix、stylelint--fix、sqlflufffix、RuboCop-a)在分析前应用LSP 同步:在活跃语言服务器中打开/更新文件
并行 lint:LSP 诊断、tree-sitter 结构规则、ast-grep 安全/正确性规则、fact 规则、语言特定 linter、实验性 Semgrep 安全扫描、相似性检测
级联诊断:显示哪些其他文件受影响以及诊断如何传播(通过文件 → 符号 → 依赖的 review graph)
agent 结束时(所有 agent 工具调用完成后):
延迟格式化:本轮排队的文件格式化一次,同步到 LSP,跟踪 read-guard 覆盖
摘要通知:简洁状态:多少文件被格式化、哪些改变、是否有格式化器失败
会话开始时:重置运行时状态和诊断遥测,检测项目根、语言配置文件和活跃工具,应用语言感知的启动默认值来预装工具,预热缓存和可选索引(有重叠/会话护栏),为检测到的语言发出缺失工具安装提示,在用户提示前添加会话指导,打开 warmFiles(在 .pi-lens/lsp.json 中配置)来为懒索引语言服务器如 clangd 做种。
LSP 支持默认开启(--lsp 或无 flag),内置 37 种语言服务器定义,自动从 PATH、项目 node_modules 和托管安装中发现。服务器未安装时提供交互式安装提示。LSP 服务器 240 秒不活动后关闭(没有文件被修改),编辑恢复时重置定时器。懒索引服务器如 clangd 可以配置 warmFiles 在会话开始时打开入口点文件。
格式化器:自动检测并运行 26 种格式化器(biome、prettier、ruff、black、sqlfluff、gofmt、rustfmt、zig fmt、dart format、shfmt、nixfmt、mix format、ocamlformat、clang-format、ktlint、rubocop、standardrb、gleam format、terraform fmt、php-cs-fixer、csharpier、fantomas、swiftformat、stylua、ormolu、taplo)。检测规则:配置门控(只在项目配置指示使用时运行)、最近胜(多个格式化配置在不同目录级别存在时,离编辑文件最近的胜)、Biome 默认(JS/TS 文件没有 Prettier 或 Biome 配置时用 Biome)、Ruff 默认(Python 文件没有 Black 配置时用 Ruff format)。
Read-before-edit 保护:所有文件写入和编辑前验证 agent 是否读了足够上下文。零读取阻止(任何编辑没在当前会话读过的文件)、文件修改阻止(文件在上次读取后磁盘上改变)、超出范围阻止(编辑目标行超出之前读取的范围)。跨越多个读取的覆盖:读取 1-100 行和 101-200 行一起满足完整文件写入。符号扩展读取(小读取通过 tree-sitter 透明扩展到封闭符号)在符号级别计入覆盖。Markdown、文本和日志文件豁免。单次编辑覆盖:/lens-allow-edit <path>。配置 --no-read-guard 禁用或模式设为 warn。
机会性读取扩展:当 agent 读取一个小切片(≤ 60 行)时,pi-lens 通过 tree-sitter AST 透明扩展到完整封闭符号(函数、方法或类)。agent 收到完整符号作为上下文,read guard 记录符号级别覆盖,所以符号内任何地方的编辑通过而不需要 agent 读每一行。扩展在 200ms 预算内运行,不支持的文件类型或解析失败时静默回退。支持 TypeScript、TSX、JavaScript、JSX、Python、Go、Rust、Ruby。
Fact 规则管道:覆盖 JavaScript/TypeScript、Python、Go、Rust、Ruby、Shell、CMake。基于 TypeScript AST 的 fact-rule 引擎提取函数级别指标并评估质量和安全规则。阻止规则在写入时立即浮现,建议规则通过 /lens-booboo 访问。
阻止(写入时浮现):cors-wildcard(Access-Control-Allow-Origin: * 在服务端代码)、error-swallowing(空 catch 块)、no-commented-credentials(注释代码中的密码/token/secret)、high-entropy-string(Shannon 熵可疑高的字符串字面量,可能硬编码 secret)。
pi-markdown-preview — 12.1K/月
Markdown 和 LaTeX 预览。可以输出到终端、浏览器或 PDF。实时渲染,支持数学公式、代码高亮、表格、列表等 Markdown 特性,以及 LaTeX 数学公式。
@juicesharp/rpiv-ask-user-question — 12K/月
结构化问卷工具。当 AI 需要猜测时,可以用选项向用户提问,而不是自由输入。这样可以避免模糊的猜测,确保得到明确的方向。支持带选项的问卷,用户可以从预定义的选项中选择,或者输入自定义内容(如果允许)。
pi-powerline-footer — 11.7K/月
Powerline 风格的状态栏,显示模型、thinking、token、git、worktree 和 skill 指标。提供两行固定状态页脚,包含丰富的信息和视觉反馈。
@juicesharp/rpiv-todo — 11.5K/月
待办事项列表,以覆盖层显示,/reload 和会话压缩后还在。支持依赖追踪(blockedBy)和循环检测,模型可以顺序安排工作。4 种状态:pending → in_progress → completed,加上删除的墓碑记录(用于审计)。
覆盖层在编辑器上方实时渲染,完成的项目保持可见直到下个 agent 响应开始,然后消失。12 行折叠阈值;完成的项目先掉落,待办项目最后截断。列表为空时自动隐藏。
工具 todo:创建/更新/列表/获取/删除/清除任务。blockedBy 依赖追踪带循环检测。任务通过分支回放持久化——存活会话压缩和 /reload。
斜杠命令 /todos:按状态分组打印当前待办列表。
本地化:安装 @juicesharp/rpiv-i18n 可以把覆盖层标题、/todos 章节标题和状态词切换到活动区域。支持 de、en、es、fr、pt、pt-BR、ru、uk。语言从 --locale <code> → ~/.config/rpiv-i18n/locale.json → LANG/LC_ALL → 英语解析。
pi-simplify — 10.2K/月
审查最近修改的代码,检查清晰度、一致性和可维护性。基于 git diff 检测变更文件,让 agent 审查这些原则:
保留功能:从不改变代码做什么
应用项目标准:遵循 CLAUDE.md/AGENTS.md 的约定
增强清晰度:减少复杂度、消除冗余、改进命名
保持平衡:避免过度简化
agent 读每个文件,一次应用一个改进,运行测试验证不破坏任何东西,总结变更。
斜杠命令:/simplify(审查所有未提交变更)、/simplify --staged(只审查暂存变更)、/simplify src/foo.ts src/bar.ts(审查特定文件)、/simplify --ref=main(对比特定分支 diff)。
@juicesharp/rpiv-advisor — 9,294/月
让 AI 在行动前向更强的模型请求第二意见。当决策本身有风险时很有用——oracle 会挑战假设、捕捉偏离、推荐最安全的下一步而不编辑文件。避免在没验证的情况下做出高风险决策。
pi-btw — 9,095/月
平行对话功能。/btw 命令开启一个真正的 Pi 子会话,有 read/bash/edit/write 工具访问,在主 agent 忙碌时也能运行。
连续 BTW 线程:默认保持,后续
/btw调用继续当前线程/btw:tangent:上下文无关的侧边线程,不从当前主会话继承对话打开专注 BTW 模态窗口:有自己的 composer 和 transcript
在你用
Alt+/把焦点切回主编辑器时保持 BTW 覆盖打开BTW 线程条目不出现在主 agent 的未来上下文中
支持 BTW-only 模型和 thinking 覆盖而不改变主线程设置
注入完整线程或摘要回主 agent
可选
--save把单个 BTW 交换保存为可见的会话笔记
斜杠命令:
/btw [--save] <question>:立即运行,保持当前 BTW 线程,打开或刷新 BTW 模态窗口,流到 BTW 模态 transcript/状态表面,持久化 BTW 交换为隐藏线程状态/btw:new [question]:清除当前 BTW 线程,从当前主会话上下文启动新线程/btw:tangent [--save] <question>:启动或继续上下文无关的 tangent 线程,不从当前主会话继承对话/btw:clear:关闭 BTW 模态/组件,清除当前 BTW 线程/btw:inject [instructions]:发送完整 BTW 线程回主 agent 作为用户消息,pi 忙碌时排队为后续,发送后清除 BTW 线程/btw:summarize [instructions]:用当前有效 BTW 模型总结 BTW 线程,注入到主 agent,pi 忙碌时排队,清除 BTW 线程/btw:model [<provider> <model> <api> | clear]:显示或设置 BTW-only 模型覆盖/btw:thinking [<level> | clear]:显示或设置 BTW-only thinking 覆盖
覆盖控件:Alt+/ 在 BTW 和主编辑器之间切换焦点不关闭覆盖层,Ctrl+Alt+W 是不传递 Alt+/ 的终端的回退焦点切换,Esc 覆盖层聚焦时立即关闭 BTW。
BTW 作为实际 Pi 子会话实现,有自己的内存会话状态、transcript 事件和工具表面。上下文 /btw 线程从当前主会话分支种子化并过滤掉父上下文中的 BTW 可见笔记;/btw:tangent 在无上下文模式下启动相同 BTW UI。BTW 可以继承主线程模型/thinking 设置或使用 BTW-only 覆盖。覆盖层 transcript/状态行从子会话事件驱动。
@juicesharp/rpiv-web-tools — 9,054/月
基于 Brave Search API 的网页搜索工具。提供网络搜索和内容抓取功能,使用 Brave Search API 获取结果,适合需要高质量搜索结果的场景。
@juicesharp/rpiv-btw — 8,998/月
/btw 斜杠命令,一次性侧边提问。简化版平行对话,用于快速侧边问题而不保持连续线程。
@runfusion/fusion — 8,990/月
Fusion AI 编码代理的 CLI 工具。提供 HTTP API 服务器、守护进程、dashboard 启动器和任务工具。
@juicesharp/rpiv-pi — 8,855/月
基于技能的开发工作流。包含五个技能(研究、设计、计划、实现、验证)和组成其 ship-loop 的共享子代理。提供技能驱动的开发流程,从研究到验证的完整链路。
glimpseui — 8,683/月
原生微 UI 框架,提供跨平台的 WebView 窗口和双向 JSON 通信。用于脚本和代理——跨平台 WebView 窗口带双向 JSON 通信。
MCP UI 标准支持:当 agent 调用有 UI 资源(_meta.ui.resourceUri)的工具时,适配器获取 UI HTML 并在 iframe 中打开(通过 Glimpse 的原生 macOS WKWebView 窗口,如果可用,否则回退到浏览器)。UI 可以调用 MCP 工具并发消息回给 agent。
会话复用:当 agent 再次调用同一工具而其 UI 已打开时,适配器推送新结果到现有窗口而不是替换。这启用实时更新——agent 可以细化图表、添加数据或响应用户输入而不丢失当前视图。不同工具仍替换会话如之前。
来自 UI 的消息类型:prompt(触发 agent 响应用户消息)、intent(带名称 + 参数的结构化动作)、notify(即发即忘通知)、message(通用消息负载)。
检索 UI 消息:mcp({ action: "ui-messages" })。
浏览器控件:Cmd/Ctrl+Enter 完成并关闭,Escape 取消并关闭,Done/Cancel 按钮 同键盘快捷键。
技术:工具许可门控 UI 是否可以调用 MCP 工具,支持 stdio 和 HTTP MCP 服务器,使用本地 408KB AppBridge 包(MCP SDK + Zod)进行浏览器↔服务器通信。
@samfp/pi-memory — 8,013/月
持久化记忆。从会话中学习纠正、偏好和模式,在未来对话中注入。
自动学习:会话结束时通过 LLM 整合提取偏好、项目模式和纠正。只有置信度 ≥ 0.8 的事实被存储。课程通过精确匹配和 Jaccard 相似度(≥ 0.7 阈值)去重。
上下文注入:新会话开始时从存储事实和课程构建 <memory> 上下文块,追加到系统提示。块限制在 8KB。
纠正粘住:你纠正一次的错误变成永久课程(如 “use sed for daily notes, not echo >>”)。
记忆类型:偏好(pref.*,如 pref.commit_style → “conventional commits”)、项目模式(project.*,如 project.rosie.di → “Dagger dependency injection”)、工具偏好(tool.*,如 tool.sed → “use for daily note insertion”)、用户身份(user.*,如 user.timezone → “US/Pacific”)、课程(表格)。
工具:memory_search(语义搜索)、memory_remember(手动存储事实或课程)、memory_forget(删除事实或课程)、memory_lessons(列学习的纠正)、memory_stats(显示记忆统计)。
斜杠命令:/memory-consolidate(手动触发从当前会话的内存提取)。
工作原理:
session_start:打开 SQLite 存储,在状态栏短暂显示记忆统计
before_agent_start:从存储事实和课程构建
<memory>上下文块,追加到系统提示agent_end:收集会话消息用于后续整合
session_shutdown:运行 LLM 整合(通过
pi -p --print)提取结构化知识,然后关闭存储
存储:SQLite 数据库在 ~/.pi/memory/memory.db(WAL 模式)。三张表:semantic(带置信度分数的键值事实)、lessons(学习的纠正带去重)、events(所有记忆操作的审计日志)。
项目本地存储:保持项目记忆与用户全局记忆隔离,在 {project}/.pi/settings.json 添加:
1 | { |
或者如果通过 pi-total-recall 安装(包含 pi-memory、pi-session-search 和 pi-knowledge-search 的完整上下文堆):
1 | { |
解析顺序(最高优先在前):pi-memory.localPath 在 {cwd}/.pi/settings.json → pi-total-recall.localPath cascade → {localPath}/memory/memory.db → 全局默认:~/.pi/memory/memory.db。
选择性课程注入:默认所有课程注入每个会话。当有很多跨不同领域的课程时可能浪费上下文。启用选择性模式根据相关性过滤课程:
1 | { |
添加到 ~/.pi/agent/settings.json。在选择性模式,课程通过提示相关性(FTS 搜索用户的第一个消息)、项目上下文(匹配当前工作目录项目的课程)、类别推断(提示中的关键词触发相关类别,如 “pentest” 拉取 bug-bounty 课程,”blog post” 拉取 writing 课程)过滤。结果限制在 15 个最相关课程而不是全部。
社区
这 20 个扩展每月下载超过 50 万次。juicesharp 和 nicopreme 贡献最多,各有多个扩展上榜。juicesharp 专注于工作流工具(rpiv-todo、rpiv-advisor、pi-btw、rpiv-ask-user-question、rpiv-pi),nicopreme 贡献了核心扩展(pi-subagents、pi-mcp-adapter、pi-web-access)。
安装
安装扩展用 pi install npm:<package名>。比如:
1 | pi install npm:pi-subagents |
最后的话
Pi 的扩展生态在快速成长。从任务调度、网络访问到代码审查、文档预览,从子代理协作到持久化记忆,开发者们构建了完整的工具链。这个排行榜只是个快照,未来应该还会有更多好东西。




