oracle-autoconnect is a fork-oriented prototype derived from steipete/oracle.
It keeps Oracle's useful workflow for:
- prompt and file bundling
- include/exclude glob expansion with
.gitignorebehavior - dry-run summary
- file token reporting
- slugged session persistence
- session attach / reattach
- render / copy manual fallback
It deliberately replaces Oracle's browser transport with Chrome DevTools MCP auto-connect.
Upstream Oracle browser mode is built around raw CDP, profile handling, and cookie sync. This fork does not use those as the primary path.
oracle-autoconnect v1:
- attaches through
chrome-devtools-mcp --autoConnect - reuses a signed-in, already-running Chrome session
- relies on Chrome's approval dialog and automation banner
- stores page ownership with
window.name = "oracle-autoconnect:<slug>" - reattaches by saved page id, then saved
window.name, then saved conversation URL
Deferred in v1:
- API engine
- remote browser service
- raw CDP attach
- cookie scraping
- cloned Chrome profiles
- Gemini-specific browser flow
git clone https://github.com/steipete/oracle /Users/brianglendenning/SoftwareProjects/oracle-fork
cd /Users/brianglendenning/SoftwareProjects/oracle-fork
git remote rename origin upstream
npx -y pnpm install
npx -y pnpm buildOptional global launcher for use from any worktree:
mkdir -p ~/.local/bin
cat > ~/.local/bin/oracle-autoconnect <<'EOF'
#!/bin/sh
exec node "/Users/brianglendenning/SoftwareProjects/oracle-fork/dist/bin/oracle-autoconnect.js" "$@"
EOF
chmod +x ~/.local/bin/oracle-autoconnect~/.local/bin is already on this machine's PATH, so agents can then invoke oracle-autoconnect ... from arbitrary directories.
- Start Chrome normally.
- Open
chrome://inspect/#remote-debugging. - Enable remote debugging.
- Sign into ChatGPT in the Chrome profile you want to reuse.
- Leave Chrome running.
Detailed flow: docs/browser-mode.md
From any working directory on this machine, invoke:
oracle-autoconnect ...If the global launcher is not installed yet, the local-clone fallback is:
node ./dist/bin/oracle-autoconnect.js ...Dry-run summary:
node ./dist/bin/oracle-autoconnect.js \
--dry-run summary \
-p "Review the storage layer" \
--file "src/**/*.ts"Files report:
node ./dist/bin/oracle-autoconnect.js \
--files-report \
-p "Review the storage layer" \
--file "src/**/*.ts"Browser run:
node ./dist/bin/oracle-autoconnect.js \
--engine browser \
-p "Review the storage layer" \
--file "src/**/*.ts"Manual render/copy fallback:
node ./dist/bin/oracle-autoconnect.js \
--render --copy \
-p "Review the storage layer" \
--file "src/**/*.ts"Status and session attach:
oracle-autoconnect status --hours 72
oracle-autoconnect session <slug> --render
oracle-autoconnect restart <slug>
oracle-autoconnect --followup <slug> -p "Follow up on the previous result." --file src/browser/reattach.ts--engine browser--chatgpt-url--browser-timeout--browser-input-timeout--browser-approval-timeout--browser-chrome-channel--browser-model-strategy--browser-thinking-time--browser-attachments--browser-inline-files--browser-bundle-files--dry-run--files-report--render--copy
Rejected with guidance in v1:
--engine api--browser-chrome-profile--browser-cookie-path--browser-no-cookie-sync--browser-inline-cookies*--browser-manual-login*--browser-port--browser-debug-port--remote-chrome--remote-host--remote-token
Primary types:
BrowserTransportBrowserSessionstate persisted throughBrowserRuntimeMetadataChatGPTDriver
Main implementation files:
- src/browser/index.ts
- src/browser/chatgptDriver.ts
- src/browser/transport/chromeDevtoolsMcpTransport.ts
- src/browser/reattach.ts
- src/browser/prompt.ts
Design notes: docs/architecture.md
Automated checks:
npx -y pnpm buildnpx -y pnpm test
Manual smoke examples:
node ./dist/bin/oracle-autoconnect.js --help
node ./dist/bin/oracle-autoconnect.js --dry-run summary -p "What does this file do?" --file src/browser/reattach.ts
node ./dist/bin/oracle-autoconnect.js --render --copy -p "Summarize this file in one sentence." --file src/browser/reattach.ts
node ./dist/bin/oracle-autoconnect.js --engine browser -p "Answer in one sentence. What file defines resumeBrowserSession?" --file src/browser/reattach.tsLive Chrome/ChatGPT attach still requires a local signed-in Chrome session with remote debugging enabled.