diff --git a/.github/workflows/frontend-nightly.yml b/.github/workflows/frontend-nightly.yml
index 7ad149c8f..35ec830fe 100644
--- a/.github/workflows/frontend-nightly.yml
+++ b/.github/workflows/frontend-nightly.yml
@@ -11,7 +11,7 @@ on:
workflow_dispatch:
inputs:
important:
- description: 'Mark this nightly as an important update (escalates the in-app restart prompt). Retro-flag an already-published nightly by re-running only the publish-feed job with this input set.'
+ description: "Mark this nightly as an important update (escalates the in-app restart prompt). Retro-flag an already-published nightly by re-running only the publish-feed job with this input set."
type: boolean
default: false
diff --git a/.prettierignore b/.prettierignore
index 4be88241f..683c2b55f 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,5 +1,6 @@
# Generated — never hand-edit; regenerated by `npm run api` / sqlc / openapi-typescript
frontend/src/api/schema.ts
+frontend/src/renderer/routeTree.gen.ts
backend/internal/httpd/apispec/openapi.yaml
# Build outputs
diff --git a/README.md b/README.md
index 08b3f42bd..7f1a156f4 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,5 @@
-
-
+
# Agent Orchestrator
@@ -10,12 +9,11 @@
[](https://github.com/AgentWrapper/agent-orchestrator/graphs/contributors)
[](https://x.com/aoagents)
[](https://discord.com/invite/UZv7JjxbwG)
-[](https://www.apache.org/licenses/LICENSE-2.0)
+[](LICENSE)
An Agentic IDE that supervises parallel AI coding agents in isolated workspaces, with complete control and automatic feedback loops from CI failures, review comments, and merge conflicts.
-
-
+
---
@@ -26,8 +24,6 @@ Agent Orchestrator is a meta-harness agent IDE for running AI coding agents in p
The agents still do the coding. AO provides the harness around them: isolated workspaces, live terminal access, session state, PR awareness, and automatic loops that send CI failures, review comments, and merge conflicts back to the right agent. Instead of manually coordinating a pile of agent terminals, AO turns parallel agent work into a managed workflow.
----
-
## Why Agent Orchestrator?
AI coding agents become much more useful when they can work in parallel, but parallel work gets messy quickly. Branches overlap, terminals get lost, CI failures need follow-up, review comments need replies, and merge conflicts have to reach the right worker.
@@ -40,8 +36,6 @@ Agent Orchestrator is built to keep that loop visible and manageable. It helps y
- Route CI failures, review comments, and merge conflicts back to the right session
- Use different agent CLIs through one common supervisor
----
-
## How it works
At a high level, Agent Orchestrator follows a simple loop:
@@ -55,211 +49,114 @@ At a high level, Agent Orchestrator follows a simple loop:
The result is a local control layer for agentic coding: agents still do the coding, while Agent Orchestrator keeps their workspaces, status, terminals, and feedback loops organized.
----
-
-
-
----
-
## Features
-| Feature | Description |
-| :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Agent-Agnostic Platform** | 23+ agent adapters including [Claude Code](https://code.claude.com/docs/en/overview), [OpenAI Codex](https://openai.com/), [Cursor](https://cursor.com/), [OpenCode](https://opencode.ai/), [Aider](https://aider.chat/), [Amp](https://ampcode.com/manual), [Goose](https://goose-docs.ai/), [GitHub Copilot](https://github.com/features/copilot), [Grok](https://x.ai/grok), [Qwen Code](https://github.com/QwenLM/qwen-code), [Kimi Code](https://www.kimi.com/code), [Cline](https://cline.bot/), [Continue](https://www.continue.dev/), [Kiro](https://kiro.dev/), and more |
-| **Isolated Workspaces** | Each session spawns into its own git worktree with dedicated runtime |
-| **Platform-Native Runtimes** | tmux on Darwin/Linux, conpty on Windows for optimal performance |
-| **Live PR Observation** | Provider-neutral SCM observer with automatic feedback routing |
-| **Automatic Feedback Routing** | CI failures, review comments, and merge conflicts routed to the owning agent |
-| **Durable Facts Storage** | SQLite persists immutable facts with display status derived at read time |
-| **CDC Broadcasting** | DB triggers append changes to change_log, broadcasted via SSE |
-| **Desktop Experience** | Native Electron app with React UI and live terminal streaming |
-| **Loopback-Only Daemon** | HTTP control over 127.0.0.1 with no auth, CORS, or TLS by design |
+The desktop app is the main control surface: projects on the left, active sessions in the center, and the selected session's terminal, pull request state, review runs, and browser preview in the inspector.
-### Supported Agents
+
+
+
+
Parallel agent sessions
+
Start multiple coding agents from the same project without mixing files, branches, terminals, or pull request state.
+
+
+
+
+
+
+
+
Live terminal control
+
Open any session and attach to the worker terminal while keeping session summary, PR state, and follow-up actions in view.
+
+
+
+
+
+
+
+
Review feedback loop
+
Run reviewer agents, inspect review status, and route requested changes back to the right worker session.
+
+
+
+
+
+
+
+
In-app browser preview
+
Preview a session's local app beside the terminal so UI work, browser state, and agent output stay together.
+
+
+
+
+
+
-Works with 23+ CLI-based coding agents including Claude Code, OpenAI Codex, Cursor, OpenCode, Aider, Amp, Goose, GitHub Copilot, Grok, Qwen Code, Kimi Code, Crush, Cline, Droid, Devin, Auggie, Continue, Kiro, and Kilo Code.
+## Supported Agents
-For direct CLI usage, including agent readiness checks and context-aware session
-spawns, see the [CLI Guide](docs/cli/README.md).
+AO ships adapters for 23 worker agent harnesses:
+
+`claude-code` · `codex` · `aider` · `opencode` · `grok` · `droid` · `amp` · `agy` · `crush` · `cursor` · `qwen` · `copilot` · `goose` · `auggie` · `continue` · `devin` · `cline` · `kimi` · `kiro` · `kilocode` · `vibe` · `pi` · `autohand`
+
+Reviewer agents are configured separately. The current reviewer harnesses are:
+
+`claude-code` · `codex` · `opencode`
**If it runs in a terminal, it runs on Agent Orchestrator.**
----
+## Download
-## Quick Start
+Download the latest desktop build for your platform:
-### Prerequisites
+| Platform | Download |
+| -------- | ------------------------------------------------------------------------------------------------- |
+| Windows | [Setup.exe](https://github.com/AgentWrapper/agent-orchestrator/releases/latest) |
+| macOS | [Agent Orchestrator.dmg](https://github.com/AgentWrapper/agent-orchestrator/releases/latest) |
+| Linux | [Agent Orchestrator.AppImage](https://github.com/AgentWrapper/agent-orchestrator/releases/latest) |
-| Requirement | Minimum | Recommended |
-| ----------- | ------- | ----------- |
-| Go | 1.25+ | Latest |
-| Node.js | 20+ | Latest LTS |
-| Git | Any | Latest |
-| pnpm | Any | Latest |
+## Witness AO's Journey on X
-**Optional:**
-
-- `tmux` (Darwin/Linux) - For Unix runtime
-- `gh` (GitHub CLI) - For authenticated GitHub API calls
-
-### Installation
-
-Download the latest release for your platform:
-
-| Platform | Download |
-| ----------- | ------------------------------------------------------------------------------------------------- |
-| **Windows** | [Setup.exe](https://github.com/AgentWrapper/agent-orchestrator/releases/latest) |
-| **macOS** | [Agent Orchestrator.dmg](https://github.com/AgentWrapper/agent-orchestrator/releases/latest) |
-| **Linux** | [Agent Orchestrator.AppImage](https://github.com/AgentWrapper/agent-orchestrator/releases/latest) |
-
-**Direct Download:** [Latest Release](https://github.com/AgentWrapper/agent-orchestrator/releases/latest)
-
----
-
-## Telemetry
-
-Agent Orchestrator collects minimal telemetry for reliability and product understanding. Data is stored locally by default; remote transmission is opt-in via environment variables. [Read the full telemetry policy](docs/telemetry.md).
-
----
-
-## Architecture
-
-Agent Orchestrator is a long-running Go daemon built around **inbound/outbound port contracts** with swappable adapters.
-
-**Core mental model:** OBSERVE external facts → UPDATE durable facts → DERIVE display status / ACT
-
-**Key components:**
-
-- **Frontend** - Electron + React UI with TanStack Router/Query and shadcn/ui
-- **Backend Daemon** - Go-based HTTP server with controllers, services, and adapters
-- **Runtime** - Platform-specific: `tmux` on Darwin/Linux, `conpty` on Windows
-- **Storage** - SQLite with change-data-capture (CDC) for real-time updates
-- **Adapters** - 23+ agent adapters, git worktree workspace, GitHub SCM integration
-
-For detailed architecture diagrams, data flows, and load-bearing rules, see [architecture.md](docs/architecture.md).
-
----
+
## Documentation
-| Document | Description |
-| -------------------------------------------------------- | ------------------------------------------------------- |
-| [Architecture](docs/architecture.md) | System architecture, data flows, and load-bearing rules |
-| [Backend Code Structure](docs/backend-code-structure.md) | Package-by-package ownership and dependency rules |
-| [CLI Guide](docs/cli/README.md) | Direct `ao` CLI usage, command routes, and smoke tests |
-| [AGENTS.md](AGENTS.md) | Contributor and worker-agent contract |
+| Document | Start here when you need |
+| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| [docs/architecture.md](docs/architecture.md) | Backend mental model, lifecycle, persistence, CDC, status derivation, and daemon boundaries. |
+| [docs/backend-code-structure.md](docs/backend-code-structure.md) | Package ownership and where each backend concern belongs. |
+| [docs/cli/README.md](docs/cli/README.md) | CLI behavior and daemon route mapping. |
+| [docs/STATUS.md](docs/STATUS.md) | What currently ships on `main` and what remains in flight. |
+| [docs/stack.md](docs/stack.md) | Library, runtime, and dependency decisions. |
----
+## Telemetry
-## Testing
-
-```bash
-# Backend tests
-cd backend
-go test -race ./...
-
-# Frontend tests
-cd frontend
-pnpm test
-
-# Full CI validation locally
-npx @redwoodjs/agent-ci run --all
-```
-
----
-
-## Configuration
-
-All configuration is environment-driven. The daemon takes no config file.
-
-| Variable | Default | Purpose |
-| --------------------- | -------------------- | --------------------------- |
-| `AO_PORT` | `3001` | HTTP bind port |
-| `AO_REQUEST_TIMEOUT` | `60s` | Per-request timeout |
-| `AO_SHUTDOWN_TIMEOUT` | `10s` | Graceful shutdown cap |
-| `AO_RUN_FILE` | `~/.ao/running.json` | PID/port handshake |
-| `AO_DATA_DIR` | `~/.ao/data` | SQLite data directory |
-| `AO_AGENT` | `claude-code` | Compatibility agent adapter |
-| `GITHUB_TOKEN` | - | GitHub auth token |
-
-### Health Checks
-
-```bash
-curl localhost:3001/healthz # Liveness probe
-curl localhost:3001/readyz # Readiness probe
-```
-
----
-
-## Contributing
-
-We love contributions! Join our community on Discord to get started.
-
-### Join us on Discord
-
-[](https://discord.com/invite/UZv7JjxbwG)
-
-**Daily contributor sync:** Every day at **10:00 PM IST**
-
-Get your issues verified by core contributors, ask questions, share progress, and learn from the community. New contributors are always welcome!
-
-**Why join Discord?**
-
-- Get your issues and PRs verified by core contributors before investing time
-- Learn from experienced contributors in daily sync calls
-- Share your progress and get feedback
-- Get help troubleshooting in real-time
-- Stay updated on the latest developments and roadmap
-
-### Quick Start
-
-1. **Join the Discord** - Connect with the community and get guidance
-2. **Read the contributor contract** - See [AGENTS.md](AGENTS.md) for repo layout, daemon/API boundaries, and coding conventions
-3. **Pick a focused problem** - Browse [open issues](https://github.com/AgentWrapper/agent-orchestrator/issues) and choose one small enough for a focused PR
-4. **Open a clear PR** - Keep changes narrow, explain user-visible impact, link issues, include tests
-5. **Iterate with contributors** - Use review feedback to tighten the PR until verified
-
----
+Agent Orchestrator collects minimal telemetry for reliability and product understanding. Data is stored locally by default; remote transmission is opt-in through environment variables. See [docs/telemetry.md](docs/telemetry.md).
## License
-Apache License 2.0 - see [LICENSE](LICENSE) for details.
-
----
-
-
-
-**[Star us on GitHub](https://github.com/AgentWrapper/agent-orchestrator)** • **[Report Issues](https://github.com/AgentWrapper/agent-orchestrator/issues)** • **[Discussions](https://github.com/AgentWrapper/agent-orchestrator/discussions)**
-
-Made with love by the Agent Orchestrator community
-
-
+Apache License 2.0. See [LICENSE](LICENSE).
diff --git a/docs/assets/readme/browser-preview.png b/docs/assets/readme/browser-preview.png
new file mode 100644
index 000000000..d10322ad5
Binary files /dev/null and b/docs/assets/readme/browser-preview.png differ
diff --git a/docs/assets/readme/dashboard.png b/docs/assets/readme/dashboard.png
new file mode 100644
index 000000000..df023d372
Binary files /dev/null and b/docs/assets/readme/dashboard.png differ
diff --git a/docs/assets/readme/reviews-tab.png b/docs/assets/readme/reviews-tab.png
new file mode 100644
index 000000000..94f915d10
Binary files /dev/null and b/docs/assets/readme/reviews-tab.png differ
diff --git a/docs/assets/readme/session-terminal.png b/docs/assets/readme/session-terminal.png
new file mode 100644
index 000000000..ea757ea1e
Binary files /dev/null and b/docs/assets/readme/session-terminal.png differ
diff --git a/frontend/src/renderer/components/BrowserPanel.tsx b/frontend/src/renderer/components/BrowserPanel.tsx
index b6d29ce46..55af7485d 100644
--- a/frontend/src/renderer/components/BrowserPanel.tsx
+++ b/frontend/src/renderer/components/BrowserPanel.tsx
@@ -38,6 +38,7 @@ export function BrowserPanelView({
}: BrowserPanelProps & { browserView: BrowserViewModel }) {
const { navState, slotRef, navigate, goBack, goForward, reload, stop } = browserView;
const [urlInput, setUrlInput] = useState(navState.url);
+ const showStaticPreview = !window.ao?.browser && navState.url !== "";
useEffect(() => {
setUrlInput(navState.url);
@@ -111,6 +112,7 @@ export function BrowserPanelView({