Skip to content

steipete/oracle

Repository files navigation

oracle 🧿 — Whispering your tokens to the silicon sage

Oracle CLI header banner

npm version CI Status Platforms MIT License

Oracle bundles your prompt and files so another AI can answer with real context. It speaks GPT-5.1 Pro (default), GPT-5.1 Codex (API-only), GPT-5.1, 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; API remains the most reliable path, and --copy is an easy manual fallback.

Quick start

Install globally: npm install -g @steipete/oracle

# Copy the bundle and paste into ChatGPT
npx @steipete/oracle --render --copy -p "Review the TS data layer for schema drift" --file "src/**/*.ts,*/*.test.ts"

# Minimal API run (expects OPENAI_API_KEY in your env)
npx @steipete/oracle -p "Write a concise architecture note for the storage adapters" --file src/storage/README.md

# Multi-model API run
npx @steipete/oracle -p "Cross-check the data layer assumptions" --models gpt-5.1-pro,gemini-3-pro --file "src/**/*.ts"

# Preview without spending tokens
npx @steipete/oracle --dry-run summary -p "Check release notes" --file docs/release-notes.md

# Browser run (no API key, will open ChatGPT)
npx @steipete/oracle --engine browser -p "Walk through the UI smoke test" --file "src/**/*.ts"

# Sessions (list and replay)
npx @steipete/oracle status --hours 72
npx @steipete/oracle session <id> --render

# TUI (interactive, only for humans)
npx @steipete/oracle

Engine 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/--browser-cookie-path if detection fails; on Windows prefer --browser-manual-login or inline cookies if decryption is blocked.

Integration

CLI

  • API mode expects API keys in your environment: OPENAI_API_KEY (GPT-5.x), GEMINI_API_KEY (Gemini 3 Pro), ANTHROPIC_API_KEY (Claude Sonnet 4.5 / Opus 4.1).
  • Prefer API mode or --copy + manual paste; browser automation is experimental.
  • Browser support: stable on macOS; works on Linux (add --browser-chrome-path/--browser-cookie-path when needed) and Windows (manual-login or inline cookies recommended when app-bound cookies block decryption).
  • Remote browser service: oracle serve on a signed-in host; clients use --remote-host/--remote-token.
  • AGENTS.md/CLAUDE.md:
    - Oracle bundles a prompt plus the right files so another AI (GPT 5 Pro + more) can answer. Use when stuck/bugs/reviewing.
    - Run `npx -y @steipete/oracle --help` once per session before first use.
    
  • Tip: set browser.chatgptUrl in config (or --chatgpt-url) to a dedicated ChatGPT project folder so browser runs don’t clutter your main history.

MCP

npx -y @steipete/oracle oracle-mcp
{
  "oracle": {
    "command": "oracle-mcp",
    "args": []
  }
}

Highlights

  • Bundle once, reuse anywhere (API or experimental browser).
  • Multi-model API runs with aggregated cost/usage, including OpenRouter IDs alongside first-party models.
  • Render/copy bundles for manual paste into ChatGPT when automation is blocked.
  • GPT‑5 Pro API runs detach by default; reattach via oracle session <id> / oracle status or block with --wait.
  • Azure endpoints supported via --azure-endpoint/--azure-deployment/--azure-api-version or AZURE_OPENAI_* envs.
  • File safety: globs/excludes, size guards, --files-report.
  • Sessions you can replay (oracle status, oracle session <id> --render).
  • Session logs and bundles live in ~/.oracle/sessions (override with ORACLE_HOME_DIR).

Flags you’ll actually use

Flag Purpose
-p, --prompt <text> Required prompt.
-f, --file <paths...> Attach files/dirs (globs + ! excludes).
-e, --engine <api|browser> Choose API or browser (browser is experimental).
-m, --model <name> Built-ins (gpt-5.1-pro default, gpt-5-pro, gpt-5.1, gpt-5.1-codex, gemini-3-pro, claude-4.5-sonnet, claude-4.1-opus) plus any OpenRouter id (e.g., minimax/minimax-m2, openai/gpt-4o-mini).
--models <list> Comma-separated API models (mix built-ins and OpenRouter ids) for multi-model runs.
--base-url <url> Point API runs at LiteLLM/Azure/OpenRouter/etc.
--chatgpt-url <url> Target a ChatGPT workspace/folder (browser).
--browser-port <port> Pin the Chrome DevTools port (WSL/Windows firewall helper).
`--browser-inline-cookies[(-file)] <payload path>`
--browser-timeout, --browser-input-timeout Control overall/browser input timeouts (supports h/m/s/ms).
--render, --copy Print and/or copy the assembled markdown bundle.
--wait Block for background API runs (e.g., GPT‑5.1 Pro) instead of detaching.
--write-output <path> Save only the final answer (multi-model adds .<model>).
--files-report Print per-file token usage.
--dry-run [summary|json|full] Preview without sending.
--remote-host, --remote-token Use a remote oracle serve host (browser).
--remote-chrome <host:port> Attach to an existing remote Chrome session (browser).
--azure-endpoint, --azure-deployment, --azure-api-version Target Azure OpenAI endpoints (picks Azure client automatically).

Configuration

Put defaults in ~/.oracle/config.json (JSON5). Example:

{
  model: "gpt-5.1-pro",
  engine: "api",
  filesReport: true,
  browser: {
    chatgptUrl: "https://chatgpt.com/g/g-p-691edc9fec088191b553a35093da1ea8-oracle/project"
  }
}

Use browser.chatgptUrl (or the legacy alias browser.url) to target a specific ChatGPT workspace/folder for browser automation. See docs/configuration.md for precedence and full schema.

Advanced flags

Area Flags
Browser --browser-timeout, --browser-input-timeout, --browser-inline-cookies[(-file)], --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
Azure/OpenAI --azure-endpoint, --azure-deployment, --azure-api-version, --base-url

Remote browser example

# Host (signed-in Chrome): launch serve
oracle serve --host 0.0.0.0:9473 --token secret123

# Client: target that host
oracle --engine browser --remote-host 192.168.1.10:9473 --remote-token secret123 -p "Run the UI smoke" --file "src/**/*.ts"

# If cookies can’t sync, pass them inline (JSON/base64)
oracle --engine browser --browser-inline-cookies-file ~/.oracle/cookies.json -p "Run the UI smoke" --file "src/**/*.ts"

Session management

# Prune stored sessions (default path ~/.oracle/sessions; override ORACLE_HOME_DIR)
oracle status --clear --hours 168

More docs

If you’re looking for an even more powerful context-management tool, check out https://repoprompt.com
Name inspired by: https://ampcode.com/news/oracle

More free stuff from steipete

  • ✂️ Trimmy — “Paste once, run once.” Flatten multi-line shell snippets so they paste and run.
  • 🟦🟩 CodexBar — Keep Codex token windows visible in your macOS menu bar.
  • 🧳 MCPorter — TypeScript toolkit + CLI for Model Context Protocol servers.