@av-pi-studio/cli

中文文档
0.0.115发布于 2026/11/04TypeScriptES Module构建来源已验证近 30 天下载 1784

皮·斯图迪奥的工作是开车 Pi ——由Earendil所制作的终端编码代理——通过一个管理代理处理,终端,和git工作树的长寿命守护进程,本地或远程进行. 两个客户跟那个守护进程说话: 这个CLI和一个全b

中文使用文档
文档目录16 节
  1. 安装
  2. 快开始
  3. 网络用户界面
  4. 全球备选方案
  5. 命令树
  6. agent
  7. auth
  8. daemon
  9. relay
  10. pi
  11. ui
  12. update
  13. 特征群体
  14. 把它当作图书馆
  15. 如何跟守护进程说话
  16. 发展

@av-pi-studio/cli

皮·斯图迪奥的工作是开车 Pi ——由 Earendil 制作的终端编码代理——本地 通过管理代理进程、终端和git的长寿命守护进程 工作树。 两个客户端与守护进程交谈:这个CLI,和一个完整的浏览器UI. pi-studio 开始 守护进程让你进入其中之一:

pi-studio daemon start   # start (or find) a local daemon, print a pairing QR
pi-studio ui             # serve the browser UI, connected to that daemon

Pi-Studio web UI — an agent reading, editing, and running shell commands, each as its own tool-call card


安装

npm install -g @av-pi-studio/cli

这暴露了 pi-studio 二进制 PATH如果没有全局安装,则通过:

npx @av-pi-studio/cli [options] [command] [args]

快开始

# log in to a model provider (the `pi` provider needs one before it can run a turn)
pi-studio auth login

# start a local daemon (if one isn't already running) and print a pairing QR code
pi-studio daemon start

# open the full browser UI, pointed at that daemon
pi-studio ui

# ...or stay in the terminal: run an agent, list it, attach to stream live output
pi-studio agent run --provider pi/claude-3-5-sonnet "implement user authentication"
pi-studio agent ls
pi-studio agent attach <agentId>

# target a remote daemon instead of the local one
pi-studio --host workstation.local:6767 agent ls

运行 pi-studio --help (或 <command> --help)为通令树.

网络用户界面

pi-studio ui 为制作 Pi-Studio 浏览器 UI 服务——一个三栏工作空间(会议于 左边,中间的聊天/平面/代码,右边的文件和git变化)——作为一个静态站点, 不需要单独的安装或构建步骤。 指向任何守护进程, 本地或远程 :

pi-studio ui                                    # serves on http://localhost:4173, connects to the local daemon
pi-studio ui --ui-port 8080 --daemon-host workstation.local:6767

上面拍摄的英雄是真实的:每个工具都叫代理制作(读取/编辑/写作/shell)制作的 自己的卡,有活的diff统计, 在聊天.

在不离开分页的情况下审查它的变化——一个完整的diff视图,逐行:

Pi-Studio web UI — git changes diff view

将工作空间拆分成多个面板——在一个活终端旁边聊天(由 node-pty页:1 file, 或另一个会话 —— 并且布局在重新装入时持续 :

Pi-Studio web UI — split panes with chat and a live terminal side by side

每个文件都以完整的语法打开并突出显示 :

Pi-Studio web UI — syntax-highlighted code viewer

见 ui 命令下方的每个旗帜,以及 CONTRIBUTING.md 如何从源代码运行 UI dev 模式 .

全球备选方案

旗帜说明
-H, --host <host>守护进程目标——赤色 host:port,或带有 ws://编号 :wss:// 或者说 http://编号 :https:// 方案(例如:. workstation.local:6767, (中文(简体) ), https://box.local:6767(中文(简体) )
--password <password>密码保护守护进程密码
--home <dir>覆盖 $PI_STUDIO_HOME (用于客户端代号商店)
--pi-home <dir>覆盖 $PI_STUDIO_PI_HOME - 捆绑的Pi CLI自己的 .pi 配置目录 。 选择 auth.json 页:1 auth 组读取/写出,并转发给本地发行的守护进程和 pi-studio pi。必须先于子命令
--json将命令输出为 JSON 而不是表格
-v, --version打印已安装的 CLI 版本并退出

连接解析数字 : --host host:port → ws://host:port页:1 ws://编号 :wss:// 使用 URL 现成; http://编号 :https:// 被接受为熟悉并绘制成 ws://编号 :wss:// (守护进程) 是同一端口上升级到WebSocket的HTTP服务器; wss://编号 :https:// 暗指 TLS. 与 没有 --host,CLI目标 ws://127.0.0.1:6767。 。 。 .

默认动作 (无子命令) :

  • pi-studio <path> ——打开路径作为守护进程上的一个项目.
  • pi-studio (bare)——确保本地守护进程运行,再打印成对的QR代码.

命令树

agent

命令说明
agent run --provider pi/<model> "prompt"创建代理并运行第一个回合
agent ls列出所有代理
agent attach <agentId>流出一个特工的现场活动
agent send <agentId> "prompt"发送后续提示
agent steer <agentId> "message"引导运行的转弯( 在当前工具呼叫之后)
agent follow-up <agentId> "message"在代理机停止后发送消息
agent stop <agentId>中断当前转弯
agent wait <agentId>屏蔽到代理闲置或关闭
agent logs <agentId> [-n <limit>]打印页面时间表历史
agent inspect <agentId>打印完整的代理记录
agent update <agentId>更新模型/模式/思维/标题
agent archive <agentId>软删除
agent delete <agentId>难删除
agent reload <agentId>继续非公开会议
agent import <sessionRef>通过手柄导入提供者- 本地会话

run, (中文(简体) ), ls, (中文(简体) ), attach, (中文(简体) ), logs, (中文(简体) ), send,以及 steer 也工作没有 agent 前缀 (单位:千美元)pi-studio ls, (中文(简体) ), pi-studio run …) (中文(简体) ).

会话管理镜像Pi自己的斜线命令—— agent session (/会), compact, (中文(简体) ), new-session, (中文(简体) ), resume-session, (中文(简体) ), fork, (中文(简体) ), fork-messages, (中文(简体) ), clone, (中文(简体) ), name, (中文(简体) ), export, (中文(简体) ), model, (中文(简体) ), cycle-model, (中文(简体) ), last-message,以及 commands (列表扩展/即时/技能);运行 pi-studio agent --help 整个集.

提供者光谱剖析( N)--provider: pi/claude-3-5-sonnet • 供应商 pi,型号 claude-3-5-sonnet; 裸体 pi 仅供货商; mock - 免证书的模拟提供者.

auth

命令说明
auth login [provider] [--type api_key|oauth] [--api-key <key>]登录到一个模型提供者。 在没有论据的情况下,以互动方式选择一个; --api-key 是无头路径
auth status [--json]显示哪些提供者被配置, 如何配置( api key / oauth) , 以及从何处配置( 存储证书对一个环境内置)
auth logout <provider>删除存储的证书 。 校对:Soup

这个 pi 提供商在运行转弯前需要模型提供者证书. 这是 支持的提供方式之一——无手编辑 Pi's auth.json,没有狩猎 /login 内部 pi-studio pi交互式 TUI :

pi-studio auth login                          # interactive: filter the provider list, pick, enter key
pi-studio auth login openai --api-key sk-...  # headless — for scripts, CI, Dockerfiles
pi-studio auth status

无本地和守护进程 不像这里其他的团体, auth 从不打开 WebSocket. 这个 写 Pi 的证书商店 <piHome>/agent/auth.json (见 --pi-home),这是 守护魔的产卵特工读取的精确文件 接下来你增加的证明文件 代理产物没有重启守护进程 。 交互式提示需要 TTY; 使用 --api-key 带有 非交互式设置的明确提供者。 秘密从不重复 店里写着 0600。 。 。 .

daemon

命令说明
daemon start如果一个本地守护进程尚未运行, 将它喷出, 然后打印成对的 QR
daemon stop发送 SIGTERM 到本地守护进程
daemon restart停止然后启动本地守护进程
daemon status打印保健+PID
daemon set-password <pw>把密码打入 $PI_STUDIO_HOME/config.json
daemon pair为已运行的守护进程打印配对 URL/ QR
daemon rotate-key薄荷一款新配对键盘- 取消以前发布的每个配对链接/ QR

pi-studio onboard (上层)是用于 daemon start行为和赤裸裸 pi-studio 做同样的事情.

relay

命令说明
relay start [--listen <host:port>]注入本地继电器服务器( 默认) 0.0.0.0:7000),等待健康
relay stop发送 SIGTERM 到本地中继器
relay status [--listen <host:port>]在该地址上下打印中继器

自备的零知识接力@av-pi-studio/relay让客户端到达守护进程 在防火墙/NAT后面——守护进程拨号到它; 查看该软件包的 README 的全部内容 图片。 运行为自己的管理过程, 完全与守护进程生命周期脱钩: 点 a 守护进程通过 daemon.relay.endpoint 内 config.json (单位:千美元)PI_STUDIO_RELAY_ENDPOINT env),没有 通过此命令.

pi

命令说明
pi [args...]运行嵌入式 Pi 编码代理 CLI,逐字转发每个参数

一个纯粹的通过代理到准确的 pi 二进制捆绑在内 @earendil-works/pi-coding-agent (同一个守护神产卵)——所以 pi-studio pi ... 是一个 取代全球安装 pi,没有它的旗帜,子命令,或 互动TUI被重新执行. pi-studio pi 单发射互动TUI, 完全一样 赤线 pi (自Pi 1.0.0起默认为全屏-) pi-studio pi --tui-mode regular,或 "tuiMode": "regular" 在皮语中 settings.json,保持终端正常回转; pi-studio pi -p "prompt" 运行非交互. --pi-home (全球备选方案,必须 来之前 pi 在命令行上)重定向被捆绑的 CLI .pi 配置目录, 跟它一样 用于本地化的守护进程。 回归全球 pi 打开 $PATH 如果捆绑 依赖没有安装。 永远不要碰守护进程或电线协议.

ui

命令说明
ui [--ui-host <host>] [--ui-port <port>] [--daemon-host <host>]将预建的网页客户端 SPA 作为静态站点

服务于建筑 @av-pi-studio/web-client 乌伊( UI)dist/web通过最小的静态文件服务器 SPA倒置——运行时没有vite/dev依赖性,工作来自任何安装形状. --daemon-host (回到全球 --host预填已打印的 URL ?host=&connect=1 所以浏览器 选项卡自动连接; 命令本身从未探测或启动守护进程。 块到 SIGINT编号 :SIGTERM。 。 。 .

见 网络用户界面 上面为截图.

update

命令说明
update [--check]自我更新到最近 @av-pi-studio/cli npm上发布的版本

贝壳也一样 npm install -g @av-pi-studio/cli@<version> 用于安装 CLI 的路径 首先(参见上面的安装),它尊重您的 npm 配置( registry 镜像, auth, 代理)而不是重新实施注册客户端. --check 报告更新是否为 可用而不安装任何东西.

特征群体

chat, (中文(简体) ), terminal, (中文(简体) ), loop, (中文(简体) ), schedule, (中文(简体) ), permit, (中文(简体) ), provider,以及 worktree 是兄弟顶级 命令组( 没有) feature 包装,没有 project 组 - 打开一个项目是 顶级 open <path> 上面显示的命令 :

组图标
chatcreate <name> [--purpose], (中文(简体) ), ls, (中文(简体) ), inspect <roomId>, (中文(简体) ), post <roomId> <message> [--from], (中文(简体) ), read <roomId> [-n], (中文(简体) ), wait <roomId>, (中文(简体) ), delete <roomId>
terminalls, (中文(简体) ), create [--workspace] [--cwd], (中文(简体) ), capture <slot>, (中文(简体) ), send-keys <slot> <data>, (中文(简体) ), kill <slot>
looprun <prompt> [--max], (中文(简体) ), ls, (中文(简体) ), inspect <loopId>, (中文(简体) ), logs <loopId>, (中文(简体) ), stop <loopId>
schedulecreate <cron> <prompt>, (中文(简体) ), ls, (中文(简体) ), inspect <id>, (中文(简体) ), update <id> [--cron] [--prompt], (中文(简体) ), pause <id>, (中文(简体) ), resume <id>, (中文(简体) ), run-once <id>, (中文(简体) ), logs <id>, (中文(简体) ), delete <id>
permitls, (中文(简体) ), allow <permissionRequestId>, (中文(简体) ), deny <permissionRequestId>
providerls, (中文(简体) ), models <providerId>
worktreecreate <name> [--workspace], (中文(简体) ), ls, (中文(简体) ), archive <name>

把它当作图书馆

CLI的构件也出口给方案用途:

import { withDaemon } from "@av-pi-studio/cli";

await withDaemon(ctx, opts, async (daemonClient) => {
  // daemonClient is a connected @av-pi-studio/client DaemonClient
});

withDaemon 解决目标 URL 从 --host/ 默认, 连接, 运行您的回调, 然后 断开-处理 RpcErrors 和与干净的 stderr 输出和非零的连接失败 出口代码沿途.

如何跟守护进程说话

CLI 进程从不运行进程内的守护进程/中继代码 —— 它只会说 WebSocket API 驱动已有守护进程 。 它决定 @av-pi-studio/server' 's/(b)@av-pi-studio/relay/server是因为 通过绝对模块 URL import.meta.resolve (从来没有) await import()纯为烘焙该 URL 变成离子 node -e 它的子进程 daemon start编号 :relay start 看到了吗 daemon-control.ts是因为 subprocessStarter 财务报告和审定财务报表 relay-control.ts是因为 subprocessRelayStarterA级 稳定每台机器 clientId 在第一次使用时生成并存储于 $PI_STUDIO_HOME/client-id· ; clientType 总是 "cli"。 。 。 .

发展

npx vitest run packages/cli

测试覆盖命令解析、 提供者- spec解析、 流活动格式化、 守护进程控制 状态机器、输出渲染、配对-URL构造以及 auth (路径解析, 即时/通知渲染、登录/状态/记录协调)——全部针对注射 CliContext (站出输出槽+模拟) DaemonRuntime虚构 AuthRuntime 和终端I/O),从不真实 产下守护神 从来没有真正的证书店.

版本与发布记录

@av-pi-studio/cli 共发布 114 个版本,首次发布于 2026/07/18;过去 12 个月发布了 114 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.115latest2026/11/044 天前
0.0.1142026/10/2910 天前
0.0.1132026/10/2613 天前
0.0.1122026/10/2613 天前
0.0.1112026/10/2513 天前
0.0.1102026/10/1029 天前

关于 @av-pi-studio/cli 的常见问题

@av-pi-studio/cli 是什么?

皮·斯图迪奥的工作是开车 Pi ——由Earendil所制作的终端编码代理——通过一个管理代理处理,终端,和git工作树的长寿命守护进程,本地或远程进行. 两个客户跟那个守护进程说话: 这个CLI和一个全b

如何安装 @av-pi-studio/cli?

在项目目录运行 npm install @av-pi-studio/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 pi-studio,可以用 npx pi-studio 直接运行。

@av-pi-studio/cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@av-pi-studio/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@av-pi-studio/cli 可以商用吗?

@av-pi-studio/cli 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@av-pi-studio/cli 的下载量有多少?

根据 npm 官方下载统计,@av-pi-studio/cli 在 2026/10/07 – 2026/11/05 这 30 天内被下载 1,784 次,日均约 59 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@av-pi-studio/cli 还在维护吗?

最新版本 0.0.115 发布于 2026/11/04(4 天前);至今共发布 114 个版本,其中过去 12 个月发布了 114 个;首次发布于 2026/07/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。