内容提要
rpi-web 是 pi-rust 生态中为原生 rpi 编程助手提供的浏览器工作区,可查看会话、模型回复及工具调用过程。服务端 rpi 负责读写文件与执行命令,浏览器仅负责显示交互。功能包括按项目组织会话、工具卡片核对、文件预览、运行时设置与执行轨迹。安装时通过 rpi install 安装扩展,配置模型凭据后运行 rpi --webserver 启动;远程访问需配置监听地址、允许 Host 和工作区密码,建议先在受控环境试用。
延伸解读
浏览器只是窗口,执行仍在服务端
rpi-web 的架构决定了它的使用边界:浏览器负责显示与交互,真正的文件读写、命令执行和模型调用都由服务端的 rpi 完成。这意味着手机打开页面并不会获得手机本地文件,也不需要安装 Rust 工具链。反过来,服务跑在哪台机器上,操作的就是哪台机器的项目。理解这一点,才能正确规划远程访问和权限控制。
会话独立不等于文件隔离
文章特别提醒,新建会话只是区分任务上下文,并不创建独立的文件副本。两个会话指向同一项目时,仍可能修改同一批文件。若想并行尝试互相冲突的方案,应准备独立工作目录或 Git worktree。此外,Agent 的写入工具会直接修改项目文件,不会等待在预览面板里点“接受”,因此修改后必须核对 diff 并运行测试。
远程访问的三道门槛与安全边界
默认服务只监听 127.0.0.1,局域网访问需分别配置监听地址、允许的 Host 和工作区密码。公网访问还需 HTTPS 反向代理并保留 Host 头。文章强调,工作区密码与模型 API key 是两回事,当前共享密码模式下访客共享同一项目与会话,并非多租户隔离。项目分组也不是安全沙箱,公网部署前应先限制服务账号的文件权限和可用工具。
版本匹配与功能预期
文章在 Windows 上用 rpi 0.15.0 加 rpi-web 0.1.27 验证了安装、启动和空会话创建,但未发起真实模型请求。开发截图中的历史时间线和执行轨迹等新功能需要匹配的 Web、后端与原生宿主,升级时不能只替换浏览器静态文件。执行轨迹只整理当前工作区已拿到的信息,不是完整 API 日志,也不能据此补出未记录的耗时或顺序。
Q&A
rpi-web 是什么?它和 rpi、pi-rust 是什么关系?
rpi-web 是 pi-rust 生态中为原生 rpi 编程助手提供的浏览器工作区。pi-rust 是 Rust 实现的 Agent 项目,rpi 是其中可直接运行的命令行程序,也是 Web 工作区背后的原生宿主;rpi-web 位于 rpi-package 仓库的 packages/rpi-web 目录,负责在浏览器中显示会话、模型回复和工具调用过程,实际读写文件、执行命令和调用模型仍由服务端的 rpi 完成。
怎么安装并启动 rpi-web?
先确保已安装 rpi 宿主(rpi --version 能正常输出),然后执行 rpi install rpi-web --github pi-rust/rpi-package --version 0.1.27 安装扩展。进入项目目录并配置模型凭据(如 ANTHROPIC_API_KEY 环境变量),执行 rpi --webserver=init 创建 .rpi/web.json,再执行 rpi --webserver 启动服务,打开 http://127.0.0.1:3030/ 即可使用。
rpi-web 的浏览器界面能做什么?
可以按项目组织会话,在对话中查看 Markdown 回答和可展开的工具卡片(核对调用参数、命令和结果),通过文件面板预览项目文件与 Git 变更,在运行时设置中选择模型、调整思考深度、查看上下文占用和启用的工具,还能使用问题时间线和执行轨迹回看历史步骤。
如何从手机或局域网其他设备访问 rpi-web?
默认只监听 127.0.0.1,需配置监听地址、允许的 Host 和工作区密码。例如设置 RPI_WEB_PASSWORD 和 RPI_WEB_ALLOWED_HOSTS(填 IP:端口,不含 http://),然后运行 rpi --webserver --bind 0.0.0.0 --port 3030。公网访问还需将域名加入允许列表并配置 HTTPS 反向代理,保留 Host、设置 X-Forwarded-Proto: https 并关闭流式响应缓冲。
rpi-web 的工作区密码和模型 API key 有什么区别?
工作区密码决定谁能进入 Web 工作区,模型 API key 用于调用模型服务。浏览器能登录只说明工作区访问成功,不代表模型服务已授权;如果页面能打开但模型请求失败,应先检查服务进程的模型凭据和所选模型。当前访问保护使用共享密码,访客共享同一项目与会话,不是多租户隔离。
使用 rpi-web 时有哪些安全或使用限制需要注意?
独立会话不等于独立文件副本,同一项目的多个会话可能修改同一批文件,冲突方案应使用独立工作目录或 Git worktree。文件面板不是完整在线 IDE,Agent 写入工具会直接修改文件而不等待确认,修改后应先核对 diff 再运行测试。项目分组不是安全沙箱,不建议直接开放给陌生人;停止服务会清理会话子进程,重启后任务不会自动继续。