为用户设置 Hwip。整个设置过程就是安装 CLI,然后运行 hwip install — 本技能中的其他内容都是验证步骤。
设置
npm install -g @hwip/cli
hwip install
安装程序是交互式的(浏览器登录 + 代理选择器),因此必须在用户自己的终端中运行,而不是通过你的 Bash 工具。请让用户运行它 — 在 Claude Code 会话中,他们可以使用 ! 前缀来输入:
! npm install -g @hwip/cli && hwip install
请全局安装,不要使用 npx。 hwip cc(从手机驱动会话)需要 hwip 在 PATH 中,并且安装程序写入的代理钩子(如本插件的钩子和 MCP 服务器)会使用 command -v hwip || npx … — 全局二进制文件可以避免每次通知和每次会话启动时 npx 的冷启动。npx -y @hwip/cli install 仍然适用于仅通知、无手机控制的设置,但默认使用全局安装。
hwip install 的作用:
- 全新机器:打开浏览器登录。Web 应用会自动颁发 API 密钥和交互式 Hook 作为配对的组合 — 无需从设置中复制密钥。CLI 会将所有内容(
apiKey、hookId、baseUrl、wsUrl)保存到~/.hwip/config.json。 - 已登录:保留已保存的凭据,仅(重新)安装代理集成。随时可以安全地重新运行。
- 为每个检测到的代理(Claude Code、Gemini CLI、Codex CLI、Cursor 等)安装钩子/MCP。
验证(用户表示完成后)
hwip verify(或npx -y @hwip/cli verify)— 必须报告 API 密钥和 Hook 已设置。切勿使用cat ~/.hwip/config.json:它包含 API 密钥,打印它会将密钥暴露在对话记录中。- 发送测试推送:使用
hwip_notify,或hwip notify --title "Hwip 已连接 ✅"。 - 手机振动 → 完成。告诉用户重启他们的代理会话,以便 SessionStart 钩子注入远程控制规则。
规则 — 不要重新引入旧的手动流程
- 唯一权威配置源:
~/.hwip/config.json。 每个 Hwip 组件(CLI、MCP 服务器、插件钩子)都读取它。不要将HWIP_API_KEY/HWIP_HOOK_ID添加到~/.zshrc、~/.bashrc或~/.claude/settings.json— shell 导出是不必要的,并且会创建第二个容易漂移的副本。 - 环境变量仅作为高级覆盖(多账户、CI)存在。在正常设置过程中切勿建议使用它们。
- 除非机器是无头模式(如下),否则切勿引导用户在 Web 应用中手动创建密钥或 Hook。
无头机器(无浏览器)
在任何有浏览器的机器上登录。然后用户自己从该机器的 ~/.hwip/config.json 中读取两个值(apiKey、hookId)— 不要将会话中的文件打印出来,因为它包含 API 密钥。在无头机器上,用户在自己的终端中运行以下命令(如果由你运行,密钥会落入对话记录中):
npm install -g @hwip/cli
hwip install --key ak_... --hook hook_...
出现问题时的解决方法
hwip_ask 返回 403 Forbidden — 密钥/Hook 配对过期。重新运行 hwip install;重新登录会颁发一致的新配对。
未收到通知 — command -v jq(钩子需要 jq:brew install jq / apt install jq),并确认手机应用登录的是与浏览器登录相同的账户。
hwip_ask 超时 — 手机应用是否打开?是否在超时时间(默认 300 秒)内应答?hwip verify 可以检查安装健康状况。
config.json 丢失或损坏 — 重新运行 hwip install;它会重写该文件。