Skip to content

About

Pi Coding Agent extensions I build and actually use.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

Repository files navigation

pi-extensions

pi TypeScript Node License


亮点

  • CDP 会话池:chrome-devtools 的浏览器连接跨工具调用保持打开。浏览器可以保留用户配置,会话结束后继续运行,下次登录状态还在。
  • 稳定的元素引用:DOM 快照给每个元素分配固定 ref,模型按 ref 点击和填写,发出真实的鼠标和键盘事件。
  • 按需加载工具:在支持的模型上,工具通过 chrome_devtools_load 按需加载,不预先写进提示词。
  • 复用已有凭据的搜索:websearch 走 OpenAI Codex 的搜索接口,使用 Pi 已持有的 openai-codex 凭据。它不读 ~/.codex/auth.json,不爬搜索结果页,也不启动嵌套代理。
  • B站视频总结:bvsum 下载 B站视频的音频,取官方字幕或用本地 Whisper 转录,必要时用 web_search 补充。总结不套固定模板,形式由视频内容决定。
  • 单仓库多扩展:用 npm workspaces 管理,解决了 Pi 安装 git 包时只在根目录执行 npm install 的问题,见下方“注意事项”。

工具一览

chrome-devtools:所有工具以 chrome_devtools_ 开头。

list_pages   select_page   navigate   evaluate   screenshot   snapshot   click
fill         press         wait_for   console    network      emulate    cdp_send

console 和 network 保留滚动日志;emulate 模拟设备;cdp_send 直接发送原始协议命令,覆盖封装之外的情况。另有两个 WebMCP 工具,需要在设置里开启。

websearch:一个工具 web_search,支持 search、open、click 和 find 四种命令。

bvsum(技能):/skill:bvsum <B站链接或BV号>,或直接让 Pi 总结一个 B站链接。依赖 Python 3、ffmpeg,以及 uvx(mlx-whisper)或 whisper-cli。音频和字稿放在 /tmp/bvsum/<BV号>/,重启后清空。

快速开始

pi install git:github.com/Mist-wu/pi-extensions

只想装其中一个扩展时,在 settings.json 里用对象形式,按目录匹配:

{
  "packages": [
    { "source": "git:github.com/Mist-wu/pi-extensions", "extensions": ["chrome-devtools/**"] }
  ]
}

项目结构

pi-extensions/
├── package.json          # npm workspaces、pi.extensions 入口列表和 pi.skills 目录
├── chrome-devtools/
├── websearch/
└── skills/
    └── bvsum/

目录是平铺的,因为 Pi 只往下找一层扩展目录:chrome-devtools/ 能找到,packages/chrome-devtools/ 找不到。

开发

npm install
npm run check

check 会在每个 workspace 里执行构建、lint、类型检查和测试。chrome-devtools 还有驱动真实 Chrome 的端到端测试:

cd chrome-devtools && npm run smoke:e2e

注意事项

新增扩展前需要知道两点。

Important

workspaces 不能去掉,这里的包也不发布到 npm。 Pi 安装 git 包时只在仓库根目录执行 npm install,不进子目录。没有 workspaces,子包的依赖就不会安装,扩展启动时加载失败。

Note

入口文件在根 package.json 的 pi.extensions 里显式列出。 自动发现也能找到它们,但会把根目录下任何 .ts 或 .js 文件都当成扩展,比如根目录的 vitest.config.ts 会被当成插件加载。显式列出就跳过了自动发现。

Warning

在这个仓库里开发,不要改 ~/.pi/agent/git/… 下的副本。那份副本归 Pi 管理,每次更新都会执行 git clean -fdx。

License

MIT。chrome-devtools/ 另附上游的署名,见其 LICENSE。

About

Pi Coding Agent extensions I build and actually use.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages