SuperAPI AI 工具集

ask-opencli

智能体与模型

查看项目

更新于 10-15 16:54

技能介绍

用途

ask-opencli 用于通过 opencli 工具向 Grok 或 Gemini 提问,借助用户已登录的 Chrome 浏览器会话完成查询,零 API 费用,完全由现有浏览器会话驱动。

opencli 项目地址:https://github.com/jackwener/opencli

主要能力

  • 通过 opencli 调用 Grok 或 Gemini 的网页版进行问答。
  • 支持 Grok 的 ask 命令,以及 Gemini 的 ask、new、deep-research、deep-research-result、image 等子命令。
  • 支持结构化输出(-f json)或纯文本输出(--format plain)。
  • 支持并行调度,可在同一轮对话中通过 Bash 工具以 run_in_background=true 同时调用 grok 和 gemini。
  • 每次成功调用后保存 markdown 产物到 .omx/artifacts/ask-opencli-<grok|gemini>-<slug>-<YYYYMMDD-HHMMSS>.md。

使用方式

安装与准备

  • 安装:npm install -g @jackwener/opencli(需要 Node ≥20)。
  • 首次运行:opencli doctor 会自动引导安装 Chrome Browser Bridge 扩展。
  • 登录:用装了扩展的 Chrome profile 打开 grok.com 和 gemini.google.com 登录一次。
  • 必须环境变量:export OPENCLI_BROWSER_COMMAND_TIMEOUT=300(写进 shell rc)。

触发条件

当用户明确要求查询 Grok 或 Gemini(如「问一下 grok」「用 gemini 查」「让 grok 看看」),或希望从 Grok 或 Gemini 获得第二意见/外部顾问,或直接说「ask grok」「ask gemini」时触发。

不触发的情况:用户想用原生 Gemini CLI(gemini -p)应改用 ask-gemini 技能;用户想要 Claude 自己的意见则直接回答;用户想用其他 AI(豆包、元宝、ChatGPT 等)则使用其他工具。

模型选择

如果用户未指定模型,默认对实时/社交/新闻/技术趋势类问题使用 Grok,对长文推理、研究、编程和文档分析使用 Gemini。若仍不明确,发送前询问用户使用哪一个。

命令示例

Grok(必须设置环境变量):

OPENCLI_BROWSER_COMMAND_TIMEOUT=300 opencli grok ask "{{PROMPT}}" --timeout 300 -f json

若环境变量已在 shell 中导出:

opencli grok ask "{{PROMPT}}" --timeout 300 -f json

Grok 标志:--new true 开启新对话;--web true 使用加固的 grok.com 消费者网页流程;--timeout 300 必须匹配或低于 OPENCLI_BROWSER_COMMAND_TIMEOUT;-f json 结构化输出。

Gemini:

opencli gemini ask "{{PROMPT}}" --format plain

Gemini 标志:--new true 开启新对话;--timeout 90 为长回答延长超时(默认 60s)。

常见错误命令

  • opencli gemini chat "..." 错误,正确为 opencli gemini ask "..."(没有 chat 子命令)。
  • opencli grok chat "..." 错误,正确为 opencli grok ask "..."(只有 ask 子命令)。
  • opencli grok new 错误,正确为 opencli grok ask "..." --new true(grok 的「新对话」是 ask 的参数)。
  • opencli gemini query "..." 错误,正确为 opencli gemini ask "..."(没有 query 子命令)。

两层超时

opencli 有两个独立的超时层,grok 需要同时设置才能等待足够久:

  • 内层:--timeout 300,grok.com 网页响应等待时间。
  • 外层:OPENCLI_BROWSER_COMMAND_TIMEOUT=300 环境变量,整个浏览器命令执行超时(默认 60s,硬编码在 runtime.js:25)。

外层优先于内层。只设置 --timeout 300 仍会在 60s 被终止,必须同时设置两者。

源码:.omx/reference/opencli/dist/src/runtime.js:25:

export const DEFAULT_BROWSER_COMMAND_TIMEOUT = parseEnvTimeout('OPENCLI_BROWSER_COMMAND_TIMEOUT', 60);

建议在 ~/.zshrc 中添加 export OPENCLI_BROWSER_COMMAND_TIMEOUT=300。

执行协议

  1. 决定使用哪个模型(Grok 还是 Gemini),不明确则询问。
  2. 构建提示词,要明确——这些浏览器 UI 没有系统提示,完整问题必须自包含。
  3. 运行 opencli 命令,使用 --format plain。
  4. 捕获响应。若命令因会话/认证/挑战消息失败,停止并向用户展示错误,不要盲目重试。
  5. 保存产物。
  6. 向用户报告:使用的模型、响应摘要、产物路径。

错误处理

opencli 会发出具体错误,如「Not logged in to grok.com」需用户登录;「Composer not found」表示 DOM 变化,需用户手动打开网站重试;「Session gated / challenge」需用户在 Chrome 中手动解决挑战;超时则可提供更长 --timeout 重试。不要吞掉这些错误,需原样报告并给出修复动作。

产物要求

每次成功调用后,保存 markdown 产物到 .omx/artifacts/ask-opencli-<grok|gemini>-<slug>-<YYYYMMDD-HHMMSS>.md,至少包含:原始用户任务、模型及所用标志、最终发送的提示词、原始响应、摘要(2-3 条要点)、行动项/下一步。即使响应质量低也保留产物,以记录查询已发生。

适用场景

  • 用户明确要求查询 Grok 或 Gemini。
  • 需要 Grok 或 Gemini 作为第二意见或外部顾问。
  • 需要实时/社交/新闻/技术趋势信息(Grok)或长文推理、研究、编程、文档分析(Gemini)。
  • 多 AI 并行调研工作流(可改用 multi-ai-research 技能)。

限制

  • 依赖 opencli 工具、Chrome Browser Bridge 扩展及已登录的浏览器会话。
  • 需要 Node ≥20。
  • 必须正确设置两层超时,否则 grok 调用可能被提前终止。
  • 浏览器 UI 没有系统提示,提示词必须自包含。
  • 遇到会话/认证/挑战错误时不能静默降级到其他工具,需报告缺失的前置条件并请用户修复。
  • 不适用于原生 Gemini CLI、Claude 自身意见或其他 AI 工具的场景。