[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-steipete--oracle":3,"tool-steipete--oracle":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":72,"owner_website":79,"owner_url":80,"languages":81,"stars":94,"forks":95,"last_commit_at":96,"license":97,"difficulty_score":32,"env_os":98,"env_gpu":99,"env_ram":99,"env_deps":100,"category_tags":106,"github_topics":107,"view_count":32,"oss_zip_url":116,"oss_zip_packed_at":116,"status":17,"created_at":117,"updated_at":118,"faqs":119,"releases":150},7739,"steipete\u002Foracle","oracle","Ask the oracle when you're stuck. Invoke GPT-5 Pro with a custom context and files.","Oracle 是一款专为开发者设计的命令行助手，旨在解决编程中遇到难题时缺乏上下文支持的痛点。当你被代码卡住时，Oracle 能自动将你的提示词与项目中的相关文件打包，构建出富含真实语境的请求，并发送给顶尖的 AI 模型（如 GPT-5 Pro、Claude 或 Gemini）以获取精准解答。\n\n它的核心优势在于灵活性与便捷性。Oracle 不仅支持通过 API 调用多种主流大模型进行单次或对比分析，还独创了“浏览器模式”。该模式允许用户在不配置 API 密钥的情况下，直接自动化操作本地 Chrome 浏览器登录 ChatGPT 进行问答，极大降低了使用门槛。此外，它还具备会话延续、多文件通配符匹配及预演模式等功能，让工作流更加顺畅。\n\n无论是需要快速排查架构问题的资深工程师，还是希望借助 AI 提升效率的全栈开发者，Oracle 都能成为你得力的“硅基智者”。它让 AI 不再只是泛泛而谈，而是真正理解你的代码库，提供切实可行的建议。","# oracle 🧿 — Whispering your tokens to the silicon sage\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteipete_oracle_readme_f8b46597fc49.png\" alt=\"Oracle CLI header banner\" width=\"1100\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@steipete\u002Foracle\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@steipete\u002Foracle?style=for-the-badge&logo=npm&logoColor=white\" alt=\"npm version\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fsteipete\u002Foracle\u002Fci.yml?branch=main&style=for-the-badge&label=tests\" alt=\"CI Status\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatforms-macOS%20%7C%20Linux%20%7C%20Windows-blue?style=for-the-badge\" alt=\"Platforms\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green?style=for-the-badge\" alt=\"MIT License\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nOracle bundles your prompt and files so another AI can answer with real context. It speaks GPT-5.4 Pro (default), GPT-5.4, GPT-5.1 Pro, GPT-5.1 Codex (API-only), GPT-5.1, GPT-5.2, Gemini 3.1 Pro (API-only), Gemini 3 Pro, Claude Sonnet 4.5, Claude Opus 4.1, and more—and it can ask one or multiple models in a single run. Browser automation is available; use `--browser-model-strategy current` to keep the active ChatGPT model (or `ignore` to skip the picker). API remains the most reliable path, and `--copy` is an easy manual fallback.\n\n## Setting up (macOS Browser Mode)\n\nBrowser mode lets you use GPT-5.4 Pro without any API keys — it automates your Chrome browser directly.\n\n### First-time login\n\nRun this once to create an automation profile and log into ChatGPT. The browser will stay open so you can complete the login:\n\n```bash\noracle --engine browser --browser-manual-login \\\n  --browser-keep-browser --browser-input-timeout 120000 \\\n  -p \"HI\"\n```\n\n### Subsequent runs\n\nOnce logged in, the automation profile is saved. Use this for all future runs:\n\n```bash\noracle --engine browser --browser-manual-login \\\n  --browser-auto-reattach-delay 5s \\\n  --browser-auto-reattach-interval 3s \\\n  --browser-auto-reattach-timeout 60s \\\n  -p \"your prompt\"\n```\n\n> **Why these flags?**\n>\n> - `--browser-manual-login` — Skips macOS Keychain cookie access (avoids repeated permission popups)\n> - `--browser-auto-reattach-*` — Reconnects when ChatGPT redirects mid-page-load (fixes \"Inspected target navigated or closed\" error)\n> - `--browser-keep-browser` — Keeps browser open for first-time login (not needed after)\n> - `--browser-input-timeout 120000` — Gives you 2 minutes to log in on first run\n\n## Quick start\n\nInstall globally: `npm install -g @steipete\u002Foracle`\nHomebrew: `brew install steipete\u002Ftap\u002Foracle`\n\nRequires Node 22+. Or use `npx -y @steipete\u002Foracle …` (or pnpx).\n\n```bash\n# Copy the bundle and paste into ChatGPT\nnpx -y @steipete\u002Foracle --render --copy -p \"Review the TS data layer for schema drift\" --file \"src\u002F**\u002F*.ts,*\u002F*.test.ts\"\n\n# Minimal API run (expects OPENAI_API_KEY in your env)\nnpx -y @steipete\u002Foracle -p \"Write a concise architecture note for the storage adapters\" --file src\u002Fstorage\u002FREADME.md\n\n# Multi-model API run\nnpx -y @steipete\u002Foracle -p \"Cross-check the data layer assumptions\" --models gpt-5.1-pro,gemini-3-pro --file \"src\u002F**\u002F*.ts\"\n\n# Follow up from an existing OpenAI\u002FAzure session id\nnpx -y @steipete\u002Foracle --engine api --model gpt-5.2-pro --followup release-readiness-audit --followup-model gpt-5.2-pro -p \"Re-evaluate with this new context\" --file \"src\u002F**\u002F*.ts\"\n\n# Follow up directly from an OpenAI Responses API id\nnpx -y @steipete\u002Foracle --engine api --model gpt-5.2-pro --followup resp_abc1234567890 -p \"Continue from this response\" --file docs\u002Fnotes.md\n\n# Preview without spending tokens\nnpx -y @steipete\u002Foracle --dry-run summary -p \"Check release notes\" --file docs\u002Frelease-notes.md\n\n# Browser run (no API key, will open ChatGPT)\nnpx -y @steipete\u002Foracle --engine browser -p \"Walk through the UI smoke test\" --file \"src\u002F**\u002F*.ts\"\n\n# Gemini browser mode (no API key; uses Chrome cookies from gemini.google.com)\nnpx -y @steipete\u002Foracle --engine browser --model gemini-3-pro --prompt \"a cute robot holding a banana\" --generate-image out.jpg --aspect 1:1\n\n# Sessions (list and replay)\nnpx -y @steipete\u002Foracle status --hours 72\nnpx -y @steipete\u002Foracle session \u003Cid> --render\nnpx -y @steipete\u002Foracle restart \u003Cid>\n\n# TUI (interactive, only for humans)\nnpx -y @steipete\u002Foracle tui\n```\n\nEngine auto-picks API when `OPENAI_API_KEY` is set, otherwise browser; browser is stable on macOS and works on Linux and Windows. On Linux pass `--browser-chrome-path\u002F--browser-cookie-path` if detection fails; on Windows prefer `--browser-manual-login` or inline cookies if decryption is blocked.\n\n## Integration\n\n**CLI**\n\n- API mode expects API keys in your environment: `OPENAI_API_KEY` (GPT-5.x), `GEMINI_API_KEY` (Gemini 3.1 Pro \u002F Gemini 3 Pro), `ANTHROPIC_API_KEY` (Claude Sonnet 4.5 \u002F Opus 4.1).\n- Gemini browser mode uses Chrome cookies instead of an API key—just be logged into `gemini.google.com` in Chrome (no Python\u002Fvenv required).\n- If your Gemini account can’t access “Pro”, Oracle auto-falls back to a supported model for web runs (and logs the fallback in verbose mode).\n- Prefer API mode or `--copy` + manual paste; browser automation is experimental.\n- Browser support: stable on macOS; works on Linux (add `--browser-chrome-path\u002F--browser-cookie-path` when needed) and Windows (manual-login or inline cookies recommended when app-bound cookies block decryption).\n- Remote browser service: `oracle serve` on a signed-in host; clients use `--remote-host\u002F--remote-token`.\n- AGENTS.md\u002FCLAUDE.md:\n  ```\n  - Oracle bundles a prompt plus the right files so another AI (GPT 5 Pro + more) can answer. Use when stuck\u002Fbugs\u002Freviewing.\n  - Run `npx -y @steipete\u002Foracle --help` once per session before first use.\n  ```\n- Tip: set `browser.chatgptUrl` in config (or `--chatgpt-url`) to a dedicated ChatGPT project folder so browser runs don’t clutter your main history.\n\n**Codex skill**\n\n- Copy the bundled skill from this repo to your Codex skills folder:\n  - `mkdir -p ~\u002F.codex\u002Fskills`\n  - `cp -R skills\u002Foracle ~\u002F.codex\u002Fskills\u002Foracle`\n- Then reference it in your `AGENTS.md`\u002F`CLAUDE.md` so Codex loads it.\n\n**MCP**\n\n- Run the stdio server via `oracle-mcp`.\n- Configure clients via [steipete\u002Fmcporter](https:\u002F\u002Fgithub.com\u002Fsteipete\u002Fmcporter) or `.mcp.json`; see [docs\u002Fmcp.md](docs\u002Fmcp.md) for connection examples.\n\n```bash\nnpx -y @steipete\u002Foracle oracle-mcp\n```\n\n- Cursor setup (MCP): drop a `.cursor\u002Fmcp.json` like below, then pick “oracle” in Cursor’s MCP sources. See https:\u002F\u002Fcursor.com\u002Fdocs\u002Fcontext\u002Fmcp for UI steps.\n  [![Install MCP Server](https:\u002F\u002Fcursor.com\u002Fdeeplink\u002Fmcp-install-dark.svg)](https:\u002F\u002Fcursor.com\u002Fen-US\u002Finstall-mcp?name=oracle&config=eyJjb21tYW5kIjoibnB4IC15IEBzdGVpcGV0ZS9vcmFjbGUgb3JhY2xlLW1jcCJ9)\n\n```json\n{\n  \"oracle\": {\n    \"command\": \"oracle-mcp\",\n    \"args\": []\n  }\n}\n```\n\n## Highlights\n\n- Bundle once, reuse anywhere (API or experimental browser).\n- Multi-model API runs with aggregated cost\u002Fusage, including OpenRouter IDs alongside first-party models.\n- Render\u002Fcopy bundles for manual paste into ChatGPT when automation is blocked.\n- GPT‑5 Pro API runs detach by default; reattach via `oracle session \u003Cid>` \u002F `oracle status` or block with `--wait`.\n- OpenAI\u002FAzure follow-up API runs can continue from `--followup \u003CsessionId|responseId>`; for multi-model parents, add `--followup-model \u003Cmodel>`.\n- Azure endpoints supported via `--azure-endpoint\u002F--azure-deployment\u002F--azure-api-version` or `AZURE_OPENAI_*` envs.\n- File safety: globs\u002Fexcludes, size guards, `--files-report`.\n- Sessions you can replay (`oracle status`, `oracle session \u003Cid> --render`).\n- Session logs and bundles live in `~\u002F.oracle\u002Fsessions` (override with `ORACLE_HOME_DIR`).\n\n## Follow-up and lineage\n\nUse `--followup` to continue an existing OpenAI\u002FAzure Responses API run with additional context\u002Ffiles:\n\n```bash\noracle \\\n  --engine api \\\n  --model gpt-5.2-pro \\\n  --followup \u003Cexisting-session-id-or-resp_id> \\\n  --followup-model gpt-5.2-pro \\\n  --slug \"my-followup-run\" \\\n  --wait \\\n  -p \"Follow-up: re-evaluate the previous recommendation with the attached files.\" \\\n  --file \"server\u002Fsrc\u002Fstrategy\u002Fplan.ts\" \\\n  --file \"server\u002Fsrc\u002Fstrategy\u002Fexecutor.ts\"\n```\n\nWhen the parent session used `--models`, `--followup-model` picks which model's response id to chain from.\nCustom `--base-url` providers plus Gemini\u002FClaude API runs are excluded here because they do not preserve `previous_response_id` in Oracle.\n\n`oracle status` shows parent\u002Fchild lineage in tree form:\n\n```text\nRecent Sessions\nStatus    Model         Mode    Timestamp           Chars    Cost  Slug\ncompleted gpt-5.2-pro   api     03\u002F01\u002F2026 09:00 AM  1800  $2.110  architecture-review-parent\ncompleted gpt-5.2-pro   api     03\u002F01\u002F2026 09:14 AM  2200  $2.980  ├─ architecture-review-followup\nrunning   gpt-5.2-pro   api     03\u002F01\u002F2026 09:22 AM  1400       -  │  └─ architecture-review-implementation-pass\npending   gpt-5.2-pro   api     03\u002F01\u002F2026 09:25 AM   900       -  └─ architecture-review-risk-check\n```\n\n## Browser auto-reattach (long Pro runs)\n\nWhen browser runs time out (common with long GPT‑5.x Pro responses), Oracle can keep polling the existing ChatGPT tab and capture the final answer without manual `oracle session \u003Cid>` commands.\n\nEnable auto-reattach by setting a non-zero interval:\n\n- `--browser-auto-reattach-delay` — wait before the first retry (e.g. `30s`)\n- `--browser-auto-reattach-interval` — how often to retry (e.g. `2m`)\n- `--browser-auto-reattach-timeout` — per-attempt budget (default `2m`)\n\n```bash\noracle --engine browser \\\n  --browser-timeout 6m \\\n  --browser-auto-reattach-delay 30s \\\n  --browser-auto-reattach-interval 2m \\\n  --browser-auto-reattach-timeout 2m \\\n  -p \"Run the long UI audit\" --file \"src\u002F**\u002F*.ts\"\n```\n\n## Flags you’ll actually use\n\n| Flag                                                            | Purpose                                                                                                                                                                                                                                                                                                         |\n| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-p, --prompt \u003Ctext>`                                           | Required prompt.                                                                                                                                                                                                                                                                                                |\n| `-f, --file \u003Cpaths...>`                                         | Attach files\u002Fdirs (globs + `!` excludes).                                                                                                                                                                                                                                                                       |\n| `-e, --engine \u003Capi\\|browser>`                                   | Choose API or browser (browser is experimental).                                                                                                                                                                                                                                                                |\n| `-m, --model \u003Cname>`                                            | Built-ins (`gpt-5.4-pro` default, `gpt-5.4`, `gpt-5.1-pro`, `gpt-5-pro`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.2`, `gpt-5.2-instant`, `gpt-5.2-pro`, `gemini-3.1-pro` API-only, `gemini-3-pro`, `claude-4.5-sonnet`, `claude-4.1-opus`) plus any OpenRouter id (e.g., `minimax\u002Fminimax-m2`, `openai\u002Fgpt-4o-mini`). |\n| `--models \u003Clist>`                                               | Comma-separated API models (mix built-ins and OpenRouter ids) for multi-model runs.                                                                                                                                                                                                                             |\n| `--followup \u003CsessionId\\|responseId>`                            | Continue an OpenAI\u002FAzure Responses API run from a stored oracle session or `resp_...` response id.                                                                                                                                                                                                              |\n| `--followup-model \u003Cmodel>`                                      | For multi-model OpenAI\u002FAzure parent sessions, choose which model response to continue from.                                                                                                                                                                                                                     |\n| `--base-url \u003Curl>`                                              | Point API runs at LiteLLM\u002FAzure\u002FOpenRouter\u002Fetc.                                                                                                                                                                                                                                                                 |\n| `--chatgpt-url \u003Curl>`                                           | Target a ChatGPT workspace\u002Ffolder (browser).                                                                                                                                                                                                                                                                    |\n| `--browser-model-strategy \u003Cselect\\|current\\|ignore>`            | Control ChatGPT model selection in browser mode (current keeps the active model; ignore skips the picker).                                                                                                                                                                                                      |\n| `--browser-manual-login`                                        | Skip cookie copy; reuse a persistent automation profile and wait for manual ChatGPT login.                                                                                                                                                                                                                      |\n| `--browser-thinking-time \u003Clight\\|standard\\|extended\\|heavy>`    | Set ChatGPT thinking-time intensity (browser; Thinking\u002FPro models only).                                                                                                                                                                                                                                        |\n| `--browser-port \u003Cport>`                                         | Pin the Chrome DevTools port (WSL\u002FWindows firewall helper).                                                                                                                                                                                                                                                     |\n| `--browser-inline-cookies[(-file)] \u003Cpayload \\| path>`          | Supply cookies without Chrome\u002FKeychain (browser).                                                                                                                                                                                                                                                               |\n| `--browser-timeout`, `--browser-input-timeout`                  | Control overall\u002Fbrowser input timeouts (supports h\u002Fm\u002Fs\u002Fms).                                                                                                                                                                                                                                                     |\n| `--browser-recheck-delay`, `--browser-recheck-timeout`          | Delayed recheck for long Pro runs: wait then retry capture after timeout (supports h\u002Fm\u002Fs\u002Fms).                                                                                                                                                                                                                   |\n| `--browser-reuse-wait`                                          | Wait for a shared Chrome profile before launching (parallel browser runs).                                                                                                                                                                                                                                      |\n| `--browser-profile-lock-timeout`                                | Wait for the shared manual-login profile lock before sending (serializes parallel runs).                                                                                                                                                                                                                        |\n| `--render`, `--copy`                                            | Print and\u002For copy the assembled markdown bundle.                                                                                                                                                                                                                                                                |\n| `--wait`                                                        | Block for background API runs (e.g., GPT‑5.1 Pro) instead of detaching.                                                                                                                                                                                                                                         |\n| `--timeout \u003Cseconds\\|auto>`                                     | Overall API deadline (auto = 60m for pro, 120s otherwise).                                                                                                                                                                                                                                                      |\n| `--background`, `--no-background`                               | Force Responses API background mode (create + retrieve) for API runs.                                                                                                                                                                                                                                           |\n| `--http-timeout \u003Cms\\|s\\|m\\|h>`                                  | HTTP client timeout (default 20m).                                                                                                                                                                                                                                                                              |\n| `--zombie-timeout \u003Cms\\|s\\|m\\|h>`                                | Override stale-session cutoff used by `oracle status`.                                                                                                                                                                                                                                                          |\n| `--zombie-last-activity`                                        | Use last log activity to detect stale sessions.                                                                                                                                                                                                                                                                 |\n| `--write-output \u003Cpath>`                                         | Save only the final answer (multi-model adds `.\u003Cmodel>`).                                                                                                                                                                                                                                                       |\n| `--files-report`                                                | Print per-file token usage.                                                                                                                                                                                                                                                                                     |\n| `--dry-run [summary\\|json\\|full]`                               | Preview without sending.                                                                                                                                                                                                                                                                                        |\n| `--remote-host`, `--remote-token`                               | Use a remote `oracle serve` host (browser).                                                                                                                                                                                                                                                                     |\n| `--remote-chrome \u003Chost:port>`                                   | Attach to an existing remote Chrome session (browser).                                                                                                                                                                                                                                                          |\n| `--youtube \u003Curl>`                                               | YouTube video URL to analyze (Gemini browser mode).                                                                                                                                                                                                                                                             |\n| `--generate-image \u003Cfile>`                                       | Generate image and save to file (Gemini browser mode).                                                                                                                                                                                                                                                          |\n| `--edit-image \u003Cfile>`                                           | Edit existing image with `--output` (Gemini browser mode).                                                                                                                                                                                                                                                      |\n| `--azure-endpoint`, `--azure-deployment`, `--azure-api-version` | Target Azure OpenAI endpoints (picks Azure client automatically).                                                                                                                                                                                                                                               |\n\n## Configuration\n\nPut defaults in `~\u002F.oracle\u002Fconfig.json` (JSON5). Example:\n\n```json5\n{\n  model: \"gpt-5.4-pro\",\n  engine: \"api\",\n  filesReport: true,\n  browser: {\n    chatgptUrl: \"https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-p-691edc9fec088191b553a35093da1ea8-oracle\u002Fproject\",\n  },\n}\n```\n\nUse `browser.chatgptUrl` (or the legacy alias `browser.url`) to target a specific ChatGPT workspace\u002Ffolder for browser automation.\nSee [docs\u002Fconfiguration.md](docs\u002Fconfiguration.md) for precedence and full schema.\n\nAdvanced flags\n\n| Area         | Flags                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |\n| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Browser      | `--browser-manual-login`, `--browser-thinking-time`, `--browser-timeout`, `--browser-input-timeout`, `--browser-recheck-delay`, `--browser-recheck-timeout`, `--browser-reuse-wait`, `--browser-profile-lock-timeout`, `--browser-auto-reattach-delay`, `--browser-auto-reattach-interval`, `--browser-auto-reattach-timeout`, `--browser-cookie-wait`, `--browser-inline-cookies[(-file)]`, `--browser-attachments`, `--browser-inline-files`, `--browser-bundle-files`, `--browser-keep-browser`, `--browser-headless`, `--browser-hide-window`, `--browser-no-cookie-sync`, `--browser-allow-cookie-errors`, `--browser-chrome-path`, `--browser-cookie-path`, `--chatgpt-url` |\n| Run control  | `--background`, `--no-background`, `--http-timeout`, `--zombie-timeout`, `--zombie-last-activity`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |\n| Azure\u002FOpenAI | `--azure-endpoint`, `--azure-deployment`, `--azure-api-version`, `--base-url`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |\n\nRemote browser example\n\n```bash\n# Host (signed-in Chrome): launch serve\noracle serve --host 0.0.0.0:9473 --token secret123\n\n# Client: target that host\noracle --engine browser --remote-host 192.168.1.10:9473 --remote-token secret123 -p \"Run the UI smoke\" --file \"src\u002F**\u002F*.ts\"\n\n# If cookies can’t sync, pass them inline (JSON\u002Fbase64)\noracle --engine browser --browser-inline-cookies-file ~\u002F.oracle\u002Fcookies.json -p \"Run the UI smoke\" --file \"src\u002F**\u002F*.ts\"\n```\n\nSession management\n\n```bash\n# Prune stored sessions (default path ~\u002F.oracle\u002Fsessions; override ORACLE_HOME_DIR)\noracle status --clear --hours 168\n```\n\n## More docs\n\n- Bridge (Windows host → Linux client): [docs\u002Fbridge.md](docs\u002Fbridge.md)\n- Browser mode & forks: [docs\u002Fbrowser-mode.md](docs\u002Fbrowser-mode.md) (includes `oracle serve` remote service), [docs\u002Fchromium-forks.md](docs\u002Fchromium-forks.md), [docs\u002Flinux.md](docs\u002Flinux.md)\n- MCP: [docs\u002Fmcp.md](docs\u002Fmcp.md)\n- OpenAI\u002FAzure\u002FOpenRouter endpoints: [docs\u002Fopenai-endpoints.md](docs\u002Fopenai-endpoints.md), [docs\u002Fopenrouter.md](docs\u002Fopenrouter.md)\n- Manual smokes: [docs\u002Fmanual-tests.md](docs\u002Fmanual-tests.md)\n- Testing: [docs\u002Ftesting.md](docs\u002Ftesting.md)\n\nIf you’re looking for an even more powerful context-management tool, check out https:\u002F\u002Frepoprompt.com  \nName inspired by: https:\u002F\u002Fampcode.com\u002Fnews\u002Foracle\n\n## More free stuff from steipete\n\n- ✂️ [Trimmy](https:\u002F\u002Ftrimmy.app) — “Paste once, run once.” Flatten multi-line shell snippets so they paste and run.\n- 🟦🟩 [CodexBar](https:\u002F\u002Fcodexbar.app) — Keep Codex token windows visible in your macOS menu bar.\n- 🧳 [MCPorter](https:\u002F\u002Fmcporter.dev) — TypeScript toolkit + CLI for Model Context Protocol servers.\n","# oracle 🧿 — 向硅基智者低语你的提示与文件\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteipete_oracle_readme_f8b46597fc49.png\" alt=\"Oracle CLI 头部横幅\" width=\"1100\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@steipete\u002Foracle\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@steipete\u002Foracle?style=for-the-badge&logo=npm&logoColor=white\" alt=\"npm 版本\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fsteipete\u002Foracle\u002Fci.yml?branch=main&style=for-the-badge&label=测试\" alt=\"CI 状态\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatforms-macOS%20%7C%20Linux%20%7C%20Windows-blue?style=for-the-badge\" alt=\"支持平台\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green?style=for-the-badge\" alt=\"MIT 许可证\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nOracle 会将你的提示和文件打包在一起，以便其他 AI 能够结合真实上下文作出回答。它支持 GPT-5.4 Pro（默认）、GPT-5.4、GPT-5.1 Pro、GPT-5.1 Codex（仅 API）、GPT-5.1、GPT-5.2、Gemini 3.1 Pro（仅 API）、Gemini 3 Pro、Claude Sonnet 4.5、Claude Opus 4.1 等多种模型，并且可以在一次运行中调用单个或多个模型。此外，还提供了浏览器自动化功能；使用 `--browser-model-strategy current` 可以保持当前 ChatGPT 的活跃模型（或使用 `ignore` 来跳过模型选择）。API 仍然是最可靠的途径，而 `--copy` 则是一个便捷的手动备用方案。\n\n## 设置（macOS 浏览器模式）\n\n在浏览器模式下，你无需任何 API 密钥即可使用 GPT-5.4 Pro——它会直接自动化你的 Chrome 浏览器。\n\n### 首次登录\n\n只需运行一次即可创建自动化配置并登录 ChatGPT。浏览器将保持打开状态，以便你完成登录过程：\n\n```bash\noracle --engine browser --browser-manual-login \\\n  --browser-keep-browser --browser-input-timeout 120000 \\\n  -p \"HI\"\n```\n\n### 后续运行\n\n登录完成后，自动化配置会被保存下来。后续的所有运行都可以使用以下命令：\n\n```bash\noracle --engine browser --browser-manual-login \\\n  --browser-auto-reattach-delay 5s \\\n  --browser-auto-reattach-interval 3s \\\n  --browser-auto-reattach-timeout 60s \\\n  -p \"你的提示\"\n```\n\n> **为什么需要这些参数？**\n>\n> - `--browser-manual-login` — 跳过 macOS Keychain 的 Cookie 访问（避免重复的权限弹窗）\n> - `--browser-auto-reattach-*` — 在 ChatGPT 页面加载过程中发生重定向时自动重新连接（修复“被检查的目标已导航或关闭”错误）\n> - `--browser-keep-browser` — 第一次登录时保持浏览器打开（之后不需要）\n> - `--browser-input-timeout 120000` — 给予你在首次运行时 2 分钟的时间完成登录\n\n## 快速入门\n\n全局安装：`npm install -g @steipete\u002Foracle`\nHomebrew：`brew install steipete\u002Ftap\u002Foracle`\n\n需 Node 22+。或者使用 `npx -y @steipete\u002Foracle …`（或 pnpx）。\n\n```bash\n# 打包内容并粘贴到 ChatGPT\nnpx -y @steipete\u002Foracle --render --copy -p \"审查 TS 数据层是否存在架构漂移\" --file \"src\u002F**\u002F*.ts,*\u002F*.test.ts\"\n\n# 最小化 API 运行（需在环境变量中设置 OPENAI_API_KEY）\nnpx -y @steipete\u002Foracle -p \"为存储适配器撰写一份简洁的架构说明\" --file src\u002Fstorage\u002FREADME.md\n\n# 多模型 API 运行\nnpx -y @steipete\u002Foracle -p \"交叉核对数据层假设\" --models gpt-5.1-pro,gemini-3-pro --file \"src\u002F**\u002F*.ts\"\n\n# 基于现有 OpenAI\u002FAzure 会话 ID 的后续处理\nnpx -y @steipete\u002Foracle --engine api --model gpt-5.2-pro --followup release-readiness-audit --followup-model gpt-5.2-pro -p \"结合新的上下文重新评估\" --file \"src\u002F**\u002F*.ts\"\n\n# 直接基于 OpenAI Responses API ID 的后续处理\nnpx -y @steipete\u002Foracle --engine api --model gpt-5.2-pro --followup resp_abc1234567890 -p \"从该响应继续\" --file docs\u002Fnotes.md\n\n# 不消耗 Token 的预览\nnpx -y @steipete\u002Foracle --dry-run summary -p \"查看发布说明\" --file docs\u002Frelease-notes.md\n\n# 浏览器运行（无需 API 密钥，会打开 ChatGPT）\nnpx -y @steipete\u002Foracle --engine browser -p \"走一遍 UI 烟囱测试\" --file \"src\u002F**\u002F*.ts\"\n\n# Gemini 浏览器模式（无需 API 密钥；使用 gemini.google.com 的 Chrome Cookie）\nnpx -y @steipete\u002Foracle --engine browser --model gemini-3-pro --prompt \"一只可爱的小机器人拿着香蕉\" --generate-image out.jpg --aspect 1:1\n\n# 会话管理（列出并回放）\nnpx -y @steipete\u002Foracle status --hours 72\nnpx -y @steipete\u002Foracle session \u003Cid> --render\nnpx -y @steipete\u002Foracle restart \u003Cid>\n\n# TUI（交互式，仅供人类使用）\nnpx -y @steipete\u002Foracle tui\n```\n\n当设置了 `OPENAI_API_KEY` 时，引擎会自动选择 API 模式，否则将使用浏览器模式；浏览器模式在 macOS 上较为稳定，在 Linux 和 Windows 上也能运行。如果在 Linux 上检测失败，请使用 `--browser-chrome-path\u002F--browser-cookie-path`；而在 Windows 上，则建议使用 `--browser-manual-login` 或内嵌 Cookie，以防解密受阻。\n\n## 集成\n\n**CLI**\n\n- API 模式要求在环境变量中设置相应的 API 密钥：`OPENAI_API_KEY`（GPT-5.x）、`GEMINI_API_KEY`（Gemini 3.1 Pro \u002F Gemini 3 Pro）、`ANTHROPIC_API_KEY`（Claude Sonnet 4.5 \u002F Opus 4.1）。\n- Gemini 浏览器模式则使用 Chrome Cookie 而非 API 密钥——只需在 Chrome 中登录 `gemini.google.com` 即可（无需 Python\u002Fvenv）。\n- 如果你的 Gemini 账户无法访问“Pro”版本，Oracle 会自动回退到支持的模型进行网页运行，并在详细模式下记录回退信息。\n- 建议优先使用 API 模式或 `--copy` 加手动粘贴；浏览器自动化仍处于实验阶段。\n- 浏览器支持：在 macOS 上稳定；在 Linux 上也可运行（必要时添加 `--browser-chrome-path\u002F--browser-cookie-path`），而在 Windows 上则推荐使用手动登录或内嵌 Cookie，因为应用绑定的 Cookie 可能会阻止解密。\n- 远程浏览器服务：在已登录主机上运行 `oracle serve`；客户端则使用 `--remote-host\u002F--remote-token`。\n- AGENTS.md\u002FCLAUDE.md：\n  ```\n  - Oracle 会将提示与合适的文件打包在一起，供其他 AI（如 GPT 5 Pro 等）回答。适用于遇到瓶颈、调试或代码评审时。\n  - 每次会话首次使用前，请运行一次 `npx -y @steipete\u002Foracle --help`。\n  ```\n- 小贴士：在配置中设置 `browser.chatgptUrl`（或 `--chatgpt-url`），指向一个专门用于 ChatGPT 的项目文件夹，这样浏览器运行就不会污染你的主历史记录了。\n\n**Codex 技能**\n\n- 将此仓库中的 Oracle 技能复制到你的 Codex 技能文件夹：\n  - `mkdir -p ~\u002F.codex\u002Fskills`\n  - `cp -R skills\u002Foracle ~\u002F.codex\u002Fskills\u002Foracle`\n- 然后在你的 `AGENTS.md`\u002F`CLAUDE.md` 中引用它，以便 Codex 加载该技能。\n\n**MCP**\n\n- 通过 `oracle-mcp` 运行标准输入输出服务器。\n- 使用 [steipete\u002Fmcporter](https:\u002F\u002Fgithub.com\u002Fsteipete\u002Fmcporter) 或 `.mcp.json` 配置客户端；连接示例请参阅 [docs\u002Fmcp.md](docs\u002Fmcp.md)。\n\n```bash\nnpx -y @steipete\u002Foracle oracle-mcp\n```\n\n- Cursor 设置（MCP）：在 `.cursor\u002Fmcp.json` 中添加如下配置，然后在 Cursor 的 MCP 源中选择 “oracle”。UI 步骤请参见 https:\u002F\u002Fcursor.com\u002Fdocs\u002Fcontext\u002Fmcp。\n  [![安装 MCP 服务器](https:\u002F\u002Fcursor.com\u002Fdeeplink\u002Fmcp-install-dark.svg)](https:\u002F\u002Fcursor.com\u002Fen-US\u002Finstall-mcp?name=oracle&config=eyJjb21tYW5kIjoibnB4IC15IEBzdGVpcGV0ZS9vcmFjbGUtbW1wYyJ9)\n\n```json\n{\n  \"oracle\": {\n    \"command\": \"oracle-mcp\",\n    \"args\": []\n  }\n}\n```\n\n## 亮点\n\n- 打包一次，随处复用（API 或实验性浏览器）。\n- 多模型 API 以聚合成本\u002F用量运行，支持 OpenRouter ID 与第一方模型并存。\n- 渲染\u002F复制捆绑包，以便在自动化受限时手动粘贴到 ChatGPT 中。\n- GPT‑5 Pro API 默认以分离模式运行；可通过 `oracle session \u003Cid>` \u002F `oracle status` 重新连接，或使用 `--wait` 阻止连接。\n- OpenAI\u002FAzure 后续 API 调用可从 `--followup \u003CsessionId|responseId>` 继续；对于多模型父级任务，需添加 `--followup-model \u003Cmodel>`。\n- Azure 端点可通过 `--azure-endpoint\u002F--azure-deployment\u002F--azure-api-version` 或 `AZURE_OPENAI_*` 环境变量支持。\n- 文件安全：支持通配符\u002F排除规则、文件大小限制及 `--files-report`。\n- 可回放的会话（`oracle status`、`oracle session \u003Cid> --render`）。\n- 会话日志和捆绑包存储于 `~\u002F.oracle\u002Fsessions` 目录；可通过 `ORACLE_HOME_DIR` 覆盖路径。\n\n## 后续调用与 lineage 关系\n\n使用 `--followup` 可基于现有 OpenAI\u002FAzure Responses API 运行继续，并附加上下文或文件：\n\n```bash\noracle \\\n  --engine api \\\n  --model gpt-5.2-pro \\\n  --followup \u003C现有会话 ID 或响应 ID> \\\n  --followup-model gpt-5.2-pro \\\n  --slug \"my-followup-run\" \\\n  --wait \\\n  -p \"后续：结合附件文件重新评估之前的建议。\" \\\n  --file \"server\u002Fsrc\u002Fstrategy\u002Fplan.ts\" \\\n  --file \"server\u002Fsrc\u002Fstrategy\u002Fexecutor.ts\"\n```\n\n当父级会话使用了 `--models` 参数时，`--followup-model` 用于指定从哪个模型的响应 ID 继续链式调用。\n自定义 `--base-url` 提供者以及 Gemini\u002FClaude API 调用在此处不适用，因为它们不会在 Oracle 中保留 `previous_response_id`。\n\n`oracle status` 以树状结构展示父子 lineage 关系：\n\n```text\n最近会话\n状态    模型         模式    时间戳           字数    成本  标签\n已完成  gpt-5.2-pro   api     2026年03月01日 上午09:00  1800  $2.110  architecture-review-parent\n已完成  gpt-5.2-pro   api     2026年03月01日 上午09:14  2200  $2.980  ├─ architecture-review-followup\n运行中   gpt-5.2-pro   api     2026年03月01日 上午09:22  1400       -  │  └─ architecture-review-implementation-pass\n待处理  gpt-5.2-pro   api     2026年03月01日 上午09:25   900       -  └─ architecture-review-risk-check\n```\n\n## 浏览器自动重连（长时间 Pro 运行）\n\n当浏览器运行超时时（常见于 GPT‑5.x Pro 的长响应），Oracle 可持续轮询当前 ChatGPT 标签页，捕获最终答案，而无需手动执行 `oracle session \u003Cid>` 命令。\n\n通过设置非零间隔启用自动重连功能：\n\n- `--browser-auto-reattach-delay` — 第一次重试前的等待时间（如 `30s`）\n- `--browser-auto-reattach-interval` — 重试频率（如 `2m`）\n- `--browser-auto-reattach-timeout` — 每次尝试的超时时间（默认 `2m`）\n\n```bash\noracle --engine browser \\\n  --browser-timeout 6m \\\n  --browser-auto-reattach-delay 30s \\\n  --browser-auto-reattach-interval 2m \\\n  --browser-auto-reattach-timeout 2m \\\n  -p \"执行长时间的 UI 审计\" --file \"src\u002F**\u002F*.ts\"\n```\n\n## 你真正会用到的参数\n\n| 标志                                                            | 用途                                                                                                                                                                                                                                                                                                         |\n| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `-p, --prompt \u003Ctext>`                                           | 必需的提示文本。                                                                                                                                                                                                                                                                                                |\n| `-f, --file \u003Cpaths...>`                                         | 附加文件\u002F目录（支持通配符及 `!` 排除）。                                                                                                                                                                                                                                                                       |\n| `-e, --engine \u003Capi\\|browser>`                                   | 选择 API 或浏览器模式（浏览器模式为实验性功能）。                                                                                                                                                                                                                                                                |\n| `-m, --model \u003Cname>`                                            | 内置模型（默认为 `gpt-5.4-pro`，还包括 `gpt-5.4`、`gpt-5.1-pro`、`gpt-5-pro`、`gpt-5.1`、`gpt-5.1-codex`、`gpt-5.2`、`gpt-5.2-instant`、`gpt-5.2-pro`、仅限 API 的 `gemini-3.1-pro`、`gemini-3-pro`、`claude-4.5-sonnet`、`claude-4.1-opus`）以及任意 OpenRouter 模型 ID（如 `minimax\u002Fminimax-m2`、`openai\u002Fgpt-4o-mini`）。 |\n| `--models \u003Clist>`                                               | 多模型运行时使用的以逗号分隔的 API 模型列表（可混合内置模型和 OpenRouter 模型 ID）。                                                                                                                                                                                                                             |\n| `--followup \u003CsessionId\\|responseId>`                            | 从已保存的 Oracle 会话或 `resp_...` 响应 ID 继续 OpenAI\u002FAzure Responses API 运行。                                                                                                                                                                                                              |\n| `--followup-model \u003Cmodel>`                                      | 对于多模型的 OpenAI\u002FAzure 父级会话，选择从哪个模型的响应继续。                                                                                                                                                                                                                     |\n| `--base-url \u003Curl>`                                              | 将 API 请求指向 LiteLLM、Azure、OpenRouter 等服务。                                                                                                                                                                                                                                                                 |\n| `--chatgpt-url \u003Curl>`                                           | 在浏览器模式下指定 ChatGPT 工作区或文件夹。                                                                                                                                                                                                                                                                    |\n| `--browser-model-strategy \u003Cselect\\|current\\|ignore>`            | 控制浏览器模式下 ChatGPT 模型的选择策略（`current` 保持当前模型；`ignore` 跳过模型选择器）。                                                                                                                                                                                                      |\n| `--browser-manual-login`                                        | 跳过复制 Cookie 的步骤，直接使用持久化的自动化配置文件，并等待手动登录 ChatGPT。                                                                                                                                                                                                                      |\n| `--browser-thinking-time \u003Clight\\|standard\\|extended\\|heavy>`    | 设置 ChatGPT 思考时间的强度（仅适用于浏览器模式下的 Thinking\u002FPro 模型）。                                                                                                                                                                                                                                        |\n| `--browser-port \u003Cport>`                                         | 固定 Chrome DevTools 的端口（用于 WSL 或 Windows 防火墙辅助工具）。                                                                                                                                                                                                                                                     |\n| `--browser-inline-cookies[(-file)] \u003Cpayload \\| path>`          | 在无需 Chrome 或 Keychain 的情况下提供 Cookie（浏览器模式）。                                                                                                                                                                                                                                                           |\n| `--browser-timeout`, `--browser-input-timeout`                  | 控制整体及输入操作的超时时间（支持小时、分钟、秒、毫秒单位）。                                                                                                                                                                                                                                                     |\n| `--browser-recheck-delay`, `--browser-recheck-timeout`          | 针对长时间 Pro 模型运行的延迟重检机制：等待超时后再次尝试捕获结果（支持小时、分钟、秒、毫秒单位）。                                                                                                                                                                                                                   |\n| `--browser-reuse-wait`                                          | 在启动并行浏览器任务前，等待共享的 Chrome 配置文件可用。                                                                                                                                                                                                                                      |\n| `--browser-profile-lock-timeout`                                | 在发送请求之前，等待共享的手动登录配置文件解锁（用于序列化并行运行）。                                                                                                                                                                                                                        |\n| `--render`, `--copy`                                            | 打印和\u002F或复制生成的 Markdown 包。                                                                                                                                                                                                                                                                                        |\n| `--wait`                                                        | 阻塞等待后台 API 运行完成（例如 GPT‑5.1 Pro），而不是将其分离到后台执行。                                                                                                                                                                                                                                         |\n| `--timeout \u003Cseconds\\|auto>`                                     | 整体 API 的截止时间（`auto` 表示专业版为 60 分钟，其他情况为 120 秒）。                                                                                                                                                                                                                                                      |\n| `--background`, `--no-background`                               | 强制在 API 运行中启用 Responses API 的后台模式（创建 + 检索）。                                                                                                                                                                                                                                           |\n| `--http-timeout \u003Cms\\|s\\|m\\|h>`                                  | HTTP 客户端超时时间（默认 20 分钟）。                                                                                                                                                                                                                                                                              |\n| `--zombie-timeout \u003Cms\\|s\\|m\\|h>`                                | 覆盖 `oracle status` 使用的过期会话判定阈值。                                                                                                                                                                                                                                                          |\n| `--zombie-last-activity`                                        | 使用最后的日志活动来检测过期会话。                                                                                                                                                                                                                                                                                 |\n| `--write-output \u003Cpath>`                                         | 只保存最终答案（多模型运行时会在文件名后添加 `.\u003Cmodel>` 后缀）。                                                                                                                                                                                                                                                       |\n| `--files-report`                                                | 打印每个文件的 token 使用量。                                                                                                                                                                                                                                                                                     |\n| `--dry-run [summary\\|json\\|full]`                               | 预览运行结果，但不实际发送请求。                                                                                                                                                                                                                                                                                        |\n| `--remote-host`, `--remote-token`                               | 使用远程 `oracle serve` 主机（浏览器模式）。                                                                                                                                                                                                                                                                     |\n| `--remote-chrome \u003Chost:port>`                                   | 在浏览器模式下连接到现有的远程 Chrome 会话。                                                                                                                                                                                                                                                          |\n| `--youtube \u003Curl>`                                               | 待分析的 YouTube 视频 URL（Gemini 浏览器模式）。                                                                                                                                                                                                                                                             |\n| `--generate-image \u003Cfile>`                                       | 生成图像并保存到文件（Gemini 浏览器模式）。                                                                                                                                                                                                                                                          |\n| `--edit-image \u003Cfile>`                                           | 使用 `--output` 编辑现有图像（Gemini 浏览器模式）。                                                                                                                                                                                                                                                      |\n| `--azure-endpoint`, `--azure-deployment`, `--azure-api-version` | 指定 Azure OpenAI 的端点（自动选择 Azure 客户端）。                                                                                                                                                                                                                                               |\n\n## 配置\n\n将默认配置放在 `~\u002F.oracle\u002Fconfig.json` 文件中（使用 JSON5 格式）。示例如下：\n\n```json5\n{\n  model: \"gpt-5.4-pro\",\n  engine: \"api\",\n  filesReport: true,\n  browser: {\n    chatgptUrl: \"https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-p-691edc9fec088191b553a35093da1ea8-oracle\u002Fproject\",\n  },\n}\n```\n\n可以使用 `browser.chatgptUrl`（或旧版别名 `browser.url`）来指定浏览器自动化操作的目标 ChatGPT 工作区\u002F文件夹。\n有关优先级和完整配置模式，请参阅 [docs\u002Fconfiguration.md](docs\u002Fconfiguration.md)。\n\n高级标志\n\n| 部分         | 标志                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 浏览器      | `--browser-manual-login`, `--browser-thinking-time`, `--browser-timeout`, `--browser-input-timeout`, `--browser-recheck-delay`, `--browser-recheck-timeout`, `--browser-reuse-wait`, `--browser-profile-lock-timeout`, `--browser-auto-reattach-delay`, `--browser-auto-reattach-interval`, `--browser-auto-reattach-timeout`, `--browser-cookie-wait`, `--browser-inline-cookies[(-file)]`, `--browser-attachments`, `--browser-inline-files`, `--browser-bundle-files`, `--browser-keep-browser`, `--browser-headless`, `--browser-hide-window`, `--browser-no-cookie-sync`, `--browser-allow-cookie-errors`, `--browser-chrome-path`, `--browser-cookie-path`, `--chatgpt-url` |\n| 运行控制  | `--background`, `--no-background`, `--http-timeout`, `--zombie-timeout`, `--zombie-last-activity`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |\n| Azure\u002FOpenAI | `--azure-endpoint`, `--azure-deployment`, `--azure-api-version`, `--base-url`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |\n\n远程浏览器示例\n\n```bash\n# 主机（已登录的 Chrome）：启动服务\noracle serve --host 0.0.0.0:9473 --token secret123\n\n# 客户端：连接到该主机\noracle --engine browser --remote-host 192.168.1.10:9473 --remote-token secret123 -p \"运行 UI 烟囱测试\" --file \"src\u002F**\u002F*.ts\"\n\n# 如果无法同步 Cookie，可直接传递内联 Cookie（JSON 或 base64 格式）\noracle --engine browser --browser-inline-cookies-file ~\u002F.oracle\u002Fcookies.json -p \"运行 UI 烟囱测试\" --file \"src\u002F**\u002F*.ts\"\n```\n\n会话管理\n\n```bash\n# 清理存储的会话（默认路径为 ~\u002F.oracle\u002Fsessions；可通过 ORACLE_HOME_DIR 覆盖）\noracle status --clear --hours 168\n```\n\n## 更多文档\n\n- 桥接（Windows 主机 → Linux 客户端）：[docs\u002Fbridge.md](docs\u002Fbridge.md)\n- 浏览器模式与分支：[docs\u002Fbrowser-mode.md](docs\u002Fbrowser-mode.md)（包含 `oracle serve` 远程服务）、[docs\u002Fchromium-forks.md](docs\u002Fchromium-forks.md)、[docs\u002Flinux.md](docs\u002Flinux.md)\n- MCP：[docs\u002Fmcp.md](docs\u002Fmcp.md)\n- OpenAI\u002FAzure\u002FOpenRouter 端点：[docs\u002Fopenai-endpoints.md](docs\u002Fopenai-endpoints.md)、[docs\u002Fopenrouter.md](docs\u002Fopenrouter.md)\n- 手动烟囱测试：[docs\u002Fmanual-tests.md](docs\u002Fmanual-tests.md)\n- 测试：[docs\u002Ftesting.md](docs\u002Ftesting.md)\n\n如果您正在寻找更强大的上下文管理工具，请访问 https:\u002F\u002Frepoprompt.com  \n灵感来源：https:\u002F\u002Fampcode.com\u002Fnews\u002Foracle\n\n## steipete 的更多免费工具\n\n- ✂️ [Trimmy](https:\u002F\u002Ftrimmy.app) — “粘贴一次，运行一次。” 将多行 Shell 片段简化为可直接粘贴并执行的形式。\n- 🟦🟩 [CodexBar](https:\u002F\u002Fcodexbar.app) — 在 macOS 菜单栏中始终显示 Codex 的令牌窗口。\n- 🧳 [MCPorter](https:\u002F\u002Fmcporter.dev) — 用于 Model Context Protocol 服务器的 TypeScript 工具包及 CLI。","# Oracle 快速上手指南\n\nOracle 是一个强大的 CLI 工具，能够将你的提示词（Prompt）和代码文件打包，发送给多个主流 AI 模型（如 GPT-5.x 系列、Gemini、Claude 等）进行处理。它支持 API 调用和浏览器自动化两种模式，无需配置 API Key 即可通过浏览器直接使用 ChatGPT 或 Gemini。\n\n## 环境准备\n\n*   **操作系统**：macOS（推荐，浏览器模式最稳定）、Linux、Windows。\n*   **Node.js**：版本需为 **22+**。\n*   **浏览器**：若使用浏览器模式（无 API Key），需安装 **Google Chrome**。\n    *   *Linux 用户*：可能需要手动指定 Chrome 路径。\n    *   *Windows 用户*：建议使用手动登录模式以避免 Cookie 解密问题。\n*   **账号要求**：\n    *   API 模式：需在环境变量中配置对应的 API Key（`OPENAI_API_KEY`, `GEMINI_API_KEY`, `ANTHROPIC_API_KEY`）。\n    *   浏览器模式：需已在 Chrome 中登录 `chatgpt.com` 或 `gemini.google.com`。\n\n## 安装步骤\n\n你可以选择以下任意一种方式进行安装：\n\n**方式一：使用 npm 全局安装（推荐）**\n```bash\nnpm install -g @steipete\u002Foracle\n```\n\n**方式二：使用 Homebrew (macOS)**\n```bash\nbrew install steipete\u002Ftap\u002Foracle\n```\n\n**方式三：免安装直接使用 (npx)**\n无需安装，每次运行时自动获取最新版本：\n```bash\nnpx -y @steipete\u002Foracle --help\n```\n\n> **国内加速提示**：如果 npm 下载缓慢，建议配置淘宝镜像源：\n> `npm config set registry https:\u002F\u002Fregistry.npmmirror.com`\n\n## 基本使用\n\nOracle 会自动检测环境变量：如果设置了 `OPENAI_API_KEY` 则默认使用 API 模式，否则尝试使用浏览器模式。\n\n### 1. 最简单的 API 调用\n假设你已设置 `OPENAI_API_KEY`，运行以下命令分析当前目录下的 TypeScript 文件：\n\n```bash\nnpx -y @steipete\u002Foracle -p \"Review the TS data layer for schema drift\" --file \"src\u002F**\u002F*.ts\"\n```\n\n### 2. 浏览器模式（无需 API Key）\n如果没有 API Key，可以通过自动化浏览器直接使用 ChatGPT。**首次运行**需要保持浏览器打开以完成登录验证：\n\n```bash\n# 首次运行：启动浏览器并等待人工登录\nnpx -y @steipete\u002Foracle --engine browser --browser-manual-login \\\n  --browser-keep-browser --browser-input-timeout 120000 \\\n  -p \"HI\"\n```\n\n登录成功后，**后续运行**可直接使用以下命令（增加了自动重连参数以防页面跳转中断）：\n\n```bash\nnpx -y @steipete\u002Foracle --engine browser --browser-manual-login \\\n  --browser-auto-reattach-delay 5s \\\n  --browser-auto-reattach-interval 3s \\\n  --browser-auto-reattach-timeout 60s \\\n  -p \"Walk through the UI smoke test\" --file \"src\u002F**\u002F*.ts\"\n```\n\n### 3. 多模型对比分析\n一次性向多个模型发送请求并聚合结果：\n\n```bash\nnpx -y @steipete\u002Foracle -p \"Cross-check the data layer assumptions\" \\\n  --models gpt-5.1-pro,gemini-3-pro \\\n  --file \"src\u002F**\u002F*.ts\"\n```\n\n### 4. 预览模式（不消耗 Token）\n仅查看将要发送的文件内容和提示词，用于检查上下文是否正确：\n\n```bash\nnpx -y @steipete\u002Foracle --dry-run summary -p \"Check release notes\" --file docs\u002Frelease-notes.md\n```\n\n### 5. 交互式终端界面 (TUI)\n启动交互式界面进行对话：\n```bash\nnpx -y @steipete\u002Foracle tui\n```","资深后端工程师在紧急修复生产环境的数据层架构漂移问题时，需要快速分析分散在多个文件中的 TypeScript 代码与文档上下文。\n\n### 没有 oracle 时\n- **上下文割裂**：必须手动打开十几个 `.ts` 源文件和测试文件，反复复制粘贴代码片段到聊天窗口，极易遗漏关键依赖文件。\n- **模型切换繁琐**：若想对比 GPT-5 Pro 与 Gemini 的分析结果，需分别登录不同网页端重复操作，耗时且打断思路。\n- **隐私与配置门槛**：在无 API Key 的临时环境下，无法直接调用高阶模型，只能降级使用免费模型或经历复杂的浏览器插件配置。\n- **会话断层**：难以将本地最新的代码变更无缝衔接至之前的云端诊断会话，导致 AI 基于过时信息给出错误建议。\n\n### 使用 oracle 后\n- **一键打包上下文**：通过 `--file \"src\u002F**\u002F*.ts\"`  glob 匹配，oracle 自动将所有相关源码、测试用例打包并注入提示词，确保 AI 掌握完整项目全貌。\n- **多模型并行验证**：单条命令即可同时调用 `gpt-5.1-pro` 和 `gemini-3-pro` 进行交叉验证，瞬间获得多维度的架构评估报告。\n- **无密钥浏览器模式**：利用 `--engine browser` 直接接管已登录的 Chrome 会话，无需配置 API Key 即可直通 GPT-5.4 Pro，兼顾便捷与高性能。\n- **精准会话续接**：支持通过 `--followup` 参数直接关联现有的 OpenAI 会话 ID，让 AI 基于最新本地文件继续之前的深度诊断，保持逻辑连贯。\n\noracle 将碎片化的文件与复杂的模型调用简化为一条终端指令，让开发者在本地即可拥有“硅基智者”的全局视野与推理能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteipete_oracle_650511e1.png","steipete","Peter Steinberger","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fsteipete_d1c5c0c3.jpg","Came back from retirement to mess with AI. Clawdfather @OpenClaw\r\n\r\nPreviously: Founder of @PSPDFKit.","Full-Time Open-Sourcerer","Vienna & London","peter@steipete.me","http:\u002F\u002Fsteipete.me","https:\u002F\u002Fgithub.com\u002Fsteipete",[82,86,90],{"name":83,"color":84,"percentage":85},"TypeScript","#3178c6",94.4,{"name":87,"color":88,"percentage":89},"JavaScript","#f1e05a",4.9,{"name":91,"color":92,"percentage":93},"Shell","#89e051",0.7,1914,184,"2026-04-15T07:11:54","NOASSERTION","macOS, Linux, Windows","未说明",{"notes":101,"python":99,"dependencies":102},"该工具是一个 Node.js CLI 工具，非本地运行的 AI 模型，因此无 GPU 和本地大内存需求。核心依赖为 Node.js 22+ 版本。支持两种运行模式：1. API 模式（推荐）：需配置 OPENAI_API_KEY、GEMINI_API_KEY 或 ANTHROPIC_API_KEY 环境变量；2. 浏览器模式（实验性）：通过自动化 Chrome 浏览器操作，无需 API Key，但 macOS 支持最稳定，Linux\u002FWindows 可能需要指定浏览器路径或手动登录。",[103,104,105],"Node.js 22+","npm","Chrome Browser (用于浏览器模式)",[14,13,35,15],[108,109,110,111,112,113,114,115],"agents","ai","gpt-5-pro","anthropic","gemini-pro","openai","opus","sonnet",null,"2026-03-27T02:49:30.150509","2026-04-16T01:44:51.491000",[120,125,130,135,140,145],{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},34655,"如何避免运行时出现\"node wants to use your confidential information\"（节点想要使用您的机密信息）的警告？","建议在单独的浏览器配置文件（profile）中登录，这样更干净且无需担心 Cookie 名称变更等问题。您可以使用 `oracle serve` 命令来优化此流程，甚至支持远程运行或在 Windows WSL 环境中使用。此外，也可以考虑使用 `--cookie-file` 参数传递 TSV 格式的 Cookie 文件，以实现更安全的手动模式。","https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Fissues\u002F1",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},34656,"为什么使用 `pnpx @steipete\u002Foracle` 会报错找不到绑定文件（bindings file），而 `npx` 可以正常工作？","`@steipete\u002Foracle` 依赖 SQLite 绑定，pnpm 在默认设置下无法正确处理这些原生模块，导致报错\"Could not locate the bindings file\"。解决方法是直接使用 `npx @steipete\u002Foracle` 命令代替 `pnpx`。如果之前通过 Homebrew 安装，请确保更新到最新版本以修复相关问题。","https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Fissues\u002F32",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},34657,"浏览器模式下 Chrome 打开后立即自动关闭，并提示检测到 Cloudflare 挑战，该如何解决？","这是由 Cloudflare 的安全验证引起的。您可以尝试以下两种命令组合来解决：\n1. 保持浏览器打开以便手动完成验证：\n`oracle --engine browser --browser-manual-login --browser-keep-browser --browser-input-timeout 120000 -p \"HI\"`\n在该浏览器中完成登录后，再次运行正常命令。\n2. 使用自动重连功能：\n`oracle --engine browser --browser-manual-login --browser-auto-reattach-delay 5s --browser-auto-reattach-interval 3s --browser-auto-reattach-timeout 60s -p \"HI\"`","https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Fissues\u002F79",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},34658,"配置文件（~\u002F.oracle\u002Fconfig.json）中的设置（如 chromePath）为何没有被读取生效？","这是一个已确认的配置读取 Bug，已在版本 0.5.2 中修复。如果您使用的是非标准 Chrome 分支（如 Perplexity 的 Comet 浏览器），请确保路径配置正确。维护者指出，虽然不确定是否完全兼容 OpenAI 的 Atlas 浏览器，但大多数接近 Chrome 内核的分支应该都能正常工作。请升级软件至最新版本以获取修复。","https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Fissues\u002F26",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},34659,"是否有推荐的 agents.md 指令或脚本，用于指导 Codex 或其他 AI 代理更好地使用 Oracle？","有的。维护者提供了一个专门的技能脚本仓库，包含了如何使用 Oracle 的详细指令和示例。您可以访问 https:\u002F\u002Fgithub.com\u002Fsteipete\u002Fagent-scripts\u002Ftree\u002Fmain\u002Fskills\u002Foracle 获取相关资源。这些脚本能帮助 AI 代理提供更充分的上下文，从而获得更合理的回答。","https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Fissues\u002F24",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},34660,"当使用 `--wait` 参数请求失败或执行 `status` 命令时，如何查看具体的错误代码和调试信息？","该功能已在版本 0.5.0 中加入。更新后，当 API 调用失败或状态查询出错时，系统会输出具体的错误代码和响应信息，而不仅仅是符号（如 `%`）。这将帮助用户和模型更容易地调试问题，例如区分是密钥错误还是网络问题。请确保将 oracle 升级到 0.5.0 或更高版本。","https:\u002F\u002Fgithub.com\u002Fsteipete\u002Foracle\u002Fissues\u002F19",[151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241,246],{"id":152,"version":153,"summary_zh":154,"released_at":155},271956,"v0.9.0","### 变更\n- OpenAI：将默认的 Pro 模型从 `gpt-5.2-pro` 切换为 `gpt-5.4-pro`，新增对 `gpt-5.4` 的显式支持；将 `gpt-5.1-pro` 和 `gpt-5.2-pro` 逐步迁移至 `gpt-5.4-pro`；保留提供商限定的自定义 ID 不变，并将浏览器默认的 Pro 选择映射到 ChatGPT 的 `GPT-5.4 Pro` (#107，感谢 @jameskraus)。\n\n### 修复\n- Gemini Web：为浏览器\u002F手动登录模式添加 Deep Think DOM 自动化功能，确保 Deep Think 仅限浏览器使用，并正确应用配置的浏览器超时及配置文件复用语义。（#97）—— 感谢 @kanlanc。\n- 浏览器：当 Cloudflare 反机器人挑战中断浏览器模式时，保持带界面的 Chrome 浏览器及配置文件状态继续运行，并在已保存会话的元数据中记录复用指南。（#111）—— 感谢 @WinnCook。\n- 浏览器：当 Chrome 因 DevTools 报出“被检查的目标已导航或关闭”错误而断开连接时，仍确保手动登录会话可重新连接。（#110）—— 感谢 @WinnCook。\n- Gemini API：新增对 `gemini-3.1-pro` 别名的显式支持，将其映射到 Google 的预览模型 ID，并仅限 API 使用，以避免浏览器运行时无意中调用错误的 Gemini Web 模型。（#100、#101）—— 感谢 @ninjaa。\n- API：当 `--base-url` 指向 OpenRouter 或其他 OpenAI 风格端点时，将 Gemini 和 Claude 的请求通过与聊天\u002F补全兼容的代理转发，并确保显式的 Claude 基础 URL 不会被环境默认值覆盖。（#95）—— 感谢 @thesobercoder。\n- Azure：将 Responses API 的请求路由至 Azure 的 `\u002Fopenai\u002Fv1` 端点，并将 `--azure-deployment` 作为实际调度的模型名称使用。（#92）—— 感谢 @yellowgolfball。\n- CLI：允许通过 `ORACLE_MAX_FILE_SIZE_BYTES` 环境变量或 `~\u002F.oracle\u002Fconfig.json` 中的 `maxFileSizeBytes` 配置项来调整每文件的大小限制，并在重启后持续生效。（#76）\n- CLI：将 `--followup` 选项的作用范围限定于 OpenAI\u002FAzure 的 Responses 路径，使 Gemini、Claude 以及自定义 `--base-url` 适配器在无效时能够快速报错，而非静默启动新任务。（#105）—— 感谢 @cheulyop。\n- Gemini Web：在上传请求中包含 MIME 元数据，以确保图像附件在图像分析场景下仍能正常工作，并为图像和非图像负载提供回归测试覆盖。（#104）—— 感谢 @DK625。\n- Gemini Web：在缺少 Cookie 的失败响应中加入 Chrome\u002FSweet-Cookie 相关警告信息，以便将应用绑定 Cookie 或 SQLite\u002FBigInt 解析问题暴露为可操作的诊断信息，而非笼统的认证 Cookie 错误。\n- MCP：让 `consult` 继承 `~\u002F.oracle\u002Fconfig.json` 中的浏览器默认配置，同时仍优先使用显式的工具调用覆盖设置。（#109）—— 感谢 @doodaaatimmy-creator。\n- 依赖库：将 `@steipete\u002Fsweet-cookie` 升级至 `0.2.0`，引入针对 Node 22 的 Chrome Cookie 读取修复，该修复安全地转换 `expires_utc` 字段，避免触发 SQLite BigInt 溢出问题。","2026-03-08T02:47:21",{"id":157,"version":158,"summary_zh":159,"released_at":160},271957,"v0.8.6","### 新增\n- 会话：新增 `oracle restart \u003Cid>` 命令，用于将已保存的会话以新会话形式重新运行（克隆选项）(#84，感谢 @enki)。\n- 浏览器：支持在助手超时后可选地定期自动重连（`--browser-auto-reattach-delay` \u002F `--browser-auto-reattach-interval` \u002F `--browser-auto-reattach-timeout`）。原始 PR #87 由 Felix Huber (@felix-huber) 提出——非常感谢！\n\n### 修复\n- 浏览器：修复浏览器模式下及模型解析器缓存中的内存泄漏问题 (#77，感谢 @bindscha)。\n- 浏览器：修复浏览器模式下 Markdown 回退提取器的 TDZ 导致的崩溃问题 (#90，感谢 @julianknutsen)。\n- CLI：使 Commander 的 `--no-` 标志正确尊重 `--no-wait` 选项（修复重启等待偏好设置）(#91)。\n\n### 变更\n- 依赖：更新依赖项。\n","2026-02-09T18:03:43",{"id":162,"version":163,"summary_zh":164,"released_at":165},271958,"v0.8.5","### 新增\n- Bridge：新增桥接工作流及 MCP 浏览器控件，用于远程 ChatGPT 会话。原始 PR #42 由 Kyle McCleary (@kmccleary3301) 提交——感谢！\n- CLI：新增 `--background`\u002F`--no-background`、`--http-timeout`、`--zombie-timeout` 和 `--zombie-last-activity` 参数，以支持长时间运行的 API 会话。\n\n### 修复\n- CLI：将旧版 `--[no-]notify`、`--[no-]notify-sound` 和 `--[no-]background` 标志恢复为隐藏别名（Commander 现已不再接受 `new Option()` 中的 `[no-]`）。\n- 会话：僵尸检测现可尊重显式超时设置，并可选择使用最后的日志活动时间来避免在长时间运行时误判为“僵尸”状态。\n- 浏览器：若隔离标签页加载失败，则回退到默认的 DevTools 目标；当设置 `--keep-browser` 时，将继续保持运行标签页打开。\n- 浏览器：刷新较长的助手回复内容时，不会覆盖已捕获的 Markdown 格式。\n\n### 变更\n- 配置：移除旧版 `remote.host`\u002F`remote.token` 以及顶级的 `remoteHost`\u002F`remoteToken`；改用 `browser.remoteHost`\u002F`browser.remoteToken` 或环境变量。\n","2026-01-19T04:29:27",{"id":167,"version":168,"summary_zh":169,"released_at":170},271959,"v0.8.4","### 变更\n- 依赖项：将 zod 更新至 `4.3.5`。\n- 依赖项：新增 `qs` 为直接依赖（避免 Dependabot 在 pnpm 的传递性更新中失败）。\n\n### 修复\n- 浏览器：修复当前 ChatGPT 编辑器中的附件上传问题（避免重复上传；避免非图片文件使用仅支持图片的输入方式）。原始 PR #60 由 Alex Naidis (@TheCrazyLex) 提交 — 感谢！","2026-01-05T00:25:59",{"id":172,"version":173,"summary_zh":174,"released_at":175},271960,"v0.8.3","### 新增\n- 配置：允许通过 `browser.forceEnglishLocale` 选项，为浏览器运行启用 `--lang\u002F--accept-lang` 参数。\n- 浏览器：新增 `--browser-cookie-wait` \u002F `browser.cookieSyncWaitMs` 选项，用于等待并重试 Cookie 同步。原始 PR #55 由 bheemreddy-samsara 提交 — 感谢！\n\n### 修复\n- 浏览器：避免在检测到过时芯片时误触发附件移除操作，并允许在发送按钮仍处于禁用状态的情况下完成上传。原始 PR #56 由 Alex Naidis (@TheCrazyLex) 提交 — 感谢！\n- 浏览器：当自定义 ChatGPT 项目 URL 缺失时，自动关闭阻塞式模态窗口；同时强化附件上传机制（强制触发 input\u002Fchange 事件；通过 DataTransfer 重试；仅当编辑器显示附件 UI 时才视为“已选择文件”，否则不认为有效）。\n- 浏览器：优先使用可信的（CDP）点击来触发编辑器中的“+”按钮，以便在 ChatGPT 忽略模拟点击时也能成功上传附件。\n","2025-12-31T19:43:11",{"id":177,"version":178,"summary_zh":179,"released_at":180},271961,"v0.8.1","### 新增\n- 配置：允许在 `~\u002F.oracle\u002Fconfig.json` 中设置 `browser.thinkingTime`、`browser.manualLogin` 和 `browser.manualLoginProfileDir` 的默认值。\n\n### 修复\n- 浏览器：思考时间芯片选择现在能够识别标有“Pro”的合成药丸。原始 PR #54 由 Alex Naidis (@TheCrazyLex) 提交——感谢！\n- CLI：当在 Codex 下运行时（`CODEX_MANAGED_BY_NPM=1`），禁用 OSC 进度输出，以避免进度条噪音。\n\n### 测试\n- 在设置 `CODEX_MANAGED_BY_NPM=1` 时，稳定 OSC 进度检测测试。","2025-12-30T02:42:01",{"id":182,"version":183,"summary_zh":184,"released_at":185},271962,"v0.8.0","### 亮点\n- 浏览器可靠性提升：重新连接更稳定，响应捕获与附件上传优化（减少提示回显、截断及重复上传）。\n- 通过 Sweet Cookie 重构 Cookie 栈（无需原生插件），实现更好的内联 Cookie 处理；Gemini Web 现已在 Windows 上运行，并支持 `--browser-cookie-path` 选项。\n- 新增 `--browser-model-strategy` 标志，用于控制浏览器模式下 ChatGPT 模型的选择策略（`select`\u002F`current`\u002F`ignore`）。原始 PR #49 由 @djangonavarro220 提交——感谢！\n\n### 改进\n- 浏览器重新连接现可保留 `\u002Fc\u002F` 对话 URL 和项目 URL 前缀，验证对话 ID，并在运行中途断开或捕获失败时自动恢复。\n- 响应捕获更加稳定：采用更广泛的选择器、仅捕获助手发言的轮次、避免提示回显，并增加了停止按钮和剪贴板稳定性检查。\n- 附件上传具备幂等性和计数感知能力（适用于编辑器、芯片组件和文件输入框），并明确等待上传完成、清理过时输入。\n- 登录流程增加更丰富的诊断信息，自动接受“欢迎回来”选择器，并始终记录当前活动的 ChatGPT URL。\n- Cookie 处理优先使用实时 Chrome 浏览器，而非旧版 `~\u002F.oracle\u002Fcookies.json`；当同步功能关闭时，Gemini Web 可直接使用内联 Cookie。\n\n### 修复\n- CLI：通过 Markdansi 的块渲染器流式输出 Markdown，并为非 TTY 场景保护实时渲染器。\n- 测试：稳定浏览器实时测试（序列化 + 项目 URL 回退），并新增响应观察者断言；浏览器冒烟测试运行速度更快。\n","2025-12-28T03:03:03",{"id":187,"version":188,"summary_zh":189,"released_at":190},271963,"v0.7.6","### 变更\n- CLI：在 API、浏览器和会话视图中，精简终点线摘要。\n- CLI：令牌计数现以 `↑in ↓out ↻reasoning Δtotal` 格式显示。\n\n### 修复\n- CLI\u002F浏览器：忽略重复的 `--file` 输入（仅记录一次），并改进附件存在性检测，避免重试时因“已附加”而频繁抛出上传错误。\n- 浏览器：强化会话重新连接功能（更精准地定位对话、延长提示提交等待时间、避免关闭共享的 DevTools 目标）。\n- 实时测试：为浏览器重新连接和模型选择增加覆盖率与重试机制；容忍 OpenRouter 免费层级的临时性失败。","2025-12-25T14:37:37",{"id":192,"version":193,"summary_zh":194,"released_at":195},271964,"v0.7.5","### 修复\n- 打包：将令牌完全切换到 npm 发布，以避免 Homebrew 安装触发 Git 准备构建。\n","2025-12-23T19:56:24",{"id":197,"version":198,"summary_zh":199,"released_at":200},271965,"v0.7.4","### 变更\n- 浏览器：新增 `--browser-thinking-time \u003Clight|standard|extended|heavy>` 选项，用于在 ChatGPT 中选择思考时间强度。\n\n### 修复\n- 浏览器：限制附件上传的频率，并调整多文件上传的速度，以避免重复出现“已附加”的警告。\n- 浏览器：修正 GPT-5.2 模型变体的选择逻辑（自动\u002F思考\u002F即时\u002F专业），采用更严格的匹配规则并优化 testid 评分；思考时间选择现支持多个级别。原始 PR #45 由 Manish Malhotra (@manmal) 提交——感谢！\n- 浏览器：仅在助手回复失败时重新加载卡顿的对话（且仅执行一次），而非每次提交后都强制刷新。","2025-12-23T13:58:38",{"id":202,"version":203,"summary_zh":204,"released_at":205},271966,"v0.7.3","- Changed: API: streaming answers in a rich TTY now use Markdansi’s live renderer (`createLiveRenderer`) so we can stream *and* render Markdown in-place.\n- Changed: Dependencies: update `markdansi` to 0.1.5.\n- Changed: Dependencies: update `devtools-protocol` to 0.0.1561482.\n- Fixed: Browser: prevent `chrome-launcher` from auto-killing Chrome on SIGINT so reattach sessions survive Ctrl+C.\n- Fixed: Sessions: running browser sessions now mark as errored when the Chrome PID\u002Fport are no longer reachable.\n- Fixed: Browser: reattach now recovers even if Chrome was closed by reopening, locating the conversation in the sidebar, and resuming the response.\n","2025-12-23T03:03:10",{"id":207,"version":208,"summary_zh":209,"released_at":210},271967,"v0.7.2","### Fixed\n- Browser: stop auto-clicking the “Answer now” gate; wait for the full Pro-thinking response instead of skipping it.\n- Browser: reject `?temporary-chat=true` URLs when targeting Pro models (Pro picker entries are not available in Temporary Chat); error message now calls this out explicitly.\n- Browser: attachment uploads re-trigger the file-input change event until ChatGPT renders the attachment card (avoids hydration races); verify attachments are present on the sent user message before waiting for the assistant.\n- Live tests: make the `gpt-5.2-instant` OpenAI smoke test resilient to transient API stalls\u002Ferrors.\n","2025-12-17T18:47:57",{"id":212,"version":213,"summary_zh":214,"released_at":215},271968,"v0.7.1","### Changed\n- API: default model is now `gpt-5.2-pro` (and “Pro” label inference prefers GPT‑5.2 Pro).\n- Tests: updated fixtures\u002Fdefaults to use `gpt-5.2-pro` instead of `gpt-5.1-pro`.\n- API: clarify `gpt-5.1-pro` as a stable alias that targets `gpt-5.2-pro`.\n- Dependencies: refresh (notably `zod` 4.2.1 and `devtools-protocol` 0.0.1559729).\n- Browser: browser engine GPT selection now supports ChatGPT 5.2 (`gpt-5.2`) and ChatGPT 5.2 Pro (`gpt-5.2-pro`); legacy labels like `gpt-5.1` normalize to 5.2, and “Pro” always resolves to 5.2 Pro (ignores Legacy GPT‑5.1 Pro submenu) with a top-bar label confirmation.\n\n### Fixed\n- Browser: prompt commit verification handles markdown code fences better; prompt-echo recovery is more robust (including remote browser mode); multi-file uploads are less flaky (dynamic timeouts + better filename matching). Original PR #41 by Muly Oved (@mulyoved) — thank you!\n- Browser: adapt to ChatGPT DOM changes (`data-turn=assistant|user`) and “Answer now” gating in Pro thinking so we don’t capture placeholders\u002Ftruncate answers.\n- Gemini web: add abortable timeouts + retries for cookie-based runs so live tests are less likely to hang on transient Gemini web responses.\n","2025-12-17T14:33:25",{"id":217,"version":218,"summary_zh":219,"released_at":220},271969,"v0.7.0","\n### Added\n- Browser: Gemini browser mode via direct Gemini web client (uses Chrome cookies; no API key required; runs fully in Node\u002FTypeScript — no Python\u002Fvenv). Includes `--youtube`, `--generate-image`, `--edit-image`, `--output`, `--aspect`, and `--gemini-show-thoughts`. Original PR #39 by Nico Bailon (@nicobailon) — thank you!\n- Browser: media files passed via `--file` (images\u002Fvideo\u002Faudio\u002FPDF) are treated as upload attachments instead of being inlined into the prompt (enables Gemini file analysis).\n- Browser: Gemini image ops follow `gg-dl` redirects while preserving cookies, so `--generate-image`\u002F`--edit-image` actually create output files.\n- Browser: Gemini web runs support “Pro” auto-fallback when unavailable and include compatibility init for Gemini web token changes.\n- Live tests: add opt-in Gemini web smoke coverage for image generation\u002Fediting (cookie-based browser mode).\n\n### Changed\n- Browser guard now allows Gemini models (browser engine supports GPT + Gemini; other models require `--engine api`).\n\n","2025-12-14T02:30:26",{"id":222,"version":223,"summary_zh":224,"released_at":225},271970,"v0.6.1","### Changed\n- Browser: default model target now prefers ChatGPT 5.2. Original PR #40 by Muly Oved (@mulyoved) — thank you!\n- Browser: remove the “browser fallback” API retry suggestion to avoid accidental billable reruns. Idea from PR #38 by Nico Bailon (@nicobailon) — thank you!\n\n### Fixed\n- Browser: manual-login runs now reuse an already-running Chrome more reliably (persist DevTools port in the profile; probe with retries; clean up stale port state). Original PR #40 by Muly Oved (@mulyoved) — thank you!\n- Browser: response capture is less likely to truncate by mistaking earlier turns as complete; completion detection is scoped to the last assistant turn and requires brief stability before capture. Original PR #40 by Muly Oved (@mulyoved) — thank you!\n- Browser: stale profile cleanup avoids deleting lock files when an active Chrome process is using the profile.\n","2025-12-13T18:00:45",{"id":227,"version":228,"summary_zh":229,"released_at":230},271971,"v0.6.0","### Added\n- GPT-5.2 model support (`gpt-5.2` Thinking, `gpt-5.2-instant`, `gpt-5.2-pro`) plus browser `--browser-extended-thinking` automation. Original PR #37 by Nico Bailon (@nicobailon) — thank you!\n\n### Changed\n- API: `gpt-5.1-pro` now targets `gpt-5.2-pro` instead of older Pro fallbacks.\n- Browser: “Thinking time → Extended” selection now reuses centralized menu selectors, normalizes text matching, and ships a best-effort helper for future “auto” mode. Original PR #36 by Victor Vannara (@voctory) — thank you!\n- Browser: new `--browser-attachments \u003Cauto|never|always>` (default `auto`) pastes file contents inline up to ~60k characters, then switches to uploads; if ChatGPT rejects an inline paste as too large, Oracle retries automatically with uploads.\n  - Note: the ~60k threshold is based on pasted **characters** in the ChatGPT composer (not token estimates); on rejection we log the retry and switch to uploads automatically.\n","2025-12-12T22:25:33",{"id":232,"version":233,"summary_zh":234,"released_at":235},271972,"v0.5.6","## Changed\n- Browser uploads: after `setFileInputFiles` we now log the chips + file-input contents and only mark success when the real file input contains the uploaded filename; the generic “Files” pill is no longer treated as proof of attachment.\n- Inline prompt commit: verification now matches on a normalized prefix and logs the last user turn + counts when commit fails, reducing false negatives for inline\u002Ffile-paste runs.\n\n## Fixed\n- Inline fallback (pasting file contents) now reliably submits and captures the user turn; headful smoke confirms the marker text is echoed back.\n\n(Re-release of 0.5.5)\n","2025-12-09T22:00:06",{"id":237,"version":238,"summary_zh":239,"released_at":240},271973,"v0.5.4","## Changed\n- Docs: README now explicitly warns against `pnpx @steipete\u002Foracle` (pnpx cache breaks sqlite bindings); use `npx -y @steipete\u002Foracle` instead. Thanks Xuanwo for flagging this.\n- Browser uploads: stick to the single reliable file-input path (no drag\u002Fdrop fallbacks), wait for the composer to render the new “N files” pill\u002Fremove-card UI before sending, and prefer non-image inputs. Thanks Peter for the repros and screenshots that caught the regressions.\n\n## Fixed\n- API fallback: gpt-5.1-pro API runs now automatically downgrade to gpt-5.0-pro with a one-line notice (5.1 Pro is not yet available via API).\n- Browser uploads: detect ChatGPT’s composer attachment chip (not echoed in the last user turn) to avoid false “Attachment did not appear” failures. Thanks Mariano Belinky (@mbelinky) for the fix.\n- Browser interruption: if the user\u002Fagent sends SIGINT\u002FSIGTERM\u002FSIGQUIT while the assistant response is still pending, Oracle leaves Chrome running, writes runtime hints, and logs how to reattach with `oracle session \u003Cslug>` instead of killing the browser mid-run.\n- Browser uploads (ChatGPT UI 2025-12): wait for DOM ready, avoid duplicate uploads, and block Send until the attachment chip\u002Ffile name (or “N files” pill) is visible so files aren’t sent empty or multiple times.\n- Browser i18n: stop-button detection now uses data-testid instead of English `aria-label`; send\u002Finput\u002F+ selectors favor data-testid\u002Fstructural cues to work across localized UIs.\n","2025-12-08T18:04:14",{"id":242,"version":243,"summary_zh":244,"released_at":245},271974,"v0.5.3","- `oracle` with no arguments now prints the help\u002Fusage banner; launch the interactive UI explicitly via `oracle tui` (keeps `ORACLE_FORCE_TUI` for automation\u002Ftests). README updated to match.\n- TUI exits gracefully when the terminal drops raw mode (e.g., `setRawMode EIO` after pager issues) and shows a hint to run `stty sane`.\n- Ctrl+C in the TUI menu now exits cleanly without printing the paging error loop.\n- Exit banner is printed once when leaving the TUI, preventing duplicate \"Closing the book\" messages after SIGINT or exit actions.\n","2025-12-06T23:39:26",{"id":247,"version":248,"summary_zh":249,"released_at":250},271975,"v0.5.2","## Highlights\n- Browser click automation now uses a shared pointer\u002Fmouse dispatch for send\u002Fmodel\u002Fanswer-now\u002Fcopy\u002Fstop, fixing blank\u002Fignored clicks in React\u002FProseMirror UIs. Community contribution: Mike Demarais (PR #30).\n- Attachments are verified as visible before sending (covers WKWebView\u002Fbrowser runs where files were selected but not attached), plus refreshed browser smokes for inline + upload paths.\n- Updated Inquirer to 13.x and aligned TUI `select` prompts with the latest API.\n- Browser config defaults from `~\u002F.oracle\u002Fconfig.json` now apply when CLI flags are untouched, fixing missing Chrome path\u002Fprofile issues.\n\n## Checks\n- lint, typecheck, test, browser smokes, live suites (API\u002FGrok\u002FGemini\u002FClaude\u002FOpenRouter), and release smoke (`npx @steipete\u002Foracle@0.5.2 --dry-run`).\n","2025-12-06T21:15:20"]