关于 ask-opencli
ask-opencli 是一个 Agent 技能,借助 opencli 通过用户已登录的 Chrome 会话查询 Grok 或 Gemini。它提供模型选择、命令示例、前置条件、超时处理和结果记录流程。
主要功能
- 01Grok 与 Gemini 查询指南
- 02使用已登录的 Chrome 会话
- 03模型选择规则
- 04超时与错误处理
- 05响应记录要求
适用场景
- 01征求 Grok 或 Gemini 的第二意见
- 02用 Grok 查询新闻或技术趋势
- 03用 Gemini 进行研究或文档分析
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ majiayu000/ spellbook --skill ask-opencli安装后在 Claude Code 中输入/ask-opencli确认已加载。
详细介绍
通过 OpenCLI 提问(Grok / Gemini)
使用 opencli,通过用户已登录的 Chrome 会话查询 Grok 或 Gemini。零 API 费用,完全依托现有浏览器会话操作。
opencli 项目:https://github.com/jackwener/opencli 安装:
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) 更深入的多 AI 并行调研工作流:改用multi-ai-researchskill
触发条件:
- 用户明确要求查询 Grok 或 Gemini(“问一下 grok”“用 gemini 查”“让 grok 看看”)
- 用户想听取 Grok 或 Gemini 的第二意见/外部顾问建议
- 用户说“ask grok”/“ask gemini”,或提到这两者是信息来源
不触发的情况:
- 用户想使用原生 Gemini CLI(
gemini -p)→ 改用ask-geminiskill - 用户想听 Claude 自己的意见 → 直接回答
- 用户想使用其他 AI(Doubao、Yuanbao、ChatGPT 等)→ 使用其他工具
模型选择
如果用户没有指定模型,实时/社交/新闻/科技趋势类问题默认使用 Grok;长篇推理、调研、编码和文档分析默认使用 Gemini。
如果仍无法确定,先询问用户要使用哪个模型,再发送请求。
⚠️ 常见错误命令(直接快速失败)
| ❌ 错误 | ✅ 正确 | 原因 |
|---|---|---|
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 --help 或 opencli gemini --help 查看):
Grok:
ask <prompt> # 唯一命令
Gemini:
ask <prompt> # 最常用
new # 开新对话
deep-research <prompt> # Deep Research 模式
deep-research-result [query] # 取 Deep Research 结果
image <prompt> # 图片生成
⚠️ 关键:双层超时(来自 2026-04-08 调试)
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);
建议:将 export OPENCLI_BROWSER_COMMAND_TIMEOUT=300 添加到 ~/.zshrc,为每次 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
标志:
--new true— 开始新对话(避免污染之前的对话上下文)--web true— 使用强化版 grok.com 消费者网页流程(错误信息更清晰)--timeout 300— 必须等于或低于OPENCLI_BROWSER_COMMAND_TIMEOUT-f json— 结构化输出(建议使用,便于解析;优于--format plain)
Gemini
opencli gemini ask "{{PROMPT}}" --format plain
Gemini 比 grok 更稳定,通常不会触发 60s 超时。无需设置环境变量,但设置了也无妨:
OPENCLI_BROWSER_COMMAND_TIMEOUT=300 opencli gemini ask "{{PROMPT}}" --format plain
标志:
--new true— 开始新对话--timeout 90— 延长长回答的超时时间(默认 60s)
并行调用(适用于多 AI 工作流)
若要从 Claude Code 并行调用 grok 和 gemini,请在同一轮助手响应中,对两次调用都使用 run_in_background=true 的 Bash 工具。Claude Code 会并发启动它们,并等待任务完成通知。
对于深度交叉验证工作流(N 个内部子 Agent + 2 个外部 AI,按置信度分层综合),请改用 multi-ai-research skill;其中涵盖了完整的编排模式。
前置条件(运行前检查)
- 已安装 opencli:
opencli --version应输出版本号。 - Chrome 正在运行,且已加载 Browser Bridge 扩展程序 — 通过
chrome://extensions→ 开发者模式 → 加载已解压的扩展程序,从~/Desktop/code/AI/tools/opencli/extension/安装扩展程序。如果缺少扩展程序,opencli doctor会提示。 - 已登录目标网站:
- Grok:必须已登录
grok.com - Gemini:必须已登录
gemini.google.com
- Grok:必须已登录
- 守护进程连通性:如不确定,请在每个会话中运行一次
opencli doctor。
如果任何检查未通过,请勿悄悄改用其他工具。报告缺少的前置条件,并请用户修复(依据 U-23 禁止静默降级规则)。
执行流程
- 确定使用哪个模型(Grok 还是 Gemini)。如果不明确,请询问。
- 构建提示词。请明确说明 — 这些浏览器界面没有系统提示词,因此完整问题必须能独立理解。
- 使用
--format plain运行 opencli 命令。 - 获取响应。如果命令因会话/身份验证/挑战消息而失败,请停止并向用户说明错误。请勿盲目重试。
- 保存一个制品(见下文)。
- 向用户汇报:所用模型、响应摘要以及制品路径。
错误处理
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
至少包含以下部分:
- 用户的原始任务 — 用户提出的要求
- 模型 — grok 或 gemini,以及使用的任何标志(--new、--web、--timeout)
- 发送的最终提示词 — 传递给
opencli ... ask的确切字符串 - 原始响应 — opencli 的完整输出
- 摘要 — 用 2-3 个要点提炼关键信息
- 行动项/后续步骤 — 如何处理这些信息
即使响应质量不佳,也要保留制品 — 它用于记录已执行查询。
示例
# Quick factual question, Grok default path
opencli grok ask "最新的 Claude 4.6 定价和 4.5 有什么差别?" --format plain
# Long reasoning task, Gemini with extended timeout + fresh chat
opencli gemini ask "分析这段 Rust 代码的并发安全问题:..." --new true --timeout 120 --format plain
# Grok hardened web path with new chat
opencli grok ask "X 上这两天关于 agent framework 的讨论焦点是什么?" --web true --new true --format plain
任务:{{ARGUMENTS}}