[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73893":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},73893,"oracle","steipete\u002Foracle","steipete","Ask the oracle when you're stuck. Invoke GPT-5 Pro with a custom context and files.","https:\u002F\u002Faskoracle.sh",null,"TypeScript",2382,254,13,4,0,11,31,132,33,104.72,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34],"agents","ai","anthropic","gemini-pro","gpt-5-pro","openai","opus","sonnet","2026-06-12 04:01:12","# oracle 🧿 — Whispering your tokens to the silicon sage\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002FREADME-header.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.5 Pro (default), GPT-5.5, GPT-5.4 Pro, 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.6, 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.5 Pro without any API keys — it automates your Chrome browser directly.\n\n### First-time login\n\nRun this once to create Oracle's private automation profile and log into ChatGPT. This profile is separate from your normal Chrome profile. 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 24+. 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# Check provider routing\u002Freadiness before an API panel\nnpx -y @steipete\u002Foracle doctor --providers --models gpt-5.5-pro,gemini-3-pro,claude-4.6-sonnet\n\n# Multi-model advisory panel with recoverable partial success\nnpx -y @steipete\u002Foracle --models gpt-5.5-pro,gemini-3-pro,claude-4.6-sonnet \\\n  --allow-partial --write-output \u002Ftmp\u002Fpanel.md \\\n  -p \"Review the naming options\" --file docs\u002Fnaming.md\n\n# Trace startup and time-to-first-output\nnpx -y @steipete\u002Foracle --perf-trace --perf-trace-path \u002Ftmp\u002Foracle-perf.json \\\n  --dry-run summary -p \"Quick smoke\"\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# Add explicit shared context to a ChatGPT Project without deleting anything\nnpx -y @steipete\u002Foracle project-sources add \\\n  --chatgpt-url \"https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-p-example\u002Fproject\" \\\n  --browser-manual-login \\\n  --file docs\u002Farchitecture.md \\\n  --dry-run\n\n# Browser multi-turn consult in one ChatGPT conversation\nnpx -y @steipete\u002Foracle --engine browser --model gpt-5.5-pro \\\n  -p \"Review this migration plan\" --file docs\u002Fmigration.md \\\n  --browser-follow-up \"Challenge your previous recommendation\" \\\n  --browser-follow-up \"Give the final decision\"\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.6 \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- Browser artifacts: browser sessions save `transcript.md` and generated artifacts under `~\u002F.oracle\u002Fsessions\u002F\u003Cid>\u002Fartifacts\u002F`. Deep Research saves `deep-research-report.md` when the report surface is captured; ChatGPT-generated images are downloaded with the active browser cookies when image URLs are present.\n- Browser archiving: by default, successful non-project, non-Deep-Research, non-multi-turn ChatGPT one-shots are archived after local artifacts are saved. Use `--browser-archive never` to disable or `--browser-archive always` to force archiving after a successful browser run. Archived chats remain manageable in ChatGPT.\n- Conversation mode guidance: use one-shot browser runs for narrow bug reports or quick file-set reviews; use explicit browser follow-ups for ambiguous architecture\u002Fproduct tradeoffs where a challenge pass and final decision are valuable; use Deep Research for broad public-web questions that need citations. Oracle never invents follow-ups automatically.\n- Project Sources: `oracle project-sources list|add --chatgpt-url \u003Cproject-url>` manages the Project Sources tab in ChatGPT browser mode. v1 is append-only (`list`, `add`, `--dry-run`) so agents can share explicit project context without deleting or replacing user sources.\n- Fast failure: root runs without a prompt exit nonzero after printing help; `--dry-run` conflicts with `--render` \u002F `--render-markdown`; foreground API runs exit 130 on Ctrl-C while browser cleanup and session recovery still run.\n- Performance traces: `--perf-trace` \u002F `ORACLE_PERF_TRACE=1` writes JSON timing marks for startup, root command, first output, and exit. `--perf-trace-path` or `--perf-trace=\u002Ftmp\u002Foracle.json` selects the path; detached API children write a session-suffixed sidecar trace.\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- Claude Code on the same Mac as a signed-in ChatGPT browser can generate a local config directly:\n\n```bash\noracle bridge claude-config --local-browser > .mcp.json\n```\n\n- In MCP `consult`, use `preset: \"chatgpt-pro-heavy\"` for ChatGPT browser mode with `gpt-5.5-pro` and Pro Extended thinking. Add `dryRun: true` to inspect the resolved run without creating a session or touching Chrome.\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- Claude Code \u002F MCP browser consults can use the `chatgpt-pro-heavy` preset for a compact ChatGPT Pro second-opinion workflow.\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; use `--provider openai` \u002F `--no-azure` to force first-party OpenAI when Azure env vars are present.\n- Redacted provider checks via `oracle doctor --providers`, `--route`, and `--preflight` before spending API time.\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## API provider checks\n\nUse these before expensive API or multi-model runs:\n\n```bash\noracle doctor --providers --models gpt-5.4,claude-4.6-sonnet,gemini-3-pro\noracle --preflight --models gpt-5.4,gemini-3-pro\noracle --provider openai --route --model gpt-5.4\n```\n\n`doctor` and `--preflight` print redacted readiness only: provider route, base host, key source, Azure state, and local configuration errors. `--route` shows the selected route and exits before creating a session. If Azure env\u002Fconfig is present but you want first-party OpenAI, add `--provider openai` or `--no-azure`.\n\nFor advisory panels where one good answer is useful, combine partial success with explicit output files:\n\n```bash\noracle \\\n  --models gpt-5.4,claude-4.6-sonnet,gemini-3-pro \\\n  --allow-partial \\\n  --write-output \u002Ftmp\u002Foracle-panel.md \\\n  -p \"Compare these naming options\"\n```\n\nSuccessful models write per-model files such as `\u002Ftmp\u002Foracle-panel.gpt-5.4.md`; Oracle also writes `\u002Ftmp\u002Foracle-panel.oracle.json` with successes, failures, output paths, and provider failure categories.\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## Calmer browser runs\n\nBrowser automation can open or control Chrome, so dry-runs and live runs print a short browser control plan before touching ChatGPT. Use it to choose the least disruptive path for shared desktops and agent-driven consults.\n\n- `--dry-run summary --engine browser ...` previews whether Oracle will launch visible Chrome, hide a new window, attach to an existing browser, or use remote Chrome.\n- `--browser-attach-running` and `--remote-chrome \u003Chost:port>` are the calmest options when a signed-in Chrome is already running with DevTools enabled.\n- `--browser-hide-window` is best-effort: Chrome can briefly take focus before Oracle hides it.\n- Long GPT-5.5 Pro browser consults are normal. Use `--heartbeat`, `oracle status`, and `oracle session \u003Cid>` instead of starting a duplicate run if the host agent appears to be waiting.\n- Successful manual-profile runs close Oracle's own ChatGPT tab and clean up leftover blank startup tabs when no other Oracle browser slots are active. Incomplete runs leave the tab open so `oracle session \u003Cid>` can reattach.\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.5-pro` default, `gpt-5.5`, `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`, `gemini-3.1-pro` API-only, `gemini-3-pro`, `claude-4.6-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 or Temporary Chat URL (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-attach-running`                                      | Reuse your current local browser session through local `DevToolsActivePort` discovery; Oracle opens a dedicated tab instead of launching Chrome (defaults to `127.0.0.1:9222`, or combine with `--remote-chrome \u003Chost:port>` to hint a different local endpoint).                                                                         |\n| `--browser-tab \u003Cref>`                                           | Reuse an existing ChatGPT tab by `current`, target id, URL, or title substring instead of opening a new tab.                                                                                                                                                                                                                              |\n| `--browser-thinking-time \u003Clight\\|standard\\|extended\\|heavy>`    | Set ChatGPT thinking-time intensity (browser; Thinking\u002FPro models only).                                                                                                                                                                                                                                                                  |\n| `--browser-research deep`                                       | Activate ChatGPT Deep Research for broad web research and cited reports (browser only).                                                                                                                                                                                                                                                   |\n| `--browser-follow-up \u003Cprompt>`                                  | Browser-only multi-turn consult: submit an additional prompt in the same ChatGPT conversation after the initial answer. Repeat for challenge\u002Frevision\u002Ffinal-decision passes. Not supported with Deep Research mode.                                                                                                                       |\n| `--browser-archive \u003Cauto\\|always\\|never>`                       | Archive completed ChatGPT browser conversations after local artifacts are saved. `auto` archives successful one-shot chats only, and skips project, Deep Research, multi-turn, failed, and incomplete sessions.                                                                                                                           |\n| `--browser-attachments \u003Cauto\\|never\\|always>`                   | Control browser file delivery: `auto` pastes small text files inline and uploads larger bundles, `never` always pastes inline, and `always` uploads files as ChatGPT attachments.                                                                                                                                                         |\n| `--browser-bundle-files`, `--browser-bundle-format \u003Ctext\\|zip>` | Bundle browser uploads into one attachment. `text` keeps the existing single Markdown-style text bundle; `zip` preserves individual file names inside one ZIP upload.                                                                                                                                                                     |\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| `--heartbeat \u003Cseconds>`                                         | Emit API and browser progress heartbeats. Browser mode reports ChatGPT Thinking\u002FReasoning sidecar liveness metadata when available, without logging reasoning text.                                                                                                                                                                       |\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| `--browser-max-concurrent-tabs`                                 | Soft limit for simultaneous ChatGPT tabs sharing one manual-login profile (default 3).                                                                                                                                                                                                                                                    |\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\\|duration\\|auto>`                           | Overall API deadline (auto = 60m for pro, 120s otherwise; durations like `10m` derive HTTP\u002Fstale-session timeouts unless overridden).                                                                                                                                                                                                     |\n| `--background`, `--no-background`                               | Force Responses API background mode (create + retrieve) for API runs.                                                                                                                                                                                                                                                                     |\n| `--http-timeout \u003Cms\\|s\\|m\\|h>`                                  | Override the HTTP client timeout; if omitted, explicit `--timeout` values are reused for transport.                                                                                                                                                                                                                                       |\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>` and writes `\u003Cstem>.oracle.json`). Browser sessions also save transcripts and generated artifacts under `~\u002F.oracle\u002Fsessions\u002F\u003Cid>\u002Fartifacts\u002F`.                                                                                                                                      |\n| `--allow-partial`, `--partial \u003Cfail\\|ok>`                       | Multi-model failure policy. Default `fail` exits 1 after printing a structured partial summary; `ok` exits 0 when at least one model succeeds.                                                                                                                                                                                            |\n| `--preflight`                                                   | Check redacted provider readiness for requested API model(s), then exit without creating a session.                                                                                                                                                                                                                                       |\n| `--perf-trace`, `--perf-trace-path \u003Cpath>`                      | Write startup\u002Ffirst-output timing trace JSON; also accepts `--perf-trace=\u002Ftmp\u002Foracle.json`, `ORACLE_PERF_TRACE=1`, or `ORACLE_PERF_TRACE=\u002Ftmp\u002Foracle.json`.                                                                                                                                                                               |\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), or when combined with `--browser-attach-running` use this host:port as the local attach hint.                                                                                                                                                                                      |\n| `--youtube \u003Curl>`                                               | YouTube video URL to analyze (Gemini browser mode).                                                                                                                                                                                                                                                                                       |\n| `--generate-image \u003Cfile>`                                       | Generate image and save to file (Gemini browser mode; ChatGPT browser mode saves downloadable image artifacts when present). Extra ChatGPT images save as numbered siblings.                                                                                                                                                              |\n| `--edit-image \u003Cfile>`                                           | Edit existing image with `--output` (Gemini browser mode). For ChatGPT browser mode, attach source images with `--file` and use `--generate-image` for the output path.                                                                                                                                                                   |\n| `--provider openai\\|azure\\|auto`, `--no-azure`, `--route`       | Choose or inspect API provider routing; `openai` \u002F `--no-azure` ignores Azure env\u002Fconfig for the run.                                                                                                                                                                                                                                     |\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.5-pro\",\n  engine: \"api\",\n  filesReport: true,\n  browser: {\n    chatgptUrl: \"https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-p-691edc9fec088191b553a35093da1ea8-oracle\u002Fproject\",\n    archiveConversations: \"auto\",\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\nWhen several agents share one manual-login ChatGPT profile, Oracle coordinates browser tab slots through that profile. Extra runs wait and log that they are waiting for a ChatGPT browser slot instead of crashing because another Codex\u002FClaude\u002FCLI run is already using the browser. For the most reliable shared-agent setup, keep one signed-in Chrome open with remote debugging and point callers at it with `--remote-chrome \u003Chost:port>`; direct manual-login launches are guarded so parallel callers reuse the first reachable Chrome instead of racing separate launches on the same profile.\n\nAdvanced flags\n\n| Area         | Flags                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Browser      | `--browser-manual-login`, `--browser-attach-running`, `--browser-thinking-time`, `--browser-research`, `--browser-follow-up`, `--browser-archive`, `--browser-timeout`, `--browser-input-timeout`, `--browser-recheck-delay`, `--browser-recheck-timeout`, `--browser-reuse-wait`, `--browser-profile-lock-timeout`, `--browser-max-concurrent-tabs`, `--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-bundle-format`, `--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 是一个能够调用 GPT-5 Pro 及其他多种 AI 模型的工具，允许用户通过自定义上下文和文件来获取更准确的回答。其核心功能包括支持多种AI模型（如GPT-5系列、Gemini Pro等），并提供浏览器自动化模式以无需API密钥直接使用GPT-5.5 Pro。此外，它还具备处理单次或多次模型查询的能力。适用于需要基于具体文档或代码进行复杂问题解决的场景，比如软件开发中的代码审查、文档分析等。Oracle 采用TypeScript编写，支持macOS、Linux及Windows平台，并遵循MIT许可协议开放源码。",2,"2026-06-11 03:47:48","high_star"]