@oracle-agent/oracle 0.35.38 → 0.35.39

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.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-sessions.mjs +13 -13
  3. package/dist/assets/skills/blocked-page-recovery.md +16 -0
  4. package/dist/assets/skills/browser-use.md +19 -0
  5. package/dist/assets/skills/chrome-profile-browser.md +21 -0
  6. package/dist/assets/skills/oracle-agentic-crypto/SKILL.md +27 -0
  7. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  8. package/dist/assets/skills/oracle-x402/SKILL.md +54 -11
  9. package/dist/assets/skills/web-form-filling.md +19 -0
  10. package/dist/assets/skills/web-research.md +17 -0
  11. package/dist/assets/skills/x-read-browser.md +17 -0
  12. package/dist/assets/skills/xurl.md +1 -1
  13. package/dist/bin/desk-server.mjs +30 -30
  14. package/dist/bin/oracle-data-mcp.mjs +17 -13
  15. package/dist/bin/oracle-public-server.mjs +1 -1
  16. package/dist/bin/oracle-route.mjs +26 -14
  17. package/dist/bin/oracle-scan.mjs +4 -4
  18. package/dist/bin/oracle.mjs +11 -10
  19. package/dist/cli/commands/agent-session.mjs +18 -18
  20. package/dist/cli/commands/auth.mjs +20 -17
  21. package/dist/cli/commands/chat.mjs +231 -228
  22. package/dist/cli/commands/data.mjs +5 -5
  23. package/dist/cli/commands/doctor.mjs +1 -1
  24. package/dist/cli/commands/eval.mjs +154 -152
  25. package/dist/cli/commands/extension-policy.mjs +1 -1
  26. package/dist/cli/commands/follow.mjs +57 -19
  27. package/dist/cli/commands/governance-prepare.mjs +1 -1
  28. package/dist/cli/commands/init.mjs +2 -2
  29. package/dist/cli/commands/model.mjs +235 -232
  30. package/dist/cli/commands/public.mjs +3 -3
  31. package/dist/cli/commands/route.mjs +1 -1
  32. package/dist/cli/commands/setup.mjs +62 -59
  33. package/dist/cli/commands/signer.mjs +4 -4
  34. package/dist/cli/commands/upgrade.mjs +2 -2
  35. package/dist/cli/commands/x402.mjs +19 -0
  36. package/dist/control-plane/index.mjs +1 -1
  37. package/dist/data/desk-data.mjs +28 -28
  38. package/dist/index.mjs +46 -46
  39. package/dist/local-signer/runtime.mjs +6 -6
  40. package/dist/teams/index.mjs +6 -5
  41. package/dist/tui/standalone-client.mjs +84 -82
  42. package/package.json +1 -1
  43. package/public/eval-report.json +2 -2
  44. package/public/oracle-splash/docs/browser-and-web/index.html +32 -0
  45. package/public/oracle-splash/docs/connectors/index.html +18 -0
  46. package/public/oracle-splash/docs/docs.css +21 -0
  47. package/public/oracle-splash/docs/docs.js +108 -0
  48. package/public/oracle-splash/docs/getting-started/index.html +36 -0
  49. package/public/oracle-splash/docs/index.html +26 -0
  50. package/public/oracle-splash/docs/reference/index.html +20 -0
  51. package/public/oracle-splash/docs/security/index.html +19 -0
  52. package/public/oracle-splash/docs/using-oracle/index.html +32 -0
  53. package/public/oracle-splash/download/index.html +2584 -0
  54. package/public/oracle-splash/index.html +313 -942
  55. package/public/oracle-splash/pricing/index.html +2570 -0
  56. package/public/oracle-splash/security/index.html +2574 -0
  57. package/public/oracle-splash/what-it-does/index.html +2608 -0
  58. package/public/oracle-splash/where-it-works/index.html +2635 -0
  59. package/server.json +2 -2
  60. package/dist/assets/equities-fixtures/bridge_routes.json +0 -159
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oracle-agent/oracle",
3
- "version": "0.35.38",
3
+ "version": "0.35.39",
4
4
  "description": "Oracle: standalone multichain agent control plane with an optional encrypted, loopback-only self-hosted signer.",
5
5
  "license": "BUSL-1.1",
6
6
  "type": "module",
@@ -8,7 +8,7 @@
8
8
  "node": "v26.7.0"
9
9
  },
10
10
  "package": "@oracle-agent/oracle",
11
- "packageVersion": "0.35.38",
11
+ "packageVersion": "0.35.39",
12
12
  "methodology": "Reproduce locally: npx @oracle-agent/oracle eval guards|adversarial|fidelity --json. Dated, commit-stamped output; no chain state or live keys involved. A report is evidence of the pinned commit only.",
13
13
  "suites": {
14
14
  "guards": {
@@ -20,7 +20,7 @@
20
20
  {
21
21
  "name": "version",
22
22
  "ok": true,
23
- "detail": "oracle 0.35.38"
23
+ "detail": "oracle 0.35.39"
24
24
  },
25
25
  {
26
26
  "name": "help-loads",
@@ -0,0 +1,32 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Browser and web tools | Oracle</title><meta name="description" content="Choose the narrowest web surface that can finish the job: search and fetch for public sources, isolated Browser Use for rendered interaction, Oracle Sidecar for an explicitly granted Chrome-profile tab, and xurl for the official X API."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="browser-and-web"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link" href="/docs/">Overview</a><a class="side-link" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link" href="/docs/connectors/">MCP connectors</a><a class="side-link is-active" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">Integrations</p><h1>Browser and web tools</h1><p class="docs-lede">Choose the narrowest web surface that can finish the job: search and fetch for public sources, isolated Browser Use for rendered interaction, Oracle Sidecar for an explicitly granted Chrome-profile tab, and xurl for the official X API.</p><div class="docs-meta"><span class="meta-chip">Public web</span><span class="meta-chip">Per-tab grants</span><span class="meta-chip">xurl read-first</span></div>
6
+ <section id="modes"><h2>Choose a web mode</h2><div class="docs-table-wrap"><table><thead><tr><th>Mode</th><th>Use it for</th><th>Boundary</th></tr></thead><tbody><tr><td>web_search + web_fetch</td><td>Discover and read public sources</td><td>No browser session</td></tr><tr><td>browser_exec</td><td>Rendered public pages and bounded interaction</td><td>Oracle-owned isolated profile</td></tr><tr><td>Oracle Sidecar</td><td>Context from a logged-in browser profile</td><td>Explicit grant for one tab and origin</td></tr><tr><td>xurl</td><td>X search, timelines, posts, and account actions</td><td>Official CLI, reads first, writes separately gated</td></tr></tbody></table></div></section>
7
+ <section id="search-fetch"><h2>Search and fetch</h2><p><code>web_search</code> discovers candidate sources. <code>web_fetch</code> reads one exact public URL and returns bounded text. Both refuse private, loopback, metadata, and credential-bearing destinations.</p><p>Search requires a configured <code>ORACLE_SEARCH_URL</code>. No search vendor is silently selected for the user.</p>
8
+ <div class="callout safe"><span class="callout-title">Research order</span><p>Search, open the primary source, corroborate material claims, and cite the URL. Treat snippets as leads rather than evidence.</p></div></section>
9
+ <section id="browser-use"><h2>Isolated Browser Use</h2><p><code>browser_exec</code> launches an Oracle-owned Chromium profile on the Linux Oracle host. Browser Use and Chromium run inside bubblewrap with a private network namespace. Every request crosses Oracle's DNS-pinning public-address proxy.</p>
10
+ <div class="code-block"><div class="code-label">configuration</div><pre><code>ORACLE_BROWSER_ENABLED=true
11
+ ORACLE_BROWSER_BACKEND=browser-use
12
+ ORACLE_BROWSER_USE_BIN=/absolute/path/to/browser-use
13
+ ORACLE_CHROMIUM_PATH=/absolute/path/to/chromium</code></pre></div>
14
+ <div class="code-block"><div class="code-label">reviewed Browser Use install</div><pre><code>uv tool install --force --python /usr/bin/python3 'browser-use==0.13.6'</code></pre></div>
15
+ <p>The model-callable helper set supports literal public navigation, page inspection, waiting, bounded form fill, and coordinate click. It does not expose imports, filesystem access, subprocesses, arbitrary JavaScript, raw CDP, screenshots, dynamic private URLs, or the operator desktop.</p></section>
16
+ <section id="chrome"><h2>Chrome profile companion</h2><p>Oracle Sidecar is the authenticated-context path. Its native-host installer currently supports <strong>Chrome, Brave, Chromium, or Edge on macOS and Linux</strong>. Load it into the specific supported browser profile you want Oracle beside. Windows native-host support is not available.</p>
17
+ <p><a class="card" href="/browser/oracle-chrome-extension.zip" download><small>Browser companion 0.1.0</small><b>Download Oracle Sidecar</b><span>Verified MV3 extension bundle with native-host installer.</span></a></p>
18
+ <p><a href="/browser/oracle-chrome-extension.zip.sha256" download>Download the SHA-256 checksum</a>. The release verifier rejects unexpected entries, unsafe paths, symlinks, and any byte mismatch with the tracked extension and native-host sources before producing this checksum.</p>
19
+ <div class="steps"><div class="step"><h3>Unzip the bundle</h3><p>Keep the extracted folder in a stable user-owned location.</p></div><div class="step"><h3>Install the native host</h3><p>From the extracted bundle, run <code>npm run install:host</code>. Restart the browser afterward.</p></div><div class="step"><h3>Load it in your chosen profile</h3><p>Open <code>chrome://extensions</code>, enable Developer mode, choose Load unpacked, and select the bundle's <code>extension/</code> directory. Repeat only in profiles where you want Oracle available.</p></div><div class="step"><h3>Grant one tab</h3><p>Open the Oracle side panel and grant one exact tab ID and origin. A different tab or origin needs a separate grant.</p></div></div>
20
+ <div class="callout warn"><span class="callout-title">Current tab capability</span><p>Sidecar provides bounded read-only tab context: title, URL, description, selection, and visible text. It does not click, type, submit, expose cookies, or open a CDP endpoint. The user remains the browser operator.</p></div>
21
+ <p>Tab grants live only in the browser session. They are cleared on startup and removed when the tab closes. The extension has no persistent host permissions, and extension chat is structurally prepare-only.</p></section>
22
+ <section id="xurl"><h2>xurl for X</h2><p>Oracle's bounded <code>xurl</code> tool calls the official X CLI through an allowlisted command surface. Authentication is configured by the user outside the agent, and <code>~/.xurl</code> is never read into model context.</p>
23
+ <div class="code-block"><div class="code-label">read mode</div><pre><code>ORACLE_XURL_ENABLED=true
24
+
25
+ # then in Oracle
26
+ xurl command=whoami
27
+ xurl command=search query="from:demi_hl" limit=5
28
+ xurl command=timeline limit=10</code></pre></div>
29
+ <p>Writes need the separate <code>ORACLE_XURL_ALLOW_WRITE=true</code> gate and confirmation of the exact target and wording. Never pass <code>--verbose</code> or inline credentials.</p>
30
+ <div class="callout safe"><span class="callout-title">X read fallback</span><p>If the X API tier cannot read, open the target X page in your chosen browser profile and grant that tab through Oracle Sidecar. The fallback remains read-only tab context.</p></div></section>
31
+ <section id="skills"><h2>Bundled web skills</h2><p>Oracle ships task guidance for <code>web-research</code>, <code>browser-use</code>, <code>chrome-profile-browser</code>, <code>blocked-page-recovery</code>, <code>x-read-browser</code>, <code>web-form-filling</code>, and <code>xurl</code>. Load one with <code>skill_load</code> when its workflow applies.</p><p>These skills match Oracle's bounded tools. They do not assume a general terminal, unrestricted computer control, stealth CAPTCHA bypass, or access to browser secrets.</p></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link" href="/docs/connectors/"><small>Previous</small>MCP connectors</a><a class="pager-link next" href="/docs/security/"><small>Next</small>Security and execution</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#modes">Choose a mode</a><a class="toc-link" href="#search-fetch">Search and fetch</a><a class="toc-link" href="#browser-use">Isolated Browser Use</a><a class="toc-link" href="#chrome">Chrome profile companion</a><a class="toc-link" href="#xurl">xurl</a><a class="toc-link" href="#skills">Bundled skills</a></aside></div>
32
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>MCP connectors | Oracle</title><meta name="description" content="Use Oracle from the agent client you already run. Generated connector configs expose the read and prepare plane, not a wallet key or control bypass."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="connectors"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link" href="/docs/">Overview</a><a class="side-link" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link is-active" href="/docs/connectors/">MCP connectors</a><a class="side-link" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">Integrations</p><h1>MCP connectors</h1><p class="docs-lede">Use Oracle from the agent client you already run. Generated connector configs expose the read and prepare plane, not a wallet key or control bypass.</p><div class="docs-meta"><span class="meta-chip">MCP stdio</span><span class="meta-chip">Registry listed</span><span class="meta-chip">Prepare only</span></div>
6
+ <section id="install"><h2>Install a connector</h2><p>Oracle can print or install MCP configuration for supported clients. Inspect the generated configuration before accepting it.</p>
7
+ <div class="code-block"><div class="code-label">terminal</div><pre><code>oracle mcp print --target claude-code
8
+ oracle mcp install claude-code
9
+ oracle mcp install codex
10
+ oracle mcp install chatgpt
11
+ oracle harness detect</code></pre></div></section>
12
+ <section id="generic"><h2>Generic MCP</h2><p>Oracle is listed in the official MCP registry as <code>io.github.demi-hl/oracle</code>. A registry-aware client can launch the read-plane stdio server directly.</p>
13
+ <div class="code-block"><div class="code-label">stdio</div><pre><code>npx -y -p @oracle-agent/oracle oracle-data-mcp</code></pre></div>
14
+ <p>You can also run <code>oracle-data-mcp</code> from a global installation. The server communicates over stdio and expects Oracle's local data plane where required.</p></section>
15
+ <section id="clients"><h2>Supported clients</h2><div class="docs-table-wrap"><table><thead><tr><th>Client</th><th>Setup target</th><th>Posture</th></tr></thead><tbody><tr><td>Claude Code</td><td>claude-code</td><td>Read and prepare</td></tr><tr><td>Claude Desktop</td><td>claude-desktop</td><td>Read and prepare</td></tr><tr><td>Codex</td><td>codex</td><td>Read and prepare</td></tr><tr><td>ChatGPT</td><td>chatgpt</td><td>Hosted, unsigned preparation</td></tr><tr><td>Cursor</td><td>cursor</td><td>Read and prepare</td></tr><tr><td>VS Code / Copilot</td><td>vscode / copilot</td><td>Read and prepare</td></tr><tr><td>Generic MCP</td><td>generic</td><td>Stdio read plane</td></tr></tbody></table></div></section>
16
+ <section id="web-tools"><h2>Web tools in MCP</h2><div class="docs-table-wrap"><table><thead><tr><th>Tool</th><th>Availability</th><th>Boundary</th></tr></thead><tbody><tr><td>web_fetch</td><td>Available</td><td>One public URL through SSRF checks, DNS pinning, redirect validation, response caps, and redaction</td></tr><tr><td>web_search</td><td>Configured</td><td>Requires an operator-selected ORACLE_SEARCH_URL and never chooses a search vendor silently</td></tr></tbody></table></div><p><code>browser_exec</code> remains standalone-only because it can click and fill public pages inside its sandbox. It is not exposed through the public MCP.</p><p>Oracle Sidecar remains extension-only and is not exposed as a generic MCP tool. Its read-only browser context requires a grant for one exact tab ID and origin. MCP cannot request Sidecar cookies, CDP, clicks, typing, signing, or broadcast authority.</p></section>
17
+ <section id="boundary"><h2>Connector boundary</h2><p>Every generated MCP configuration is read and prepare only. Oracle does not install a public control MCP or create a tunnel into private owner infrastructure.</p><div class="callout safe"><span class="callout-title">Hosted clients stay keyless</span><p>A hosted client can request research, quotes, simulations, and unsigned artifacts. Signing stays in the user's wallet or an explicitly configured local self-hosted execution path.</p></div></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link" href="/docs/using-oracle/"><small>Previous</small>Using Oracle</a><a class="pager-link next" href="/docs/browser-and-web/"><small>Next</small>Browser and web tools</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#install">Install a connector</a><a class="toc-link" href="#generic">Generic MCP</a><a class="toc-link" href="#clients">Supported clients</a><a class="toc-link" href="#web-tools">Web tools</a><a class="toc-link" href="#boundary">Connector boundary</a></aside></div>
18
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>
@@ -0,0 +1,21 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=IBM+Plex+Mono:wght@400;500;600&family=Outfit:wght@300;400;500;600&display=swap');
2
+ :root{
3
+ --bg:#0b1018;--bg2:#0e1621;--panel:#111925;--panel2:#152031;
4
+ --ink:#f4f9fe;--cool:#c9daec;--muted:#91a9c1;--faint:#607a95;
5
+ --blue:#7cc4ff;--blue2:#a7d8ff;--teal:#50d2c1;--line:rgba(124,196,255,.14);--line2:rgba(124,196,255,.25);
6
+ --display:"Cormorant Garamond",Georgia,serif;--sans:"Outfit",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;
7
+ --top:64px;--side:270px;--toc:210px;--content:760px;--ease:cubic-bezier(.16,1,.3,1)
8
+ }
9
+ *{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.68;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}.grain{position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.03;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
10
+ .docs-topbar{height:var(--top);position:fixed;inset:0 0 auto;z-index:70;display:grid;grid-template-columns:var(--side) 1fr auto;align-items:center;border-bottom:1px solid var(--line);background:rgba(11,16,24,.9);backdrop-filter:blur(18px);padding:0 28px}.docs-brand{display:flex;align-items:center;gap:11px;font-family:var(--mono);font-weight:600;letter-spacing:.14em;text-transform:uppercase}.brand-orbit{width:25px;height:25px;border:1px solid var(--blue);border-radius:50%;position:relative;box-shadow:0 0 20px rgba(124,196,255,.18)}.brand-orbit:before,.brand-orbit:after{content:"";position:absolute;inset:5px;border:1px solid rgba(124,196,255,.7);border-radius:50%;transform:rotateX(62deg)}.brand-orbit:after{transform:rotateY(62deg);border-color:rgba(80,210,193,.7)}.docs-word{font-family:var(--display);font-size:22px;font-weight:500;letter-spacing:.02em;text-transform:none}.docs-version{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--blue);border:1px solid var(--line2);border-radius:99px;padding:3px 7px}.docs-top-actions{display:flex;align-items:center;gap:14px}.top-link{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .2s}.top-link:hover{color:var(--ink)}.download-link{padding:10px 15px;border:1px solid var(--line2);border-radius:99px;color:var(--blue2)}
11
+ .docs-search-button{justify-self:center;width:min(420px,90%);height:38px;border:1px solid var(--line);background:rgba(17,25,37,.72);border-radius:9px;color:var(--muted);display:flex;align-items:center;gap:10px;padding:0 12px;cursor:pointer;text-align:left;transition:border-color .2s,background .2s}.docs-search-button:hover{border-color:var(--line2);background:var(--panel)}.search-icon{font-size:15px;color:var(--blue)}.docs-search-button span:nth-child(2){flex:1}.docs-search-button kbd{font:500 10px/1 var(--mono);border:1px solid var(--line2);border-radius:5px;padding:5px 7px;color:var(--cool);background:#0a111a}
12
+ .docs-shell{display:grid;grid-template-columns:var(--side) minmax(0,var(--content)) var(--toc);justify-content:center;gap:clamp(28px,4vw,62px);padding:var(--top) 30px 80px}.docs-sidebar{position:sticky;top:var(--top);height:calc(100dvh - var(--top));overflow:auto;padding:34px 22px 50px 0;border-right:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line2) transparent}.side-group{margin-bottom:30px}.side-title{margin:0 0 9px;font:600 10px/1 var(--mono);letter-spacing:.17em;text-transform:uppercase;color:var(--faint)}.side-link{display:block;margin:1px 0;padding:7px 11px;border-left:1px solid transparent;color:var(--muted);font-size:14px;line-height:1.25;border-radius:0 6px 6px 0;transition:color .2s,border-color .2s,background .2s}.side-link:hover{color:var(--ink);background:rgba(124,196,255,.05)}.side-link.is-active{color:var(--blue2);border-left-color:var(--blue);background:linear-gradient(90deg,rgba(124,196,255,.1),transparent)}.side-source{margin-top:34px;padding:14px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:12px;line-height:1.5}.side-source b{display:block;color:var(--cool);font-weight:500;margin-bottom:4px}.side-source a{color:var(--blue2)}
13
+ .docs-main{min-width:0;padding-top:56px}.docs-article{padding-bottom:70px}.docs-kicker{font:500 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0 0 17px}.docs-article h1{font:400 clamp(49px,6vw,78px)/.96 var(--display);letter-spacing:-.025em;margin:0 0 24px;max-width:12ch}.docs-article h1 em{font-weight:400;color:var(--blue2)}.docs-lede{font-size:20px;line-height:1.55;color:var(--cool);max-width:650px;margin:0 0 44px}.docs-meta{display:flex;gap:12px;flex-wrap:wrap;margin:-22px 0 42px}.meta-chip{font:500 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:7px 10px}.docs-article section{padding-top:22px;margin-top:34px}.docs-article h2{font:500 34px/1.1 var(--display);letter-spacing:-.01em;margin:0 0 14px;color:var(--ink)}.docs-article h3{font-size:18px;line-height:1.3;margin:31px 0 10px;color:var(--blue2);font-weight:500}.docs-article p{margin:0 0 17px;color:var(--cool)}.docs-article strong{color:var(--ink);font-weight:500}.docs-article a:not(.card):not(.pager-link){color:var(--blue2);text-decoration:underline;text-decoration-color:rgba(124,196,255,.3);text-underline-offset:3px}.docs-article ul,.docs-article ol{margin:12px 0 22px;padding-left:23px;color:var(--cool)}.docs-article li{margin:7px 0;padding-left:4px}.docs-article code{font:500 .84em/1.5 var(--mono);color:var(--blue2);background:rgba(124,196,255,.08);border:1px solid rgba(124,196,255,.11);border-radius:4px;padding:2px 5px}.code-block{position:relative;margin:20px 0 27px;border:1px solid var(--line2);border-radius:11px;overflow:hidden;background:#080e15;box-shadow:0 24px 70px rgba(0,0,0,.2)}.code-label{height:34px;display:flex;align-items:center;padding:0 13px;border-bottom:1px solid var(--line);font:500 9px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}pre{margin:0;padding:18px 20px 20px;overflow:auto;color:#dcecff;font:400 13px/1.7 var(--mono);tab-size:2}.docs-article pre code{font:inherit;color:inherit;background:none;border:0;padding:0}.copy-button{position:absolute;top:7px;right:8px;border:1px solid var(--line);background:var(--panel);border-radius:5px;color:var(--muted);font:500 9px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 8px;cursor:pointer}.copy-button:hover{color:var(--ink);border-color:var(--line2)}
14
+ .callout{border-left:2px solid var(--blue);background:rgba(124,196,255,.055);padding:17px 19px;margin:24px 0;border-radius:0 9px 9px 0}.callout.warn{border-left-color:#f0b90b;background:rgba(240,185,11,.055)}.callout.safe{border-left-color:var(--teal);background:rgba(80,210,193,.055)}.callout-title{display:block;margin-bottom:5px;font:600 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blue2)}.callout.warn .callout-title{color:#f3ca55}.callout.safe .callout-title{color:#8aeadc}.callout p:last-child{margin-bottom:0}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:23px 0 35px}.card{display:block;padding:20px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,rgba(21,32,49,.7),rgba(12,19,29,.45));transition:transform .25s var(--ease),border-color .25s,background .25s}.card:hover{transform:translateY(-3px);border-color:var(--line2);background:var(--panel)}.card small{display:block;font:500 9px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin-bottom:9px}.card b{display:block;font:500 18px/1.2 var(--display);color:var(--ink);margin-bottom:6px}.card span{display:block;color:var(--muted);font-size:13px;line-height:1.5}.steps{counter-reset:step;margin:23px 0}.step{position:relative;padding:0 0 26px 48px;border-left:1px solid var(--line);margin-left:14px}.step:last-child{border-left-color:transparent}.step:before{counter-increment:step;content:counter(step);position:absolute;left:-15px;top:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--bg2);border:1px solid var(--line2);color:var(--blue);font:500 10px/1 var(--mono)}.step h3{margin:0 0 6px;color:var(--ink)}.step p{margin:0}.docs-table-wrap{overflow:auto;margin:20px 0 28px;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;min-width:580px;font-size:14px}th,td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font:600 9px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);background:rgba(17,25,37,.75)}td{color:var(--cool)}td:first-child{color:var(--blue2);font-family:var(--mono);font-size:12px}tr:last-child td{border-bottom:0}.plane-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:21px 0}.plane{padding:18px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.plane b{display:block;color:var(--ink);font-size:15px;margin-bottom:7px}.plane span{display:block;color:var(--muted);font-size:12px;line-height:1.55}.plane.exec{border-color:rgba(80,210,193,.3)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--line);padding-top:28px;margin-top:58px}.pager-link{padding:14px 16px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:13px;transition:border-color .2s,color .2s}.pager-link:hover{border-color:var(--line2);color:var(--ink)}.pager-link.next{text-align:right;grid-column:2}.pager-link small{display:block;font:500 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
15
+ .docs-toc{position:sticky;top:calc(var(--top) + 48px);align-self:start;padding-top:8px}.toc-title{font:600 9px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}.toc-link{display:block;padding:5px 0;color:var(--faint);font-size:12px;line-height:1.35;transition:color .2s}.toc-link:hover,.toc-link.is-active{color:var(--blue2)}
16
+ .search-dialog[hidden]{display:none}.search-dialog{position:fixed;inset:0;z-index:100;background:rgba(4,8,12,.74);backdrop-filter:blur(10px);display:grid;place-items:start center;padding-top:min(15vh,130px)}.search-panel{width:min(680px,calc(100vw - 28px));max-height:min(650px,76vh);border:1px solid var(--line2);border-radius:13px;background:#0d151f;box-shadow:0 35px 120px rgba(0,0,0,.55);overflow:hidden}.search-field{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 18px}.search-field input{width:100%;height:58px;border:0;outline:0;background:transparent;color:var(--ink);font-size:17px}.search-field input::placeholder{color:var(--faint)}.search-close{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:5px;padding:5px 8px;font:500 9px/1 var(--mono);cursor:pointer}.search-results{padding:8px;overflow:auto;max-height:540px}.search-result{display:block;padding:13px 14px;border-radius:8px}.search-result:hover,.search-result.is-selected{background:rgba(124,196,255,.08)}.search-result b{display:block;color:var(--ink);font-weight:500;font-size:14px}.search-result span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.search-empty{padding:28px;color:var(--muted);text-align:center}.mobile-menu{display:none}
17
+ @media(max-width:1120px){.docs-shell{grid-template-columns:var(--side) minmax(0,var(--content));max-width:1100px}.docs-toc{display:none}}
18
+ @media(max-width:800px){:root{--top:58px}.docs-topbar{grid-template-columns:1fr auto auto;padding:0 16px}.docs-word{font-size:19px}.docs-version,.top-link.product-link{display:none}.docs-search-button{width:38px;padding:0;justify-content:center}.docs-search-button span:nth-child(2),.docs-search-button kbd{display:none}.docs-top-actions{gap:8px}.download-link{padding:8px 11px}.mobile-menu{display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--cool);cursor:pointer}.docs-shell{display:block;padding:var(--top) 20px 60px}.docs-sidebar{position:fixed;z-index:65;left:0;top:var(--top);width:min(310px,86vw);height:calc(100dvh - var(--top));padding:24px 24px 50px;background:#0c131d;border-right:1px solid var(--line2);transform:translateX(-104%);transition:transform .3s var(--ease);box-shadow:30px 0 80px rgba(0,0,0,.35)}body.menu-open .docs-sidebar{transform:none}.docs-main{padding-top:42px}.docs-article h1{font-size:clamp(46px,14vw,64px)}.docs-lede{font-size:18px}.quick-grid{grid-template-columns:1fr}.plane-grid{grid-template-columns:1fr}.pager{grid-template-columns:1fr}.pager-link.next{grid-column:1;text-align:left}}
19
+ @media(max-width:800px){.docs-article pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}}
20
+ @media(max-width:480px){.docs-shell{padding-left:17px;padding-right:17px}.docs-article h2{font-size:30px}.docs-meta{gap:7px}.meta-chip{font-size:8px}.docs-top-actions .download-link{font-size:9px}.code-block{margin-left:-5px;margin-right:-5px}pre{font-size:12px;padding:17px 15px}.docs-table-wrap{margin-left:-5px;margin-right:-5px}}
21
+ @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.docs-sidebar{transition:none}}
@@ -0,0 +1,108 @@
1
+ (() => {
2
+ "use strict";
3
+ const entries = [
4
+ ["Oracle documentation", "What Oracle is, quick links, and safe defaults", "/docs/", "overview home control plane"],
5
+ ["Install Oracle", "curl installer, npm alternative, and Node requirement", "/docs/getting-started/#install", "install node npm curl"],
6
+ ["Configure a model", "OAuth and API-key provider setup", "/docs/getting-started/#model", "setup model claude codex grok openrouter"],
7
+ ["First run", "Choose a chain, open chat, and run doctor", "/docs/getting-started/#first-run", "chain hyperliquid doctor chat"],
8
+ ["Update or uninstall", "Repeatable upgrade and removal paths", "/docs/getting-started/#maintenance", "update upgrade uninstall"],
9
+ ["Native chat", "Sessions, chains, models, setup, and help", "/docs/using-oracle/#chat", "sessions new resume chain model help"],
10
+ ["Read, quote, and prepare", "How requests move through Oracle", "/docs/using-oracle/#lifecycle", "read quote simulate prepare review receipt"],
11
+ ["Best execution", "Rank swaps and bridges by net received", "/docs/using-oracle/#routing", "swap bridge gas fees net route"],
12
+ ["Receipts", "What counts as a completed on-chain action", "/docs/using-oracle/#receipts", "transaction hash receipt confirmation balance delta"],
13
+ ["MCP connectors", "Install Oracle in Claude, Codex, ChatGPT, Cursor, and more", "/docs/connectors/", "mcp clients harness"],
14
+ ["Claude Code", "Install Oracle's MCP server in Claude Code", "/docs/connectors/#install", "claude code mcp install"],
15
+ ["Generic MCP", "Run the registry-listed stdio server", "/docs/connectors/#generic", "stdio npx oracle-data-mcp registry"],
16
+ ["Browser and web tools", "Search, fetch, isolated browsing, Chrome tab context, and xurl", "/docs/browser-and-web/", "browser web chrome profile xurl"],
17
+ ["Web search and fetch", "Discover and read public primary sources", "/docs/browser-and-web/#search-fetch", "web_search web_fetch research"],
18
+ ["Isolated Browser Use", "Rendered public-page interaction behind Oracle's pinned proxy", "/docs/browser-and-web/#browser-use", "browser_exec browser-use chromium bubblewrap"],
19
+ ["Chrome profile companion", "Grant one exact tab through Oracle Sidecar", "/docs/browser-and-web/#chrome", "chrome brave edge profile extension sidecar"],
20
+ ["xurl for X", "Bounded official X API access", "/docs/browser-and-web/#xurl", "x twitter xurl search timeline post"],
21
+ ["Security model", "Data, policy, and optional local execution planes", "/docs/security/", "security custody planes"],
22
+ ["Grants and confirmations", "Bound authority, allowlists, caps, TTL, and one-use confirmation", "/docs/security/#grants", "grant policy cap ttl allowlist"],
23
+ ["Local custody controls", "Encrypted self-hosted vault and loopback controls", "/docs/security/#local-signer", "self hosted vault policy lock security"],
24
+ ["Autonomous trading", "Additional explicit self-hosted execution gate", "/docs/security/#autonomous", "ORACLE_AUTONOMOUS_TRADING trigger attestation"],
25
+ ["CLI reference", "Main commands and installed executables", "/docs/reference/#cli", "oracle commands bins executable"],
26
+ ["Library imports", "Common @oracle-agent/oracle public subpaths", "/docs/reference/#library", "javascript api imports package"],
27
+ ["Environment variables", "Core public configuration and policy flags", "/docs/reference/#environment", "env config host port caps"],
28
+ ["Capability tiers", "Read-only, quote-only, prepare, and intent", "/docs/reference/#tiers", "capability tier provider catalog"],
29
+ ];
30
+ const dialog = document.getElementById("docs-search-dialog");
31
+ const button = document.getElementById("docs-search-button");
32
+ const close = document.getElementById("docs-search-close");
33
+ const input = document.getElementById("docs-search-input");
34
+ const results = document.getElementById("docs-search-results");
35
+ let selected = 0;
36
+
37
+ function render(query = "") {
38
+ const terms = query.toLowerCase().trim().split(/\s+/).filter(Boolean);
39
+ const rows = entries.filter(row => terms.every(term => row.join(" ").toLowerCase().includes(term))).slice(0, 10);
40
+ selected = Math.min(selected, Math.max(rows.length - 1, 0));
41
+ results.innerHTML = rows.length ? rows.map((row, i) => `<a class="search-result${i === selected ? " is-selected" : ""}" href="${row[2]}"><b>${row[0]}</b><span>${row[1]}</span></a>`).join("") : '<div class="search-empty">No matching documentation.</div>';
42
+ }
43
+ function openSearch() {
44
+ if (!dialog) return;
45
+ dialog.hidden = false;
46
+ selected = 0;
47
+ render(input.value);
48
+ requestAnimationFrame(() => input.focus());
49
+ }
50
+ function closeSearch() {
51
+ if (!dialog) return;
52
+ dialog.hidden = true;
53
+ input.value = "";
54
+ button?.focus();
55
+ }
56
+ button?.addEventListener("click", openSearch);
57
+ close?.addEventListener("click", closeSearch);
58
+ dialog?.addEventListener("click", event => { if (event.target === dialog) closeSearch(); });
59
+ input?.addEventListener("input", () => { selected = 0; render(input.value); });
60
+ input?.addEventListener("keydown", event => {
61
+ const rows = [...results.querySelectorAll(".search-result")];
62
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
63
+ event.preventDefault();
64
+ if (!rows.length) return;
65
+ selected = (selected + (event.key === "ArrowDown" ? 1 : -1) + rows.length) % rows.length;
66
+ render(input.value);
67
+ } else if (event.key === "Enter" && rows[selected]) {
68
+ location.href = rows[selected].href;
69
+ }
70
+ });
71
+ document.addEventListener("keydown", event => {
72
+ const typing = /INPUT|TEXTAREA|SELECT/.test(document.activeElement?.tagName || "");
73
+ if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "k") { event.preventDefault(); openSearch(); }
74
+ else if (event.key === "/" && !typing && dialog?.hidden) { event.preventDefault(); openSearch(); }
75
+ else if (event.key === "Escape" && dialog && !dialog.hidden) closeSearch();
76
+ });
77
+
78
+ document.getElementById("docs-menu-button")?.addEventListener("click", () => document.body.classList.toggle("menu-open"));
79
+ document.querySelectorAll(".docs-sidebar a").forEach(link => link.addEventListener("click", () => document.body.classList.remove("menu-open")));
80
+
81
+ document.querySelectorAll("pre").forEach(pre => {
82
+ const wrap = pre.closest(".code-block");
83
+ if (!wrap) return;
84
+ const copy = document.createElement("button");
85
+ copy.type = "button";
86
+ copy.className = "copy-button";
87
+ copy.textContent = "Copy";
88
+ copy.addEventListener("click", async () => {
89
+ try {
90
+ await navigator.clipboard.writeText(pre.textContent.trim());
91
+ copy.textContent = "Copied";
92
+ setTimeout(() => { copy.textContent = "Copy"; }, 1200);
93
+ } catch { copy.textContent = "Select"; }
94
+ });
95
+ wrap.append(copy);
96
+ });
97
+
98
+ const tocLinks = [...document.querySelectorAll(".toc-link")];
99
+ const sections = tocLinks.map(link => document.querySelector(link.getAttribute("href"))).filter(Boolean);
100
+ if ("IntersectionObserver" in window && sections.length) {
101
+ const observer = new IntersectionObserver(records => {
102
+ const current = records.filter(r => r.isIntersecting).sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top)[0];
103
+ if (!current) return;
104
+ tocLinks.forEach(link => link.classList.toggle("is-active", link.getAttribute("href") === `#${current.target.id}`));
105
+ }, { rootMargin: "-20% 0px -68%", threshold: 0 });
106
+ sections.forEach(section => observer.observe(section));
107
+ }
108
+ })();
@@ -0,0 +1,36 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Getting started | Oracle</title><meta name="description" content="From a clean machine to a verified Oracle chat in a few minutes. The default path needs a model login, not a wallet key."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="getting-started"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link" href="/docs/">Overview</a><a class="side-link is-active" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link" href="/docs/connectors/">MCP connectors</a><a class="side-link" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">Start here</p><h1>Getting started</h1><p class="docs-lede">From a clean machine to a verified Oracle chat in a few minutes. The default path needs a model login, not a wallet key.</p><div class="docs-meta"><span class="meta-chip">Linux</span><span class="meta-chip">macOS</span><span class="meta-chip">Windows beta</span></div>
6
+ <section id="requirements"><h2>Requirements</h2><ul><li><strong>Node.js 20.19.0 or newer</strong></li><li>npm</li><li>A supported model OAuth login or API key</li><li>A user-controlled wallet only when you want to sign a prepared action</li></ul></section>
7
+ <section id="install"><h2>Install Oracle</h2><div class="code-block"><div class="code-label">recommended</div><pre><code>curl -fsSL https://oracle.demi.la/install.sh | bash
8
+ oracle --version</code></pre></div>
9
+ <p>The installer writes to <code>~/.local/share/oracle</code> and exposes <code>oracle</code> through <code>~/.local/bin</code>. Re-run the installer to upgrade.</p>
10
+ <div class="code-block"><div class="code-label">npm alternative</div><pre><code>npm i -g @oracle-agent/oracle
11
+ oracle --version</code></pre></div></section>
12
+ <section id="model"><h2>Configure a model</h2><p>Run the interactive model picker. OAuth is available for Claude, Codex, and Grok. API-key providers include OpenRouter, OpenAI, Anthropic, xAI, DeepSeek, Gemini, Kimi, Mistral, Nous Portal, Qwen, GLM, and compatible endpoints.</p>
13
+ <div class="code-block"><div class="code-label">terminal</div><pre><code>oracle setup model
14
+
15
+ # direct OAuth choices
16
+ oracle setup model claude
17
+ oracle setup model codex
18
+ oracle setup model grok
19
+
20
+ # safe status, never prints credentials
21
+ oracle auth status
22
+ oracle model --show</code></pre></div>
23
+ <div class="callout warn"><span class="callout-title">Keep credentials out of argv</span><p>Interactive API-key entry is hidden. Do not put keys in command arguments, shell history, screenshots, or Oracle chat.</p></div></section>
24
+ <section id="first-run"><h2>First run</h2><div class="steps"><div class="step"><h3>Open Oracle</h3><p>Run <code>oracle</code> or <code>oracle chat</code>. First-run onboarding can select a chain and opens the native agent loop.</p></div><div class="step"><h3>Select a chain</h3><p>List supported chains, select one, and inspect the active selection.</p></div><div class="step"><h3>Verify the posture</h3><p>Run doctor before preparing a live action. Treat a degraded provider as unavailable, not healthy.</p></div></div>
25
+ <div class="code-block"><div class="code-label">terminal</div><pre><code>oracle
26
+ oracle chain list
27
+ oracle chain use hyperliquid
28
+ oracle chain show
29
+ oracle doctor</code></pre></div>
30
+ <p>Useful in-chat commands include <code>/sessions</code>, <code>/new</code>, <code>/resume</code>, <code>/chain</code>, <code>/model</code>, <code>/setup</code>, and <code>/help</code>.</p></section>
31
+ <section id="maintenance"><h2>Update or remove</h2><p>Re-run the curl installer to upgrade a user-local installation. For npm installs, update the package through npm.</p>
32
+ <div class="code-block"><div class="code-label">update</div><pre><code>curl -fsSL https://oracle.demi.la/install.sh | bash
33
+ # or
34
+ npm i -g @oracle-agent/oracle@latest</code></pre></div>
35
+ <p>Before removing Oracle, export anything you need from your local config. Never copy vault files into a public backup.</p></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link" href="/docs/"><small>Previous</small>Overview</a><a class="pager-link next" href="/docs/using-oracle/"><small>Next</small>Using Oracle</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#requirements">Requirements</a><a class="toc-link" href="#install">Install</a><a class="toc-link" href="#model">Configure a model</a><a class="toc-link" href="#first-run">First run</a><a class="toc-link" href="#maintenance">Update or remove</a></aside></div>
36
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Oracle documentation | Oracle</title><meta name="description" content="Install, configure, and operate Oracle as a self-custody multichain agent control plane. Start with reads and quotes, prepare exact artifacts, and keep authorization separate from model output."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="overview"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link is-active" href="/docs/">Overview</a><a class="side-link" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link" href="/docs/connectors/">MCP connectors</a><a class="side-link" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">Documentation</p><h1>Oracle documentation</h1><p class="docs-lede">Install, configure, and operate Oracle as a self-custody multichain agent control plane. Start with reads and quotes, prepare exact artifacts, and keep authorization separate from model output.</p><div class="docs-meta"><span class="meta-chip">Oracle 0.35.39</span><span class="meta-chip">Node 20.19+</span><span class="meta-chip">Public self-host</span></div>
6
+ <section id="install"><h2>Install</h2><p>Oracle runs on Linux, macOS, and Windows. The installer uses a user-local directory and does not require a global npm install.</p>
7
+ <div class="code-block"><div class="code-label">terminal</div><pre><code>curl -fsSL https://oracle.demi.la/install.sh | bash
8
+ oracle --version
9
+ oracle setup model
10
+ oracle</code></pre></div>
11
+ <p>Oracle 0.35.39 requires <strong>Node.js 20.19.0 or newer</strong>. If you prefer npm, install <code>@oracle-agent/oracle</code> globally.</p>
12
+ <div class="code-block"><div class="code-label">npm</div><pre><code>npm i -g @oracle-agent/oracle
13
+ oracle --version</code></pre></div>
14
+ <div class="callout safe"><span class="callout-title">Start keyless</span><p>Reads, research, quotes, simulations, and unsigned preparation do not require a wallet key. Never paste a seed phrase, private key, passphrase, or API credential into chat.</p></div></section>
15
+ <section id="what"><h2>What Oracle is</h2><p>Oracle is a standalone agent loop and a Model Context Protocol server for multichain work. It can research tokens and contracts, compare routes, simulate, prepare transactions and typed data, inspect portfolios, and verify receipts.</p>
16
+ <div class="plane-grid"><div class="plane"><b>Data plane</b><span>Reads, market data, chain state, quotes, and capability health. No wallet keys.</span></div><div class="plane"><b>Policy plane</b><span>Allowlisted destinations, value caps, slippage limits, expiry, and exact artifact binding.</span></div><div class="plane exec"><b>Execution plane</b><span>User wallet by default. Optional self-hosted local signer only after explicit initialization and policy.</span></div></div>
17
+ <p>Hosted and keyless Oracle prepares unsigned artifacts. A user wallet can review and sign them. An optional self-hosted local signer can sign supported artifacts only under local policy and explicit authority.</p></section>
18
+ <section id="quick-links"><h2>Quick links</h2><div class="quick-grid">
19
+ <a class="card" href="/docs/getting-started/"><small>Start here</small><b>Getting started</b><span>Install, select a model, choose a chain, and verify the local posture.</span></a>
20
+ <a class="card" href="/docs/using-oracle/"><small>User guide</small><b>Using Oracle</b><span>Chat, read, quote, prepare, sign, and verify without collapsing the lifecycle.</span></a>
21
+ <a class="card" href="/docs/connectors/"><small>Integrations</small><b>MCP connectors</b><span>Connect Claude, Codex, ChatGPT, Cursor, VS Code, and generic MCP clients.</span></a>
22
+ <a class="card" href="/docs/browser-and-web/"><small>Web tools</small><b>Browser and web</b><span>Search, fetch, browse public pages, use a granted Chrome tab, and connect xurl safely.</span></a>
23
+ <a class="card" href="/docs/security/"><small>Core concept</small><b>Security and execution</b><span>Understand grants, confirmation, local signing, autonomous opt-in, and receipts.</span></a>
24
+ </div></section>
25
+ <section id="safe-defaults"><h2>Safe defaults</h2><ul><li>Oracle starts <strong>disarmed</strong>.</li><li>Unknown data stays unknown. Missing values do not become zero.</li><li>Route rankings use net received when gas and fees are measurable.</li><li>Prepare is not sign. Sign is not broadcast.</li><li>An action is complete only with a transaction hash and a successful receipt.</li></ul></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link next" href="/docs/getting-started/"><small>Next</small>Getting started</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#install">Install</a><a class="toc-link" href="#what">What Oracle is</a><a class="toc-link" href="#quick-links">Quick links</a><a class="toc-link" href="#safe-defaults">Safe defaults</a></aside></div>
26
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>
@@ -0,0 +1,20 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>CLI and API reference | Oracle</title><meta name="description" content="The common public commands, executables, import paths, environment settings, and capability tiers in Oracle's published package."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="reference"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link" href="/docs/">Overview</a><a class="side-link" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link" href="/docs/connectors/">MCP connectors</a><a class="side-link" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link is-active" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">Reference</p><h1>CLI and API reference</h1><p class="docs-lede">The common public commands, executables, import paths, environment settings, and capability tiers in Oracle's published package.</p><div class="docs-meta"><span class="meta-chip">Package 0.35.39</span><span class="meta-chip">21 executables</span><span class="meta-chip">56 exports</span></div>
6
+ <section id="cli"><h2>CLI commands</h2><div class="docs-table-wrap"><table><thead><tr><th>Command</th><th>Purpose</th></tr></thead><tbody><tr><td>oracle</td><td>Open native Oracle chat</td></tr><tr><td>oracle setup model</td><td>Configure model OAuth or API-key access</td></tr><tr><td>oracle chain list</td><td>List chain selections</td></tr><tr><td>oracle chain use &lt;name&gt;</td><td>Select the active chain</td></tr><tr><td>oracle doctor</td><td>Verify installation and local posture</td></tr><tr><td>oracle auth status</td><td>Show provider status without credentials</td></tr><tr><td>oracle mcp install &lt;target&gt;</td><td>Install a read and prepare connector</td></tr><tr><td>oracle data serve</td><td>Run the loopback data plane</td></tr><tr><td>oracle public serve --port 8799</td><td>Run the loopback public plane</td></tr><tr><td>oracle eval all --mode playwright</td><td>Run the deterministic evaluation aggregate</td></tr></tbody></table></div></section>
7
+ <section id="executables"><h2>Installed executables</h2><div class="docs-table-wrap"><table><thead><tr><th>Executable</th><th>Purpose</th></tr></thead><tbody><tr><td>oracle</td><td>Main CLI and native chat</td></tr><tr><td>oracle-investigate</td><td>Bounded report-only wallet evidence</td></tr><tr><td>oracle-data</td><td>Local read-plane server</td></tr><tr><td>oracle-public</td><td>Loopback public-plane server</td></tr><tr><td>oracle-data-mcp</td><td>MCP stdio read plane</td></tr><tr><td>oracle-scan</td><td>Token, pool, risk, and exit scanner</td></tr><tr><td>oracle-route</td><td>Swap and bridge route comparison and preparation</td></tr><tr><td>oracle-equities</td><td>Cross-venue on-chain equities desk</td></tr><tr><td>oracle-gateway</td><td>Authenticated messaging transport</td></tr><tr><td>oracle-init</td><td>Dry-run or apply profile and attestation setup</td></tr></tbody></table></div><p>The package currently declares 21 executable bins. Specialized MEV and restoration tools are intentionally not presented as general user commands here. See the package manifest for the complete list.</p></section>
8
+ <section id="library"><h2>Library imports</h2><div class="code-block"><div class="code-label">javascript</div><pre><code>import { data } from "@oracle-agent/oracle";
9
+
10
+ const prepared = await data.call("hl-perps", "prepareOrder", {
11
+ coin: "ETH",
12
+ side: "buy",
13
+ size: "0.01",
14
+ owner: "0xYourWallet"
15
+ });
16
+ // Review the returned unsigned artifact before signing.</code></pre></div>
17
+ <div class="docs-table-wrap"><table><thead><tr><th>Import</th><th>Surface</th></tr></thead><tbody><tr><td>@oracle-agent/oracle</td><td>Common package root</td></tr><tr><td>@oracle-agent/oracle/data</td><td>Provider catalog and data calls</td></tr><tr><td>@oracle-agent/oracle/scanner</td><td>Chain and token scanner</td></tr><tr><td>@oracle-agent/oracle/prepare-route</td><td>Same-chain route comparison and unsigned preparation</td></tr><tr><td>@oracle-agent/oracle/prepare-bridge</td><td>Bridge comparison and ordered unsigned preparation</td></tr><tr><td>@oracle-agent/oracle/policy</td><td>Grant validation and cap constants</td></tr><tr><td>@oracle-agent/oracle/local-signer</td><td>Explicit self-host-only signer surface</td></tr><tr><td>@oracle-agent/oracle/verified-receipts</td><td>Pure receipt verification over supplied facts</td></tr><tr><td>@oracle-agent/oracle/connect</td><td>MCP harness configuration snippets</td></tr></tbody></table></div></section>
18
+ <section id="environment"><h2>Environment variables</h2><div class="docs-table-wrap"><table><thead><tr><th>Name</th><th>Default</th><th>Meaning</th></tr></thead><tbody><tr><td>ORACLE_CONFIG_DIR</td><td>~/.config/oracle</td><td>Local configuration directory</td></tr><tr><td>ORACLE_DATA_HOST</td><td>127.0.0.1</td><td>Read-plane bind host, loopback enforced</td></tr><tr><td>ORACLE_DATA_PORT</td><td>8787</td><td>Read-plane port</td></tr><tr><td>ORACLE_PUBLIC_HOST</td><td>127.0.0.1</td><td>Public-plane bind host, loopback enforced</td></tr><tr><td>ORACLE_ALLOWED_CHAINS</td><td>unset</td><td>Optional chain allowlist</td></tr><tr><td>ORACLE_VALUE_CAPS_ENABLED</td><td>on</td><td>Per-transaction value caps</td></tr><tr><td>ORACLE_AUTONOMOUS_TRADING</td><td>off</td><td>Additional self-hosted unattended-trading gate</td></tr><tr><td>ORACLE_REDACT_SECRETS</td><td>true</td><td>Redact recognized secret material before model context</td></tr></tbody></table></div></section>
19
+ <section id="tiers"><h2>Capability tiers</h2><div class="docs-table-wrap"><table><thead><tr><th>Tier</th><th>Meaning</th></tr></thead><tbody><tr><td>read-only</td><td>Data only. No execution claim.</td></tr><tr><td>quote-only</td><td>Can price an action. No reviewed transaction builder.</td></tr><tr><td>prepare</td><td>Returns a policy-bound unsigned artifact.</td></tr><tr><td>intent</td><td>Returns typed data for a protocol-native or solver order.</td></tr></tbody></table></div><p>API coverage is not execution support. Unsupported and unconfigured routes fail closed instead of returning plausible placeholders.</p></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link" href="/docs/security/"><small>Previous</small>Security and execution</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#cli">CLI commands</a><a class="toc-link" href="#executables">Executables</a><a class="toc-link" href="#library">Library imports</a><a class="toc-link" href="#environment">Environment</a><a class="toc-link" href="#tiers">Capability tiers</a></aside></div>
20
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>
@@ -0,0 +1,19 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Security and execution | Oracle</title><meta name="description" content="Assume the model can be wrong or adversarially steered. Oracle keeps proposal separate from authorization and verifies the boundaries in code."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="security"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link" href="/docs/">Overview</a><a class="side-link" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link" href="/docs/connectors/">MCP connectors</a><a class="side-link" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link is-active" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">Core concepts</p><h1>Security and execution</h1><p class="docs-lede">Assume the model can be wrong or adversarially steered. Oracle keeps proposal separate from authorization and verifies the boundaries in code.</p><div class="docs-meta"><span class="meta-chip">Disarmed by default</span><span class="meta-chip">Fail closed</span><span class="meta-chip">Exact grants</span></div>
6
+ <section id="planes"><h2>Three planes</h2><div class="plane-grid"><div class="plane"><b>Data</b><span>Chain state, prices, protocol health, reads, and quotes. No key custody.</span></div><div class="plane"><b>Policy</b><span>Destination allowlists, slippage, caps, attestations, and approval binding.</span></div><div class="plane exec"><b>Execution</b><span>User wallet or optional self-hosted local signer. Never model authority.</span></div></div><p>The public import boundary is checked by tests. Hosted and keyless Oracle prepares unsigned artifacts. Self-hosting does not automatically enable signing.</p></section>
7
+ <section id="grants"><h2>Grants and confirmation</h2><p>A grant is authorization. A prompt is not. Live grants bind chain, surface, action, destination, value, expiry, and other action-specific limits. Empty allowlists refuse rather than widening access.</p><ul><li>One exact action cannot be silently reused for another destination or calldata</li><li>Policy is rechecked near sign and broadcast time</li><li>Slippage input is a maximum, not permission to widen automatically</li><li>Disarm and revoke remain dominant</li></ul></section>
8
+ <section id="local-signer"><h2>Optional self-hosted local signer</h2><p>The optional self-hosted local signer uses an encrypted vault, sealed policy, loopback-only service, and one-use confirmation. It stays inert until the owner initializes it.</p>
9
+ <div class="code-block"><div class="code-label">local signer</div><pre><code>oracle sign init
10
+ oracle sign import --key-file /protected/key --passphrase-file /protected/passphrase
11
+ oracle sign policy --policy-file /protected/policy.json
12
+ oracle sign doctor
13
+ oracle signer --credential-service oracle-local-signer --session-seconds 120
14
+ oracle sign lock</code></pre></div>
15
+ <div class="callout warn"><span class="callout-title">Never paste secrets</span><p>Use hidden terminal entry or owner-only files. Do not place a key, passphrase, signer token, bot token, or provider credential in chat or argv.</p></div></section>
16
+ <section id="autonomous"><h2>Autonomous trading</h2><p>Unattended trading is a separate opt-in for trusted self-hosted code. It requires <code>ORACLE_AUTONOMOUS_TRADING=1</code>, compatible policy mode, and a verified trigger attestation. The environment flag alone does not bypass local policy or grant bounds.</p></section>
17
+ <section id="receipts"><h2>Receipt proof</h2><p>Broadcast acceptance is not success. Oracle reports success only when a transaction hash and a successful receipt are coherent with the prepared artifact and observed chain state. Missing finality or balance evidence stays unknown.</p></section>
18
+ <section id="secrets"><h2>Secret handling</h2><ul><li>Hosted surfaces do not accept wallet keys</li><li>Local vault material stays on the self-hosted machine</li><li>Provider status commands do not print credentials</li><li>Secret-shaped fields are rejected or redacted from model context and logs</li><li>Public HTTP services bind to loopback by default and need a controlled admission layer before hosted exposure</li></ul></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link" href="/docs/browser-and-web/"><small>Previous</small>Browser and web tools</a><a class="pager-link next" href="/docs/reference/"><small>Next</small>CLI and API reference</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#planes">Three planes</a><a class="toc-link" href="#grants">Grants</a><a class="toc-link" href="#local-signer">Local signer</a><a class="toc-link" href="#autonomous">Autonomous trading</a><a class="toc-link" href="#receipts">Receipt proof</a><a class="toc-link" href="#secrets">Secret handling</a></aside></div>
19
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>
@@ -0,0 +1,32 @@
1
+ <!doctype html>
2
+ <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Using Oracle | Oracle</title><meta name="description" content="Oracle separates research, proposal, authorization, broadcast, and proof. That separation is the product, not extra ceremony."><meta name="theme-color" content="#0b1018"><meta name="robots" content="index,follow"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="stylesheet" href="/docs/docs.css"></head>
3
+ <body data-doc-page="using-oracle"><div class="grain" aria-hidden="true"></div>
4
+ <header class="docs-topbar"><a class="docs-brand" href="/"><span class="brand-orbit" aria-hidden="true"></span><span class="docs-word">oracle</span><span class="docs-version">0.35.39</span></a><button class="docs-search-button" id="docs-search-button" type="button"><span class="search-icon">⌕</span><span>Search documentation</span><kbd>⌘ K</kbd></button><div class="docs-top-actions"><a class="top-link product-link" href="/">Product</a><a class="top-link download-link" href="/download/">Download</a><button class="mobile-menu" id="docs-menu-button" type="button" aria-label="Open documentation menu">☰</button></div></header>
5
+ <div class="docs-shell"><aside class="docs-sidebar"><div class="side-group"><p class="side-title">Start here</p><a class="side-link" href="/docs/">Overview</a><a class="side-link" href="/docs/getting-started/">Getting started</a></div><div class="side-group"><p class="side-title">User guide</p><a class="side-link is-active" href="/docs/using-oracle/">Using Oracle</a></div><div class="side-group"><p class="side-title">Integrations</p><a class="side-link" href="/docs/connectors/">MCP connectors</a><a class="side-link" href="/docs/browser-and-web/">Browser and web tools</a></div><div class="side-group"><p class="side-title">Core concepts</p><a class="side-link" href="/docs/security/">Security and execution</a></div><div class="side-group"><p class="side-title">Reference</p><a class="side-link" href="/docs/reference/">CLI and API reference</a></div><div class="side-source"><b>Source of truth</b>These pages are generated from Oracle 0.35.39. <a href="https://github.com/demi-hl/oracle/tree/main/packages/oracle" target="_blank" rel="noopener noreferrer">View the repository</a>.</div></aside><main class="docs-main"><article class="docs-article"><p class="docs-kicker">User guide</p><h1>Using Oracle</h1><p class="docs-lede">Oracle separates research, proposal, authorization, broadcast, and proof. That separation is the product, not extra ceremony.</p><div class="docs-meta"><span class="meta-chip">Native chat</span><span class="meta-chip">Prepare first</span><span class="meta-chip">Receipt verified</span></div>
6
+ <section id="chat"><h2>Native chat</h2><p>The bare <code>oracle</code> command starts Oracle's own agent loop. The selected model can change without changing the Oracle persona, sessions, or active chain.</p>
7
+ <div class="code-block"><div class="code-label">chat commands</div><pre><code>/sessions list sessions
8
+ /new research ARB create a session
9
+ /resume 2 resume by number
10
+ /chain hyperliquid select a chain
11
+ /model choose a model
12
+ /setup messaging setup
13
+ /help all commands</code></pre></div></section>
14
+ <section id="lifecycle"><h2>Action lifecycle</h2><div class="steps"><div class="step"><h3>Read</h3><p>Resolve the asset, chain, venue, and current state. Missing evidence stays explicit.</p></div><div class="step"><h3>Quote and simulate</h3><p>Compare routes, include measurable gas and fees, and test the exact action where supported.</p></div><div class="step"><h3>Prepare</h3><p>Return an unsigned transaction, typed-data intent, ordered bridge transaction list, or PSBT plan.</p></div><div class="step"><h3>Authorize</h3><p>Your wallet signs by default. The optional local signer requires explicit self-hosted setup and bounded policy.</p></div><div class="step"><h3>Verify</h3><p>Report success only from chain evidence. A submitted hash without a successful receipt is not completion.</p></div></div></section>
15
+ <section id="routing"><h2>Best execution</h2><p>The highest gross quote is not necessarily the best route. Oracle compares available sources and ranks by net received after measurable gas and fees. Unknown cost is never treated as free.</p>
16
+ <div class="code-block"><div class="code-label">route</div><pre><code>oracle-route swap base 0x4200...0006 0x8335...2913
17
+ oracle-route bridge arbitrum base
18
+
19
+ # prepare the winner for the real signing wallet
20
+ oracle-route prepare base &lt;tokenIn&gt; &lt;tokenOut&gt; &lt;yourWallet&gt;
21
+ oracle-route prepare-bridge arbitrum base &lt;yourWallet&gt;</code></pre></div>
22
+ <div class="callout warn"><span class="callout-title">Bridge completion</span><p>A confirmed origin transaction does not prove destination funds arrived. Bridge preparation may return more than one transaction and order matters.</p></div></section>
23
+ <section id="building"><h2>Build and mint</h2><p>Ask Oracle to scaffold or review a fungible token, NFT collection, protocol, gacha, DEX, launchpad, or capped mint workflow. Oracle classifies the target chain family, checks for a reviewed adapter, and keeps deploy, metadata, liquidity, mint, and authority changes as separate approvals.</p><p>Builder output is prepare only: plans, source, tests, simulations, and unsigned deploy or admin artifacts. Unsupported adapters fail closed. A generic transaction builder is not permission to deploy, and every wallet-signable artifact still needs chain, target, value, gas, and authority review.</p>
24
+ <div class="callout warn"><span class="callout-title">Mint caps remain binding</span><p>NFT mint preparation must fit the authorized quantity, spend, gas, per-unit, and priority-fee caps. RPC acceptance is not mint success; verify the receipt and resulting ownership.</p></div></section>
25
+ <section id="portfolio"><h2>Portfolio reads</h2><p>Portfolio and approval scans use public addresses. Missing address families are reported as not configured, provider failures as unavailable, and unsupported families as unsupported.</p>
26
+ <div class="code-block"><div class="code-label">public addresses</div><pre><code>export ORACLE_EVM_ADDRESS=0x...
27
+ export ORACLE_SOLANA_ADDRESS=...
28
+ export ORACLE_BITCOIN_ADDRESS=bc1...
29
+ export ORACLE_HYPERLIQUID_ADDRESS=0x...
30
+ oracle data serve</code></pre></div></section>
31
+ <section id="receipts"><h2>Receipts</h2><p>Oracle does not treat an RPC acceptance response as settlement. A successful result requires coherent transaction and chain references plus included or final evidence under the configured finality rule.</p><ul><li>Transaction hash matches the prepared action</li><li>Receipt indicates success</li><li>Sender, destination, calldata, and chain remain bound</li><li>Balance deltas are marked verified only when snapshots prove them</li><li>Unknown, dropped, replaced, or reorganized outcomes stay explicit</li></ul></section><nav class="pager" aria-label="Documentation pages"><a class="pager-link" href="/docs/getting-started/"><small>Previous</small>Getting started</a><a class="pager-link next" href="/docs/connectors/"><small>Next</small>MCP connectors</a></nav></article></main><aside class="docs-toc"><p class="toc-title">On this page</p><a class="toc-link is-active" href="#chat">Native chat</a><a class="toc-link" href="#lifecycle">Action lifecycle</a><a class="toc-link" href="#routing">Best execution</a><a class="toc-link" href="#building">Build and mint</a><a class="toc-link" href="#portfolio">Portfolio reads</a><a class="toc-link" href="#receipts">Receipts</a></aside></div>
32
+ <div class="search-dialog" id="docs-search-dialog" hidden><div class="search-panel" role="dialog" aria-modal="true" aria-label="Search documentation"><div class="search-field"><input id="docs-search-input" type="search" placeholder="Search commands, chains, security..."><button class="search-close" id="docs-search-close" type="button">Esc</button></div><div class="search-results" id="docs-search-results"></div></div></div><script src="/docs/docs.js"></script></body></html>