目标:让服务器(脚本 / pi agent)能搜索推特、看 trending、拉时间线,零 API 费用。

方案:OpenCLI 的远程编排模式——服务器跑 CLI,经 SSH 反向隧道调用本地 Chrome 里已登录的 X 会话。

服务器: opencli CLI ──SSH 反向隧道(-R 19825)──▶ Mac: daemon ──▶ Chrome(已登录 X)

第 1 步:本地(Mac)装 opencli

  1. 安装 CLI:npm i -g @jackwener/opencli(或 brew)
  2. Chrome 加载 Browser Bridge 扩展(chrome://extensions → 开发者模式 → Load unpacked)
  3. Chrome 登录 x.com(建议用小号,防主号风控)
  4. 验证:opencli doctor 三绿(Daemon / Extension / Connectivity)

第 2 步:本地开 SSH 反向隧道

ssh -N -R 19825:127.0.0.1:19825 lskam@<服务器IP>

窗口保持常开。服务器上的 127.0.0.1:19825 由此接到本地 daemon。

第 3 步:服务器调用

先花 10 秒确认链路:

ss -tln | grep 19825                                          # 隧道在监听
curl -s -m 5 http://127.0.0.1:19825/ | grep -o 403           # 403 = 已通到 daemon(安全头校验,属正常)
opencli doctor                                                # 三绿

然后就能用了:

opencli twitter search "vllm" --product top --limit 10
opencli twitter search "from:vllm_project" --limit 20
opencli twitter trending
opencli twitter timeline
opencli twitter profile <user>
opencli twitter download <tweet-id>

第 4 步:接入 pi agent

把工作流沉淀成可复用资产:

  • 操作手册 ~/.opencli/REMOTE-MODE.md(拓扑 / 命令速查 / 排障表)
  • pi skill x-info-source——之后说"查推特"即自动先验证链路再执行

三条纪律(踩坑换来的)

  1. 服务器上别裸跑 opencli——隧道断时会自启本地 daemon 抢占 19825,隧道从此连不上;先 ss -tln | grep 19825 确认。
  2. 严禁在服务器 shell 里跑 ssh -R ... 服务器自身IP——自环转发,实测上千条连接风暴。
  3. 隧道只留一条——多设备 / 多窗口同开会造成绑定冲突和悬挂隧道。