Skip to content

Commit 66a238b

Browse files
committed
OpenAnalyst CLI documentation site
0 parents  commit 66a238b

15 files changed

Lines changed: 3505 additions & 0 deletions

Documentation/agents.html

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Multi-Agent System - OpenAnalyst CLI Docs</title>
7+
<link rel="stylesheet" href="styles.css">
8+
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
9+
</head>
10+
<body>
11+
<div class="docs-layout">
12+
13+
<nav class="sidebar">
14+
<div class="sidebar-logo">
15+
<a href="../Index.html">
16+
<img src="https://openanalyst.com/images/new-logo.png" alt="OA" >
17+
<h2>OpenAnalyst CLI</h2>
18+
</a>
19+
<span data-version-prefix="Documentation v">Documentation v1.0.106</span>
20+
</div>
21+
<div class="sidebar-section">
22+
<div class="sidebar-section-title">Documentation</div>
23+
24+
<a href="index.html" class="sidebar-link">Introduction</a>
25+
<a href="installation.html" class="sidebar-link">Installation</a>
26+
<a href="quickstart.html" class="sidebar-link">Quick Start</a>
27+
<a href="authentication.html" class="sidebar-link">Authentication</a>
28+
</div>
29+
<div class="sidebar-section">
30+
<div class="sidebar-section-title">Core Concepts</div>
31+
<a href="providers.html" class="sidebar-link">LLM Providers</a>
32+
<a href="tui.html" class="sidebar-link">Terminal UI</a>
33+
<a href="commands.html" class="sidebar-link">Slash Commands</a>
34+
<a href="tools.html" class="sidebar-link">Built-in Tools</a>
35+
</div>
36+
<div class="sidebar-section">
37+
<div class="sidebar-section-title">Advanced</div>
38+
<a href="agents.html" class="sidebar-link active">Multi-Agent System</a>
39+
<a href="configuration.html" class="sidebar-link">Configuration</a>
40+
<a href="mcp.html" class="sidebar-link">MCP Integration</a>
41+
<a href="architecture.html" class="sidebar-link">Architecture</a>
42+
</div>
43+
</nav>
44+
45+
<main class="main-content">
46+
47+
<div class="page-header">
48+
<span class="badge">Advanced</span>
49+
<h1>Multi-Agent System</h1>
50+
<p class="subtitle">Orchestrate parallel agents, autonomous loops, and swarm task decomposition for complex workflows.</p>
51+
</div>
52+
53+
<h2 id="overview">Agent Types</h2>
54+
55+
<div class="card-grid">
56+
<div class="card">
57+
<div class="card-icon">&#128172;</div>
58+
<h3>Primary Agent</h3>
59+
<p>The interactive conversational agent. Always one active, connected to your TUI or REPL.</p>
60+
</div>
61+
<div class="card">
62+
<div class="card-icon">&#128269;</div>
63+
<h3>Explore Agent</h3>
64+
<p>Fast, read-only codebase exploration. Uses search and file reading tools only.</p>
65+
</div>
66+
<div class="card">
67+
<div class="card-icon">&#128203;</div>
68+
<h3>Plan Agent</h3>
69+
<p>Read-only architecture and design planning. Returns step-by-step implementation plans.</p>
70+
</div>
71+
<div class="card">
72+
<div class="card-icon">&#9881;</div>
73+
<h3>General Agent</h3>
74+
<p>Full-tool access general-purpose agent. Can read, write, execute, and search.</p>
75+
</div>
76+
</div>
77+
78+
<h2 id="sub-agents">Sub-Agents</h2>
79+
<p>The primary agent can spawn sub-agents for parallel work. Each sub-agent has its own conversation runtime, tool permissions, and token budget.</p>
80+
81+
<pre><code><span class="token-comment"># The agent tool spawns sub-agents automatically when needed.</span>
82+
<span class="token-comment"># For example, when exploring a large codebase:</span>
83+
"Search for all API endpoints in this project"
84+
85+
<span class="token-comment"># The agent may spawn an Explore sub-agent to search in parallel</span>
86+
<span class="token-comment"># while continuing to work on the main task.</span></code></pre>
87+
88+
<h2 id="swarm">Agent Swarm</h2>
89+
<p>Use <code>/swarm</code> to decompose a complex task into parallel sub-tasks, each handled by a separate agent:</p>
90+
91+
<pre><code><span class="token-comment"># Spawn multiple agents for parallel task execution</span>
92+
/swarm refactor all API handlers to use the new error type</code></pre>
93+
94+
<p>The swarm:</p>
95+
<ol>
96+
<li>Analyzes the task and decomposes it into independent sub-tasks</li>
97+
<li>Spawns a dedicated agent for each sub-task</li>
98+
<li>Runs all agents in parallel</li>
99+
<li>Collects and synthesizes results</li>
100+
</ol>
101+
102+
<h2 id="autonomous">Autonomous Agent</h2>
103+
<p>The <code>/openanalyst</code> command runs a fully autonomous agent loop inspired by the Karpathy agentic pattern:</p>
104+
105+
<pre><code>/openanalyst "add comprehensive error handling to the API module" --max-turns 20</code></pre>
106+
107+
<h3>The Loop: Think &rarr; Act &rarr; Observe &rarr; Verify</h3>
108+
109+
<div class="steps">
110+
<div class="step">
111+
<h3>Think</h3>
112+
<p>The agent uses extended thinking (when available) to plan the next action. It considers the goal, current state, and what it has learned so far.</p>
113+
</div>
114+
<div class="step">
115+
<h3>Act</h3>
116+
<p>Executes one or more tool calls: reading files, editing code, running commands, or searching.</p>
117+
</div>
118+
<div class="step">
119+
<h3>Observe</h3>
120+
<p>Processes tool results and updates its understanding of the codebase state.</p>
121+
</div>
122+
<div class="step">
123+
<h3>Verify</h3>
124+
<p>Self-checks whether the goal has been achieved. If not, loops back to Think. If verification criteria are provided, runs them.</p>
125+
</div>
126+
</div>
127+
128+
<h3>Options</h3>
129+
<div class="param-table">
130+
<div class="param-row">
131+
<span class="param-name">--goal &lt;text&gt;</span>
132+
<span class="param-type">string</span>
133+
<span class="param-optional">Optional</span>
134+
<span class="param-desc">Explicit goal statement for the agent</span>
135+
</div>
136+
<div class="param-row">
137+
<span class="param-name">--criteria &lt;cmd&gt;</span>
138+
<span class="param-type">string</span>
139+
<span class="param-optional">Optional</span>
140+
<span class="param-desc">Shell command to verify success (exit code 0 = done)</span>
141+
</div>
142+
<div class="param-row">
143+
<span class="param-name">--max-turns &lt;n&gt;</span>
144+
<span class="param-type">number</span>
145+
<span class="param-optional">Optional</span>
146+
<span class="param-desc">Maximum loop iterations before stopping</span>
147+
</div>
148+
</div>
149+
150+
<h2 id="moe">Mixture of Experts (MOE)</h2>
151+
<p>For complex problems, the orchestrator can dispatch to multiple specialized agents simultaneously, each using a model best suited for their task type:</p>
152+
153+
<table>
154+
<thead><tr><th>Agent Role</th><th>Optimized For</th><th>Example Model</th></tr></thead>
155+
<tbody>
156+
<tr><td>Explorer</td><td>Fast codebase search</td><td>haiku / grok-mini</td></tr>
157+
<tr><td>Planner</td><td>Architecture design</td><td>opus / gemini-2.5-pro</td></tr>
158+
<tr><td>Coder</td><td>Code generation</td><td>sonnet / gpt-4o</td></tr>
159+
<tr><td>Writer</td><td>Documentation</td><td>sonnet / gemini-2.5-flash</td></tr>
160+
</tbody>
161+
</table>
162+
163+
<h2 id="model-routing">Smart Model Routing</h2>
164+
<p>The <code>ModelRouter</code> automatically selects the best model for each action type. Configure routing with:</p>
165+
166+
<pre><code><span class="token-comment"># View the routing table</span>
167+
/route
168+
169+
<span class="token-comment"># Set routing for a category</span>
170+
/route explore haiku
171+
/route code sonnet
172+
/route plan opus</code></pre>
173+
174+
<h2 id="effort">Effort Budget</h2>
175+
<p>Control how much "thinking" the agent invests per category:</p>
176+
177+
<pre><code><span class="token-comment"># Set global effort</span>
178+
/effort high
179+
180+
<span class="token-comment"># Set per-category effort</span>
181+
/effort explore low
182+
/effort plan max
183+
/effort code medium</code></pre>
184+
185+
<table>
186+
<thead><tr><th>Level</th><th>Description</th></tr></thead>
187+
<tbody>
188+
<tr><td><code>low</code></td><td>Minimal thinking, fast responses</td></tr>
189+
<tr><td><code>medium</code></td><td>Balanced thinking and speed</td></tr>
190+
<tr><td><code>high</code></td><td>More thorough reasoning</td></tr>
191+
<tr><td><code>max</code></td><td>Extended thinking with full reasoning chains</td></tr>
192+
</tbody>
193+
</table>
194+
195+
<h2 id="lifecycle">Agent Lifecycle Events</h2>
196+
<p>The TUI displays real-time agent events:</p>
197+
<ul>
198+
<li><strong>AgentSpawned</strong> &mdash; New agent created with parent-child relationship</li>
199+
<li><strong>AgentStatusChanged</strong> &mdash; Pending &rarr; Running &rarr; Completed/Failed</li>
200+
<li><strong>AgentCompleted</strong> &mdash; Agent finished with result summary</li>
201+
<li><strong>AgentFailed</strong> &mdash; Agent encountered an error</li>
202+
</ul>
203+
204+
<div class="page-footer">
205+
<a href="tools.html">&larr; Built-in Tools</a>
206+
<a href="configuration.html">Configuration &rarr;</a>
207+
</div>
208+
209+
</main>
210+
</div>
211+
<script src="../version.js"></script>
212+
<footer style="text-align:center;padding:32px;color:#6b6966;font-size:12px">© 2026 OpenAnalyst Inc. All rights reserved. OpenAnalyst is a registered trademark of OpenAnalyst Inc. Contact: support@openanalyst.com</footer></body>
213+
</html>

Documentation/authentication.html

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>Authentication - OpenAnalyst CLI Docs</title>
7+
<link rel="stylesheet" href="styles.css">
8+
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
9+
</head>
10+
<body>
11+
<div class="docs-layout">
12+
13+
<nav class="sidebar">
14+
<div class="sidebar-logo">
15+
<a href="../Index.html">
16+
<img src="https://openanalyst.com/images/new-logo.png" alt="OA" >
17+
<h2>OpenAnalyst CLI</h2>
18+
</a>
19+
<span data-version-prefix="Documentation v">Documentation v1.0.106</span>
20+
</div>
21+
<div class="sidebar-section">
22+
<div class="sidebar-section-title">Documentation</div>
23+
24+
<a href="index.html" class="sidebar-link">Introduction</a>
25+
<a href="installation.html" class="sidebar-link">Installation</a>
26+
<a href="quickstart.html" class="sidebar-link">Quick Start</a>
27+
<a href="authentication.html" class="sidebar-link active">Authentication</a>
28+
</div>
29+
<div class="sidebar-section">
30+
<div class="sidebar-section-title">Core Concepts</div>
31+
<a href="providers.html" class="sidebar-link">LLM Providers</a>
32+
<a href="tui.html" class="sidebar-link">Terminal UI</a>
33+
<a href="commands.html" class="sidebar-link">Slash Commands</a>
34+
<a href="tools.html" class="sidebar-link">Built-in Tools</a>
35+
</div>
36+
<div class="sidebar-section">
37+
<div class="sidebar-section-title">Advanced</div>
38+
<a href="agents.html" class="sidebar-link">Multi-Agent System</a>
39+
<a href="configuration.html" class="sidebar-link">Configuration</a>
40+
<a href="mcp.html" class="sidebar-link">MCP Integration</a>
41+
<a href="architecture.html" class="sidebar-link">Architecture</a>
42+
</div>
43+
</nav>
44+
45+
<main class="main-content">
46+
47+
<div class="page-header">
48+
<span class="badge">Getting Started</span>
49+
<h1>Authentication</h1>
50+
<p class="subtitle">Connect to any LLM provider using OAuth, API keys, or environment variables.</p>
51+
</div>
52+
53+
<h2 id="methods">Authentication Methods</h2>
54+
55+
<div class="card-grid">
56+
<div class="card">
57+
<div class="card-icon">&#128273;</div>
58+
<h3>OAuth (Recommended)</h3>
59+
<p>Browser-based login with PKCE security. Tokens refresh automatically.</p>
60+
</div>
61+
<div class="card">
62+
<div class="card-icon">&#128272;</div>
63+
<h3>API Key</h3>
64+
<p>Set environment variables or edit <code>.env</code> file directly.</p>
65+
</div>
66+
<div class="card">
67+
<div class="card-icon">&#128196;</div>
68+
<h3>Credentials File</h3>
69+
<p>Saved automatically by <code>openanalyst login</code> to <code>~/.openanalyst/credentials.json</code>.</p>
70+
</div>
71+
</div>
72+
73+
<h2 id="oauth">OAuth Login</h2>
74+
<p>The recommended way to authenticate. Supports all providers with automatic token refresh.</p>
75+
76+
<div class="callout callout-tip">
77+
<div class="callout-title">Direct Provider Login</div>
78+
For <strong>Claude</strong> (Anthropic), <strong>Codex</strong> (OpenAI), and <strong>Gemini</strong> (Google) you can login directly through your provider account via browser OAuth. No API key needed &mdash; just sign in with your existing Anthropic, OpenAI, or Google account. Credentials are stored securely with PKCE and auto-refresh.
79+
</div>
80+
81+
<pre><code><span class="token-comment"># Interactive provider picker</span>
82+
openanalyst login
83+
84+
<span class="token-comment"># Login to a specific provider</span>
85+
openanalyst login --provider anthropic
86+
87+
<span class="token-comment"># Check logged-in providers</span>
88+
openanalyst whoami</code></pre>
89+
90+
<h3>How OAuth Works</h3>
91+
<ol>
92+
<li>You run <code>openanalyst login</code> and pick a provider</li>
93+
<li>A browser window opens for the provider's consent page</li>
94+
<li>After authorization, the CLI receives a callback on <code>localhost:8080</code></li>
95+
<li>Tokens are stored encrypted in <code>~/.openanalyst/credentials.json</code></li>
96+
<li>Tokens auto-refresh when expired &mdash; no re-login needed</li>
97+
</ol>
98+
99+
<div class="callout callout-info">
100+
<div class="callout-title">Security</div>
101+
OAuth uses <strong>PKCE</strong> (Proof Key for Code Exchange) with SHA-256 challenge. No client secret is stored on disk.
102+
</div>
103+
104+
<h2 id="api-keys">API Key Authentication</h2>
105+
<p>Set API keys via environment variables or the <code>.env</code> file:</p>
106+
107+
<div class="code-title">~/.openanalyst/.env</div>
108+
<pre><code><span class="token-comment"># OpenAnalyst (default provider)</span>
109+
OPENANALYST_AUTH_TOKEN=your-openanalyst-key
110+
OPENANALYST_BASE_URL=https://api.openanalyst.com/api
111+
112+
<span class="token-comment"># Anthropic / Claude (or use OAuth: openanalyst login --provider anthropic)</span>
113+
ANTHROPIC_API_KEY=sk-ant-api03-...
114+
115+
<span class="token-comment"># OpenAI / GPT / Codex (or use OAuth: openanalyst login --provider openai)</span>
116+
OPENAI_API_KEY=sk-...
117+
118+
<span class="token-comment"># Google Gemini (or use OAuth: openanalyst login --provider gemini)</span>
119+
GEMINI_API_KEY=AIzaSy...
120+
121+
<span class="token-comment"># xAI / Grok</span>
122+
XAI_API_KEY=xai-...
123+
124+
<span class="token-comment"># OpenRouter (350+ models)</span>
125+
OPENROUTER_API_KEY=sk-or-v1-...
126+
127+
<span class="token-comment"># Amazon Bedrock</span>
128+
BEDROCK_API_KEY=your-bedrock-key</code></pre>
129+
130+
<h2 id="resolution">Provider Resolution Order</h2>
131+
<p>When you specify a model, OpenAnalyst resolves the provider and auth in this order:</p>
132+
133+
<table>
134+
<thead><tr><th>Model</th><th>Provider</th><th>Auth Variable</th><th>Fallback</th></tr></thead>
135+
<tbody>
136+
<tr><td><code>openanalyst-beta</code></td><td>OpenAnalyst</td><td><code>OPENANALYST_AUTH_TOKEN</code></td><td><code>ANTHROPIC_API_KEY</code></td></tr>
137+
<tr><td><code>opus</code>, <code>sonnet</code>, <code>haiku</code></td><td>Anthropic</td><td><code>ANTHROPIC_API_KEY</code></td><td>&mdash;</td></tr>
138+
<tr><td><code>gpt-4o</code>, <code>o3</code>, <code>codex-mini</code></td><td>OpenAI</td><td><code>OPENAI_API_KEY</code></td><td>&mdash;</td></tr>
139+
<tr><td><code>gemini-2.5-pro</code></td><td>Google</td><td><code>GEMINI_API_KEY</code></td><td>&mdash;</td></tr>
140+
<tr><td><code>grok-3</code></td><td>xAI</td><td><code>XAI_API_KEY</code></td><td>&mdash;</td></tr>
141+
<tr><td><code>openrouter/*</code></td><td>OpenRouter</td><td><code>OPENROUTER_API_KEY</code></td><td>&mdash;</td></tr>
142+
<tr><td><code>bedrock/*</code></td><td>Bedrock</td><td><code>BEDROCK_API_KEY</code></td><td>&mdash;</td></tr>
143+
</tbody>
144+
</table>
145+
146+
<h2 id="credentials-file">Credentials File</h2>
147+
<p>After <code>openanalyst login</code>, tokens are saved to:</p>
148+
<pre><code>~/.openanalyst/credentials.json</code></pre>
149+
<p>This file contains OAuth access tokens, refresh tokens, and expiry timestamps. It is automatically managed &mdash; you should not edit it manually.</p>
150+
151+
<div class="callout callout-warning">
152+
<div class="callout-title">Warning</div>
153+
Never commit <code>credentials.json</code> or <code>.env</code> to version control. The <code>~/.openanalyst/</code> directory should remain private.
154+
</div>
155+
156+
<h2 id="logout">Logging Out</h2>
157+
<pre><code><span class="token-comment"># Logout from all providers</span>
158+
openanalyst logout
159+
160+
<span class="token-comment"># Or from within the TUI</span>
161+
/logout</code></pre>
162+
163+
<div class="page-footer">
164+
<a href="quickstart.html">&larr; Quick Start</a>
165+
<a href="providers.html">LLM Providers &rarr;</a>
166+
</div>
167+
168+
</main>
169+
</div>
170+
<script src="../version.js"></script>
171+
<footer style="text-align:center;padding:32px;color:#6b6966;font-size:12px">© 2026 OpenAnalyst Inc. All rights reserved. OpenAnalyst is a registered trademark of OpenAnalyst Inc. Contact: support@openanalyst.com</footer></body>
172+
</html>

0 commit comments

Comments
 (0)