@indykish/oracle 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +215 -0
- package/assets-oracle-icon.png +0 -0
- package/dist/bin/oracle-cli.js +1252 -0
- package/dist/bin/oracle-mcp.js +6 -0
- package/dist/scripts/agent-send.js +147 -0
- package/dist/scripts/browser-tools.js +536 -0
- package/dist/scripts/check.js +21 -0
- package/dist/scripts/debug/extract-chatgpt-response.js +53 -0
- package/dist/scripts/docs-list.js +110 -0
- package/dist/scripts/git-policy.js +125 -0
- package/dist/scripts/run-cli.js +14 -0
- package/dist/scripts/runner.js +1378 -0
- package/dist/scripts/test-browser.js +103 -0
- package/dist/scripts/test-remote-chrome.js +68 -0
- package/dist/src/bridge/connection.js +103 -0
- package/dist/src/bridge/userConfigFile.js +28 -0
- package/dist/src/browser/actions/assistantResponse.js +1067 -0
- package/dist/src/browser/actions/attachmentDataTransfer.js +138 -0
- package/dist/src/browser/actions/attachments.js +1910 -0
- package/dist/src/browser/actions/domEvents.js +19 -0
- package/dist/src/browser/actions/modelSelection.js +485 -0
- package/dist/src/browser/actions/navigation.js +445 -0
- package/dist/src/browser/actions/promptComposer.js +485 -0
- package/dist/src/browser/actions/remoteFileTransfer.js +37 -0
- package/dist/src/browser/actions/thinkingTime.js +206 -0
- package/dist/src/browser/chromeLifecycle.js +344 -0
- package/dist/src/browser/config.js +103 -0
- package/dist/src/browser/constants.js +71 -0
- package/dist/src/browser/cookies.js +191 -0
- package/dist/src/browser/detect.js +164 -0
- package/dist/src/browser/domDebug.js +36 -0
- package/dist/src/browser/index.js +1741 -0
- package/dist/src/browser/modelStrategy.js +13 -0
- package/dist/src/browser/pageActions.js +5 -0
- package/dist/src/browser/policies.js +43 -0
- package/dist/src/browser/profileState.js +280 -0
- package/dist/src/browser/prompt.js +152 -0
- package/dist/src/browser/promptSummary.js +20 -0
- package/dist/src/browser/reattach.js +186 -0
- package/dist/src/browser/reattachHelpers.js +382 -0
- package/dist/src/browser/sessionRunner.js +119 -0
- package/dist/src/browser/types.js +1 -0
- package/dist/src/browser/utils.js +122 -0
- package/dist/src/browserMode.js +1 -0
- package/dist/src/cli/bridge/claudeConfig.js +54 -0
- package/dist/src/cli/bridge/client.js +73 -0
- package/dist/src/cli/bridge/codexConfig.js +43 -0
- package/dist/src/cli/bridge/doctor.js +107 -0
- package/dist/src/cli/bridge/host.js +259 -0
- package/dist/src/cli/browserConfig.js +278 -0
- package/dist/src/cli/browserDefaults.js +81 -0
- package/dist/src/cli/bundleWarnings.js +9 -0
- package/dist/src/cli/clipboard.js +10 -0
- package/dist/src/cli/detach.js +11 -0
- package/dist/src/cli/dryRun.js +105 -0
- package/dist/src/cli/duplicatePromptGuard.js +14 -0
- package/dist/src/cli/engine.js +41 -0
- package/dist/src/cli/errorUtils.js +9 -0
- package/dist/src/cli/format.js +13 -0
- package/dist/src/cli/help.js +77 -0
- package/dist/src/cli/hiddenAliases.js +22 -0
- package/dist/src/cli/markdownBundle.js +17 -0
- package/dist/src/cli/markdownRenderer.js +97 -0
- package/dist/src/cli/notifier.js +306 -0
- package/dist/src/cli/options.js +281 -0
- package/dist/src/cli/oscUtils.js +2 -0
- package/dist/src/cli/promptRequirement.js +17 -0
- package/dist/src/cli/renderFlags.js +9 -0
- package/dist/src/cli/renderOutput.js +26 -0
- package/dist/src/cli/rootAlias.js +30 -0
- package/dist/src/cli/runOptions.js +78 -0
- package/dist/src/cli/sessionCommand.js +111 -0
- package/dist/src/cli/sessionDisplay.js +567 -0
- package/dist/src/cli/sessionRunner.js +602 -0
- package/dist/src/cli/sessionTable.js +92 -0
- package/dist/src/cli/tagline.js +258 -0
- package/dist/src/cli/tui/index.js +486 -0
- package/dist/src/cli/writeOutputPath.js +21 -0
- package/dist/src/config.js +26 -0
- package/dist/src/gemini-web/client.js +328 -0
- package/dist/src/gemini-web/executor.js +285 -0
- package/dist/src/gemini-web/index.js +1 -0
- package/dist/src/gemini-web/types.js +1 -0
- package/dist/src/heartbeat.js +43 -0
- package/dist/src/mcp/server.js +40 -0
- package/dist/src/mcp/tools/consult.js +290 -0
- package/dist/src/mcp/tools/sessionResources.js +75 -0
- package/dist/src/mcp/tools/sessions.js +105 -0
- package/dist/src/mcp/types.js +22 -0
- package/dist/src/mcp/utils.js +37 -0
- package/dist/src/oracle/background.js +141 -0
- package/dist/src/oracle/claude.js +101 -0
- package/dist/src/oracle/client.js +197 -0
- package/dist/src/oracle/config.js +227 -0
- package/dist/src/oracle/errors.js +132 -0
- package/dist/src/oracle/files.js +378 -0
- package/dist/src/oracle/finishLine.js +32 -0
- package/dist/src/oracle/format.js +30 -0
- package/dist/src/oracle/fsAdapter.js +10 -0
- package/dist/src/oracle/gemini.js +195 -0
- package/dist/src/oracle/logging.js +36 -0
- package/dist/src/oracle/markdown.js +46 -0
- package/dist/src/oracle/modelResolver.js +183 -0
- package/dist/src/oracle/multiModelRunner.js +153 -0
- package/dist/src/oracle/oscProgress.js +24 -0
- package/dist/src/oracle/promptAssembly.js +13 -0
- package/dist/src/oracle/request.js +50 -0
- package/dist/src/oracle/run.js +596 -0
- package/dist/src/oracle/runUtils.js +31 -0
- package/dist/src/oracle/tokenEstimate.js +37 -0
- package/dist/src/oracle/tokenStats.js +39 -0
- package/dist/src/oracle/tokenStringifier.js +24 -0
- package/dist/src/oracle/types.js +1 -0
- package/dist/src/oracle.js +12 -0
- package/dist/src/oracleHome.js +13 -0
- package/dist/src/remote/client.js +129 -0
- package/dist/src/remote/health.js +113 -0
- package/dist/src/remote/remoteServiceConfig.js +31 -0
- package/dist/src/remote/server.js +533 -0
- package/dist/src/remote/types.js +1 -0
- package/dist/src/sessionManager.js +637 -0
- package/dist/src/sessionStore.js +56 -0
- package/dist/src/version.js +39 -0
- package/dist/vendor/oracle-notifier/OracleNotifier.swift +45 -0
- package/dist/vendor/oracle-notifier/README.md +24 -0
- package/dist/vendor/oracle-notifier/build-notifier.sh +93 -0
- package/package.json +115 -0
- package/vendor/oracle-notifier/OracleNotifier.swift +45 -0
- package/vendor/oracle-notifier/README.md +24 -0
- package/vendor/oracle-notifier/build-notifier.sh +93 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
\g<1>2026 Peter Steinberger
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# oracle 🧿 — Whispering your tokens to the silicon sage
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="./README-header.png" alt="Oracle CLI header banner" width="1100">
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://www.npmjs.com/package/@steipete/oracle"><img src="https://img.shields.io/npm/v/@steipete/oracle?style=for-the-badge&logo=npm&logoColor=white" alt="npm version"></a>
|
|
9
|
+
<a href="https://github.com/steipete/oracle/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/steipete/oracle/ci.yml?branch=main&style=for-the-badge&label=tests" alt="CI Status"></a>
|
|
10
|
+
<a href="https://github.com/steipete/oracle"><img src="https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-blue?style=for-the-badge" alt="Platforms"></a>
|
|
11
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=for-the-badge" alt="MIT License"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
Oracle bundles your prompt and files so another AI can answer with real context. It speaks GPT-5.1 Pro (default alias to GPT-5.2 Pro on the API), GPT-5.1 Codex (API-only), GPT-5.1, GPT-5.2, 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.
|
|
15
|
+
|
|
16
|
+
## Quick start
|
|
17
|
+
|
|
18
|
+
Install globally: `npm install -g @steipete/oracle`
|
|
19
|
+
Homebrew: `brew install steipete/tap/oracle`
|
|
20
|
+
|
|
21
|
+
Requires Node 22+. Or use `npx -y @steipete/oracle …` (or pnpx).
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Copy the bundle and paste into ChatGPT
|
|
25
|
+
npx -y @steipete/oracle --render --copy -p "Review the TS data layer for schema drift" --file "src/**/*.ts,*/*.test.ts"
|
|
26
|
+
|
|
27
|
+
# Minimal API run (expects OPENAI_API_KEY in your env)
|
|
28
|
+
npx -y @steipete/oracle -p "Write a concise architecture note for the storage adapters" --file src/storage/README.md
|
|
29
|
+
|
|
30
|
+
# Multi-model API run
|
|
31
|
+
npx -y @steipete/oracle -p "Cross-check the data layer assumptions" --models gpt-5.1-pro,gemini-3-pro --file "src/**/*.ts"
|
|
32
|
+
|
|
33
|
+
# Preview without spending tokens
|
|
34
|
+
npx -y @steipete/oracle --dry-run summary -p "Check release notes" --file docs/release-notes.md
|
|
35
|
+
|
|
36
|
+
# Browser run (no API key, will open ChatGPT)
|
|
37
|
+
npx -y @steipete/oracle --engine browser -p "Walk through the UI smoke test" --file "src/**/*.ts"
|
|
38
|
+
|
|
39
|
+
# Gemini browser mode (no API key; uses Chrome cookies from gemini.google.com)
|
|
40
|
+
npx -y @steipete/oracle --engine browser --model gemini-3-pro --prompt "a cute robot holding a banana" --generate-image out.jpg --aspect 1:1
|
|
41
|
+
|
|
42
|
+
# Sessions (list and replay)
|
|
43
|
+
npx -y @steipete/oracle status --hours 72
|
|
44
|
+
npx -y @steipete/oracle session <id> --render
|
|
45
|
+
npx -y @steipete/oracle restart <id>
|
|
46
|
+
|
|
47
|
+
# TUI (interactive, only for humans)
|
|
48
|
+
npx -y @steipete/oracle tui
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
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.
|
|
52
|
+
|
|
53
|
+
## Integration
|
|
54
|
+
|
|
55
|
+
**CLI**
|
|
56
|
+
- 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).
|
|
57
|
+
- Gemini browser mode uses Chrome cookies instead of an API key—just be logged into `gemini.google.com` in Chrome (no Python/venv required).
|
|
58
|
+
- 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).
|
|
59
|
+
- Prefer API mode or `--copy` + manual paste; browser automation is experimental.
|
|
60
|
+
- 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).
|
|
61
|
+
- Remote browser service: `oracle serve` on a signed-in host; clients use `--remote-host/--remote-token`.
|
|
62
|
+
- AGENTS.md/CLAUDE.md:
|
|
63
|
+
```
|
|
64
|
+
- Oracle bundles a prompt plus the right files so another AI (GPT 5 Pro + more) can answer. Use when stuck/bugs/reviewing.
|
|
65
|
+
- Run `npx -y @steipete/oracle --help` once per session before first use.
|
|
66
|
+
```
|
|
67
|
+
- Tip: set `browser.chatgptUrl` in config (or `--chatgpt-url`) to a dedicated ChatGPT project folder so browser runs don’t clutter your main history.
|
|
68
|
+
|
|
69
|
+
**Codex skill**
|
|
70
|
+
- Copy the bundled skill from this repo to your Codex skills folder:
|
|
71
|
+
- `mkdir -p ~/.codex/skills`
|
|
72
|
+
- `cp -R skills/oracle ~/.codex/skills/oracle`
|
|
73
|
+
- Then reference it in your `AGENTS.md`/`CLAUDE.md` so Codex loads it.
|
|
74
|
+
|
|
75
|
+
**MCP**
|
|
76
|
+
- Run the stdio server via `oracle-mcp`.
|
|
77
|
+
- Configure clients via [steipete/mcporter](https://github.com/steipete/mcporter) or `.mcp.json`; see [docs/mcp.md](docs/mcp.md) for connection examples.
|
|
78
|
+
```bash
|
|
79
|
+
npx -y @steipete/oracle oracle-mcp
|
|
80
|
+
```
|
|
81
|
+
- Cursor setup (MCP): drop a `.cursor/mcp.json` like below, then pick “oracle” in Cursor’s MCP sources. See https://cursor.com/docs/context/mcp for UI steps.
|
|
82
|
+
[](https://cursor.com/en-US/install-mcp?name=oracle&config=eyJjb21tYW5kIjoibnB4IC15IEBzdGVpcGV0ZS9vcmFjbGUgb3JhY2xlLW1jcCJ9)
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"oracle": {
|
|
87
|
+
"command": "oracle-mcp",
|
|
88
|
+
"args": []
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Highlights
|
|
94
|
+
|
|
95
|
+
- Bundle once, reuse anywhere (API or experimental browser).
|
|
96
|
+
- Multi-model API runs with aggregated cost/usage, including OpenRouter IDs alongside first-party models.
|
|
97
|
+
- Render/copy bundles for manual paste into ChatGPT when automation is blocked.
|
|
98
|
+
- GPT‑5 Pro API runs detach by default; reattach via `oracle session <id>` / `oracle status` or block with `--wait`.
|
|
99
|
+
- Azure endpoints supported via `--azure-endpoint/--azure-deployment/--azure-api-version` or `AZURE_OPENAI_*` envs.
|
|
100
|
+
- File safety: globs/excludes, size guards, `--files-report`.
|
|
101
|
+
- Sessions you can replay (`oracle status`, `oracle session <id> --render`).
|
|
102
|
+
- Session logs and bundles live in `~/.oracle/sessions` (override with `ORACLE_HOME_DIR`).
|
|
103
|
+
|
|
104
|
+
## Browser auto-reattach (long Pro runs)
|
|
105
|
+
|
|
106
|
+
When 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 <id>` commands.
|
|
107
|
+
|
|
108
|
+
Enable auto-reattach by setting a non-zero interval:
|
|
109
|
+
- `--browser-auto-reattach-delay` — wait before the first retry (e.g. `30s`)
|
|
110
|
+
- `--browser-auto-reattach-interval` — how often to retry (e.g. `2m`)
|
|
111
|
+
- `--browser-auto-reattach-timeout` — per-attempt budget (default `2m`)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
oracle --engine browser \
|
|
115
|
+
--browser-timeout 6m \
|
|
116
|
+
--browser-auto-reattach-delay 30s \
|
|
117
|
+
--browser-auto-reattach-interval 2m \
|
|
118
|
+
--browser-auto-reattach-timeout 2m \
|
|
119
|
+
-p "Run the long UI audit" --file "src/**/*.ts"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Flags you’ll actually use
|
|
123
|
+
|
|
124
|
+
| Flag | Purpose |
|
|
125
|
+
| --- | --- |
|
|
126
|
+
| `-p, --prompt <text>` | Required prompt. |
|
|
127
|
+
| `-f, --file <paths...>` | Attach files/dirs (globs + `!` excludes). |
|
|
128
|
+
| `-e, --engine <api\|browser>` | Choose API or browser (browser is experimental). |
|
|
129
|
+
| `-m, --model <name>` | Built-ins (`gpt-5.1-pro` default, `gpt-5-pro`, `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.2`, `gpt-5.2-instant`, `gpt-5.2-pro`, `gemini-3-pro`, `claude-4.5-sonnet`, `claude-4.1-opus`) plus any OpenRouter id (e.g., `minimax/minimax-m2`, `openai/gpt-4o-mini`). |
|
|
130
|
+
| `--models <list>` | Comma-separated API models (mix built-ins and OpenRouter ids) for multi-model runs. |
|
|
131
|
+
| `--base-url <url>` | Point API runs at LiteLLM/Azure/OpenRouter/etc. |
|
|
132
|
+
| `--chatgpt-url <url>` | Target a ChatGPT workspace/folder (browser). |
|
|
133
|
+
| `--browser-model-strategy <select\|current\|ignore>` | Control ChatGPT model selection in browser mode (current keeps the active model; ignore skips the picker). |
|
|
134
|
+
| `--browser-manual-login` | Skip cookie copy; reuse a persistent automation profile and wait for manual ChatGPT login. |
|
|
135
|
+
| `--browser-thinking-time <light\|standard\|extended\|heavy>` | Set ChatGPT thinking-time intensity (browser; Thinking/Pro models only). |
|
|
136
|
+
| `--browser-port <port>` | Pin the Chrome DevTools port (WSL/Windows firewall helper). |
|
|
137
|
+
| `--browser-inline-cookies[(-file)] <payload|path>` | Supply cookies without Chrome/Keychain (browser). |
|
|
138
|
+
| `--browser-timeout`, `--browser-input-timeout` | Control overall/browser input timeouts (supports h/m/s/ms). |
|
|
139
|
+
| `--browser-recheck-delay`, `--browser-recheck-timeout` | Delayed recheck for long Pro runs: wait then retry capture after timeout (supports h/m/s/ms). |
|
|
140
|
+
| `--browser-reuse-wait` | Wait for a shared Chrome profile before launching (parallel browser runs). |
|
|
141
|
+
| `--browser-profile-lock-timeout` | Wait for the shared manual-login profile lock before sending (serializes parallel runs). |
|
|
142
|
+
| `--render`, `--copy` | Print and/or copy the assembled markdown bundle. |
|
|
143
|
+
| `--wait` | Block for background API runs (e.g., GPT‑5.1 Pro) instead of detaching. |
|
|
144
|
+
| `--timeout <seconds\|auto>` | Overall API deadline (auto = 60m for pro, 120s otherwise). |
|
|
145
|
+
| `--background`, `--no-background` | Force Responses API background mode (create + retrieve) for API runs. |
|
|
146
|
+
| `--http-timeout <ms\|s\|m\|h>` | HTTP client timeout (default 20m). |
|
|
147
|
+
| `--zombie-timeout <ms\|s\|m\|h>` | Override stale-session cutoff used by `oracle status`. |
|
|
148
|
+
| `--zombie-last-activity` | Use last log activity to detect stale sessions. |
|
|
149
|
+
| `--write-output <path>` | Save only the final answer (multi-model adds `.<model>`). |
|
|
150
|
+
| `--files-report` | Print per-file token usage. |
|
|
151
|
+
| `--dry-run [summary\|json\|full]` | Preview without sending. |
|
|
152
|
+
| `--remote-host`, `--remote-token` | Use a remote `oracle serve` host (browser). |
|
|
153
|
+
| `--remote-chrome <host:port>` | Attach to an existing remote Chrome session (browser). |
|
|
154
|
+
| `--youtube <url>` | YouTube video URL to analyze (Gemini browser mode). |
|
|
155
|
+
| `--generate-image <file>` | Generate image and save to file (Gemini browser mode). |
|
|
156
|
+
| `--edit-image <file>` | Edit existing image with `--output` (Gemini browser mode). |
|
|
157
|
+
| `--azure-endpoint`, `--azure-deployment`, `--azure-api-version` | Target Azure OpenAI endpoints (picks Azure client automatically). |
|
|
158
|
+
|
|
159
|
+
## Configuration
|
|
160
|
+
|
|
161
|
+
Put defaults in `~/.oracle/config.json` (JSON5). Example:
|
|
162
|
+
```json5
|
|
163
|
+
{
|
|
164
|
+
model: "gpt-5.1-pro",
|
|
165
|
+
engine: "api",
|
|
166
|
+
filesReport: true,
|
|
167
|
+
browser: {
|
|
168
|
+
chatgptUrl: "https://chatgpt.com/g/g-p-691edc9fec088191b553a35093da1ea8-oracle/project"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
Use `browser.chatgptUrl` (or the legacy alias `browser.url`) to target a specific ChatGPT workspace/folder for browser automation.
|
|
173
|
+
See [docs/configuration.md](docs/configuration.md) for precedence and full schema.
|
|
174
|
+
|
|
175
|
+
Advanced flags
|
|
176
|
+
|
|
177
|
+
| Area | Flags |
|
|
178
|
+
| --- | --- |
|
|
179
|
+
| 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` |
|
|
180
|
+
| Run control | `--background`, `--no-background`, `--http-timeout`, `--zombie-timeout`, `--zombie-last-activity` |
|
|
181
|
+
| Azure/OpenAI | `--azure-endpoint`, `--azure-deployment`, `--azure-api-version`, `--base-url` |
|
|
182
|
+
|
|
183
|
+
Remote browser example
|
|
184
|
+
```bash
|
|
185
|
+
# Host (signed-in Chrome): launch serve
|
|
186
|
+
oracle serve --host 0.0.0.0:9473 --token secret123
|
|
187
|
+
|
|
188
|
+
# Client: target that host
|
|
189
|
+
oracle --engine browser --remote-host 192.168.1.10:9473 --remote-token secret123 -p "Run the UI smoke" --file "src/**/*.ts"
|
|
190
|
+
|
|
191
|
+
# If cookies can’t sync, pass them inline (JSON/base64)
|
|
192
|
+
oracle --engine browser --browser-inline-cookies-file ~/.oracle/cookies.json -p "Run the UI smoke" --file "src/**/*.ts"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Session management
|
|
196
|
+
```bash
|
|
197
|
+
# Prune stored sessions (default path ~/.oracle/sessions; override ORACLE_HOME_DIR)
|
|
198
|
+
oracle status --clear --hours 168
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## More docs
|
|
202
|
+
- Bridge (Windows host → Linux client): [docs/bridge.md](docs/bridge.md)
|
|
203
|
+
- Browser mode & forks: [docs/browser-mode.md](docs/browser-mode.md) (includes `oracle serve` remote service), [docs/chromium-forks.md](docs/chromium-forks.md), [docs/linux.md](docs/linux.md)
|
|
204
|
+
- MCP: [docs/mcp.md](docs/mcp.md)
|
|
205
|
+
- OpenAI/Azure/OpenRouter endpoints: [docs/openai-endpoints.md](docs/openai-endpoints.md), [docs/openrouter.md](docs/openrouter.md)
|
|
206
|
+
- Manual smokes: [docs/manual-tests.md](docs/manual-tests.md)
|
|
207
|
+
- Testing: [docs/testing.md](docs/testing.md)
|
|
208
|
+
|
|
209
|
+
If you’re looking for an even more powerful context-management tool, check out https://repoprompt.com
|
|
210
|
+
Name inspired by: https://ampcode.com/news/oracle
|
|
211
|
+
|
|
212
|
+
## More free stuff from steipete
|
|
213
|
+
- ✂️ [Trimmy](https://trimmy.app) — “Paste once, run once.” Flatten multi-line shell snippets so they paste and run.
|
|
214
|
+
- 🟦🟩 [CodexBar](https://codexbar.app) — Keep Codex token windows visible in your macOS menu bar.
|
|
215
|
+
- 🧳 [MCPorter](https://mcporter.dev) — TypeScript toolkit + CLI for Model Context Protocol servers.
|
|
Binary file
|