Skip to content

Repository files navigation

Pi Web

Pi Web 是一个面向 Pi coding agent 的浏览器界面,主要为手机等移动端使用场景设计,也兼容桌面浏览器。它提供会话、聊天、图片输入和中英文(中文 / English)界面切换。

Requirements

  • Node.js 24 或更新版本(仓库 package.json 要求 node >=24.0.0)。
  • pnpm 10(仓库固定 [email protected])。

Install, build, and start

先在仓库根目录安装并构建。Pi runtime/session 使用统一的项目工作目录,优先级为 --cwd > PI_WEB_CWD > 服务进程 cwd。注意原始命令 PI_WEB_ACCESS_TOKEN='replace-this' pnpm --filter @pi-web/server start 会把进程 cwd 切换到 apps/server,因此通过 pnpm 启动时应显式设置目标项目目录;不要在不同目录之间混用同一组会话。

pnpm install --frozen-lockfile
pnpm build
PI_WEB_ACCESS_TOKEN='replace-this' PI_WEB_CWD='/path/to/project' pnpm --filter @pi-web/server start

也可以在目标项目目录直接运行已构建的服务(此时默认使用当前目录),或传 CLI 参数:

cd /path/to/project
PI_WEB_ACCESS_TOKEN='replace-this' node /path/to/pi-web/apps/server/dist/main.js
# 等价的显式形式
PI_WEB_ACCESS_TOKEN='replace-this' node /path/to/pi-web/apps/server/dist/main.js --cwd /path/to/project

默认端口为 8787。本机访问时默认使用 HTTP,不需要配置 HTTPS 证书或私钥:

PI_WEB_ACCESS_TOKEN='replace-this' PI_WEB_CWD='/path/to/project' pnpm --filter @pi-web/server start

可以通过环境变量覆盖:

  • PI_WEB_HOST:监听 host,默认绑定 127.0.0.1
  • PI_WEB_PORT:监听 port,默认 8787
  • PI_WEB_ACCESS_TOKEN:访问令牌;浏览器登录后会通过 Authorization Bearer header 访问 API,令牌不会放在 URL 中。页面访问错误5次后会直接关闭程序。
  • PI_WEB_CWD:Pi runtime、SessionManager、会话列表和页面工作区标签共同使用的项目目录。
  • PI_WEB_WEB_DIST:可选的 Web 构建产物目录覆盖;默认根据服务端模块位置稳定解析 apps/web/dist
  • PI_WEB_HTTPS_CERT / PI_WEB_HTTPS_KEY:可选的 HTTPS 证书和私钥路径;必须成对设置。设置后服务会直接以 HTTPS 启动。

Host, HTTPS, and network safety

默认 127.0.0.1 只允许本机访问。由于本项目主要面向手机等移动端使用,通常需要让手机从同一可信局域网访问运行在电脑上的 Pi Web 服务;此时必须显式设置可信局域网 host(例如受信任网卡地址),并由用户自行承担网络暴露、访问控制和 HTTPS 配置风险。不要在不可信网络上监听 0.0.0.0

如果只需要让同一可信局域网内的设备通过 HTTP 访问,不需要 HTTPS 证书或私钥,不要设置 PI_WEB_HTTPS_CERT / PI_WEB_HTTPS_KEY

PI_WEB_HOST=0.0.0.0 \
PI_WEB_ACCESS_TOKEN='replace-this' \
PI_WEB_CWD='/path/to/project' \
pnpm --filter @pi-web/server start

然后在其他设备上访问 http://<LAN_IP>:8787

手机浏览器访问局域网 HTTP 地址时,部分浏览器能力会受限。如果需要 HTTPS,可用本地证书让 Pi Web 直接启动,例如:

brew install mkcert
mkcert -install
mkdir -p certs
LAN_IP="$(ipconfig getifaddr en0)"
mkcert -key-file certs/pi-web-key.pem -cert-file certs/pi-web-cert.pem "$LAN_IP" localhost 127.0.0.1

PI_WEB_HOST=0.0.0.0 \
PI_WEB_ACCESS_TOKEN='replace-this' \
PI_WEB_CWD='/path/to/project' \
PI_WEB_HTTPS_CERT='certs/pi-web-cert.pem' \
PI_WEB_HTTPS_KEY='certs/pi-web-key.pem' \
pnpm --filter @pi-web/server start

然后在手机上访问 https://<LAN_IP>:8787。如果手机不信任 mkcert 根证书,浏览器仍会提示证书不受信任。

Browser limitations and acceptance scope

真机设备测试非 MVP 验收范围:验收覆盖桌面和移动 viewport,不代表真实手机浏览器或局域网 HTTPS 配置已经完成生产验证。

Verification gates

pnpm check:secrets
pnpm check:docs
pnpm build
pnpm check:secrets

check:secrets 扫描 Git tracked source 和 apps/web/dist 构建产物,check:docs 验证本文档包含安全启动与验收范围说明。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages