关于 oracle
Oracle 是一款命令行工具,可将提示词与选定的仓库文件打包,通过 API 或浏览器向其他模型发送一次性请求。它面向需要基于仓库内容分析的开发者,提供模型选择、文件预览和会话恢复控制。
主要功能
- 01将提示词与选定文件打包
- 02使用 API 或浏览器引擎
- 03预览打包内容和文件报告
- 04选择模型及推理设置
- 05恢复已存储的会话
适用场景
- 01基于仓库上下文请模型分析代码
- 02请求前检查所含文件和 Token 用量
- 03超时或断开后重新连接运行会话
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ steipete/ oracle --skill oracle安装后在 Claude Code 中输入/oracle确认已加载。
详细介绍
Oracle (CLI) — 最佳使用方式
Oracle 会将提示词和选定文件打包成一次性请求,让另一个模型通过 API 或浏览器结合真实的代码库上下文作答。提示词为必填项;仅在文件能提供必要上下文时才附加。请将回复视为参考,并根据代码库和测试进行核实。
主要使用场景(浏览器,GPT-5.6)
如果 ChatGPT 账户提供 GPT-5.6,请使用浏览器模式。GPT-5.6 Sol 和 GPT-5.6 Sol Pro 是不同的目标:基础版 Sol 使用 Extra High 推理强度设置,而 Pro 是单独的选择器目标,适用于困难或耗时较长的任务。
推荐默认设置:
- 引擎:浏览器(
--engine browser) - 基础版 Sol:
--model gpt-5.6-sol - 基础版 Sol 的最高推理强度:
--browser-thinking-time extra-high(Extra High) - 在 GPT-5.6 Sol 上显式启用 Pro 推理强度:
--browser-thinking-time pro(如果无法确认 Pro,则安全失败) - 浏览器 GPT-5.5 搭配 Pro 推理强度:
--model gpt-5.5 --browser-thinking-time pro - API Pro 最高推理强度:
--model gpt-5.6-sol --reasoning-mode pro --reasoning-effort max - 回退方案:GPT-5.6 不可用时,显式使用
--model gpt-5.5-pro - 附件:目录/通配模式,并设置排除项;默认绝不附加机密信息
GPT-5.6 是否可用取决于账户。请确认选择器中是否有基础版 Sol,并保留模型选择证据。选择器中单独出现 Pro 标签只能证明选择器已选中该目标,本身并不能证明服务器端使用了 Pro 生成。
GPT-5.6 模型选择
此版本在两个界面上都支持 GPT-5.6,但 Pro 的选择方式有所不同:
gpt-5.6:遵循 GPT-5.6 系列的默认设置gpt-5.6-sol:固定使用 ChatGPT 的GPT-5.6 Sol条目- 浏览器:
gpt-5-pro会选择 ChatGPT 的Pro目标 - API:
--reasoning-mode pro会在gpt-5.6-sol上启用 Pro 执行;搭配--reasoning-effort max可获得最高推理强度
使用基础版 Sol 时,请使用:
oracle --engine browser --browser-manual-login --model gpt-5.6-sol \
--browser-thinking-time extra-high \
-p "<task>" --file "src/**"
通过 Responses API 使用 GPT-5.6 Sol Pro 时,请使用:
oracle --engine api --model gpt-5.6-sol \
--reasoning-mode pro \
--reasoning-effort max \
-p "<task>" --file "src/**"
不要使用 --model "GPT-5.6 Sol Pro"。Pro 被有意设置为浏览器选择器目标和 API 推理模式。浏览器标签验证会拒绝 gpt-5.6-luna 等未知的未来变体,而不会静默回退到 Sol;API 运行则会原样保留此类提供方模型 ID。
浏览器模式会将这些别名映射到 ChatGPT 的 Sol 选择器。API 和多模型运行会保留相应的 OpenAI 官方模型 ID;带提供方前缀的 ID 和无关的自定义 ID 则会原样传递。
GPT-5.6 的浏览器支持依赖统一的 Intelligence 选择器。它可以识别当前的英文和中文推理强度标签,避免将 高 匹配到 极高 中,并会在 React 替换组合框中的提示条后重新查询,以确保选择验证不会依赖已脱离文档的旧节点。
与 npm 0.15.2 的兼容性
不要将 gpt-5.6 或 gpt-5.6-sol 传给未经修补的 npm 0.15.2 安装版本。该版本可能会将这些标签规范化为 gpt-5.2。请使用显式回退方案:
npx -y @steipete/[email protected] --engine browser --model gpt-5.5-pro \
-p "<task>" --file "src/**"
升级到包含 GPT-5.6 模型选择和统一选择器更新的版本后,在移除回退说明之前,请确认以下所有事项:--help --verbose 会显示新增选项;浏览器试运行会将两个别名解析为 GPT-5.6 Sol;API 路由会选择 OpenAI 官方模型;并且实时浏览器运行会记录严格的 GPT-5.6 选择证据。
标准流程
- 选择能够完整呈现真实情况的最小文件集。
- 使用
--dry-run和--files-report预览打包内容。 - GPT-5.6 使用浏览器模式;仅在明确需要时使用 API。
- 如果运行中断连接或超时,请重新连接到已存储的会话,而不要重复启动。
命令
-
显示帮助:
npx -y @steipete/oracle --help --verbose
-
预览,不调用模型:
npx -y @steipete/oracle --dry-run summary -p "<task>" --file "src/**" --file "!**/*.test.*"npx -y @steipete/oracle --dry-run full -p "<task>" --file "src/**"
-
检查令牌用量:
npx -y @steipete/oracle --dry-run summary --files-report -p "<task>" --file "src/**"
-
浏览器运行:
oracle --engine browser --browser-manual-login --model gpt-5.6-sol --browser-thinking-time extra-high -p "<task>" --file "src/**"
-
手动粘贴备用方案:
npx -y @steipete/oracle --render-markdown --copy-markdown -p "<task>" --file "src/**"--render是--render-markdown的别名。
-
性能跟踪:
npx -y @steipete/oracle --perf-trace --perf-trace-path /tmp/oracle-perf.json --dry-run summary -p "<task>" --file "src/**"
附加文件
--file 接受文件、目录和 glob。可多次传入,也可使用逗号分隔的条目。
- 包含:
--file "src/**"、--file src/index.ts、--file docs --file README.md - 排除:在模式前加
!,例如--file "!src/**/*.test.ts" - 默认忽略的目录:
node_modules、dist、coverage、.git、.turbo、.next、build和tmp - Glob 遵循
.gitignore,且不会跟随符号链接。 - 点文件需要在模式中显式指定点号路径段,例如
--file ".github/**"。 - 默认不接受超过 1 MB 的文件;必要时配置
ORACLE_MAX_FILE_SIZE_BYTES或maxFileSizeBytes。
总输入量应控制在约 196k 个令牌以内。使用 --files-report 或
--dry-run json 找出过大的输入。除非已脱敏且对问题至关重要,否则切勿附加 .env 文件、
私钥、身份验证令牌或其他机密信息。
引擎和浏览器控制
- 如果设置了
OPENAI_API_KEY,自动选择会使用 API;否则使用浏览器。 - 浏览器支持通过 ChatGPT 使用 GPT 模型,通过 Gemini 网页版使用 Gemini
模型。仅限 API 的模型包括
gpt-5.1-codex。 - 当前模型系列包括 GPT-5.5/5.4/5.2/5.1、Gemini 3.x 和 Claude 4.x;是否可用取决于引擎和提供方。
- API 运行需要获得用户明确同意,因为可能产生使用费用。
- 浏览器附件可使用
--browser-attachments auto|never|always。 - 浏览器上传时,单个文本/源文件会以原生文件形式保留,多个
文本/源文件则会打包。仅上传文本文件时,
auto会保留扁平文本;如需文件系统树,请使用--browser-bundle-format zip,或使用--browser-bundle-files强制将所有解析后的附件打包到一个文件中。 - 使用
--browser-tab <ref>、--browser-attach-running或--remote-chrome <host:port>复用现有 Chrome 会话。 - 添加
--browser-no-focus(配置项browser.noFocus),让 Chrome 在启动、打开新标签页和发送内容时保持在后台。如果 可以模拟焦点,普通运行不会抢占键盘焦点或切换 macOS Spaces;如果无法启用此功能,Oracle 会尝试在点击前将 Chrome 切换到前台。重新附加时如果退回到重启 Chrome,仍可能激活它。 - 使用
--browser-model-strategy select|current|ignore控制选择器 的行为。 - 使用
--browser-follow-up "<prompt>"在同一浏览器 会话中继续一轮,或使用--followup <sessionId|responseId>继续已存储的运行。 - 仅在明确需要深度研究时,才使用
--browser-research deep。
API 预检
运行 API 前,检查提供方是否就绪,但不要输出机密信息:
oracle doctor --providers --models gpt-5.4,claude-4.6-sonnet,gemini-3-pro
oracle --preflight --models gpt-5.4,gemini-3-pro
oracle --route --model gpt-5.4
需要使用 OpenAI 第一方路由时,请使用 --provider openai 或 --no-azure。对于部分成功也有用的多模型面板,请使用
--allow-partial --write-output <path>,以便恢复成功的输出和清单。
为自动化设置明确的截止时间,例如 --timeout 10m;除非提供了 --http-timeout,否则 Oracle
会据此推导 HTTP 超时。
会话与恢复
- 会话存储在
~/.oracle/sessions下;可通过ORACLE_HOME_DIR覆盖。 - 浏览器产物包括
transcript.md,以及(如果有)研究报告和生成的图像。 - 使用
oracle status --hours 72列出近期会话。 - 使用
oracle session <id> --render接续会话。 - 使用
--slug "<3-5 words>"创建易读的会话 ID。 - 如果运行超时,请接续会话;不要重新运行。只有确实要启动一个新的相同运行时,才使用
--force。 - 默认情况下,成功的非项目浏览器单次运行会自动归档;可通过
--browser-archive never|always覆盖。
提示词模板
Oracle 启动时对项目一无所知。请包含:
- 项目简介:技术栈、服务、构建/测试命令和平台限制
- 文件位置:入口点、配置、关键模块和依赖边界
- 具体问题、之前的尝试以及逐字错误文本
- API 兼容性、性能预算和不得修改的文件等约束
- 期望的输出,例如补丁计划、测试、风险清单或权衡比较
对于长时间调查,请确保提示词可供恢复:在顶部放置 6–30 句的简介,在中间给出具体复现步骤和错误,并在底部附上新模型所需的所有上下文文件。Oracle 每次运行都是单次的;模型不会记住之前的运行。