Orchestrator.incDocs

FAQ

Common questions about the current Orchestrator desktop product.

View on GitHub
How is Orchestrator different from several agent terminals?

Orchestrator adds isolated worktrees, durable session identity, Chat or TUI control, pull-request observation, lifecycle reactions, review runs, notifications, and browser previews around those agents.

Do I have to use Claude Code?

No. Orchestrator includes adapters for more than twenty harnesses, including Claude Code, Codex, Cursor, Aider, OpenCode, Droid, Kimi Code, and others. Chat support depends on the harness and installed version; see the agent capability catalog. Unreal Agent is Chat-only; most remaining harnesses also have terminal interfaces.

Does Orchestrator merge pull requests?

Orchestrator provides a merge action, but merging is a deliberate user or workflow decision, not an unconditional default. Review code and repository policy before requesting a merge.

Which source-control systems are supported?

GitHub and GitLab provide pull-request or merge-request (PR/MR), CI, review, and merge-status data. Issue intake works with either provider when enabled in both daemon and project settings. Orchestrator reads issues but does not change them. Linear and old external plugin packages are not supported. See source-control setup.

Does Orchestrator need webhooks?

The local SCM observation workflow does not require webhooks. GitHub polling uses authentication, ETag guards, and semantic diffing. Live desktop updates come from the daemon's SQLite CDC event stream.

Does it work on Windows?

Yes. Windows supports the desktop app, Chat, and native Terminal UI through Orchestrator's conpty host. tmux and iTerm2-specific behavior applies only to other platforms.

Where does Orchestrator store data?

Under ~/.ao by default. Durable daemon state is SQLite under ~/.ao/data; the same Orchestrator home also contains the run file, managed worktrees and metadata, Electron data, and mobile configuration. Advanced daemon paths can be overridden with AO_DATA_DIR and AO_RUN_FILE.

Can I expose Orchestrator on a remote server?

Do not expose the primary daemon listener. It is unauthenticated and fixed to 127.0.0.1. Connect Mobile creates a separate authenticated path. Its direct LAN listener is plaintext for trusted networks; an advertised managed HTTPS endpoint supports remote pairing. The current Tailscale pairing flow has additional limits, especially on iPhone. See Connect Mobile.

What does Orchestrator cost?

Orchestrator is Apache-2.0 licensed. Agent usage is billed according to the provider account or subscription used by each installed harness. Chat records usage data when the provider reports it. Cloud is a separately gated service; check the account offering shown in your app rather than assuming the local license includes remote execution or provider credits.

Does Orchestrator upload my source code?

Local sessions use worktrees on your computer. Your coding agents and source-control tools follow their own data policies. Cloud sessions run remotely and require sharing the project content needed for that work.

Production builds also send product telemetry to PostHog. It can include an installation ID, coarse usage and reliability data, GitHub repository-owner names when you add a project, and your GitHub username. If you sign in to AO Cloud, it also includes your AO Cloud user ID and the email address of that account, which is set once as a PostHog person property and is never read from git config. PostHog links events from your desktop, daemon, and paired phone to that profile. It does not include source code or conversation content, and session recording is disabled.

To opt out, turn off Settings > General > Privacy > Share usage analytics. It stops PostHog analytics in the desktop app, the daemon, and a paired phone, and resets the PostHog identity. The separate Event reporting consent and the environment variables have different scopes. See the telemetry reference.

Can I still install Orchestrator from npm?

The legacy @aoagents/ao package remains available, but 0.10.0 is its final release and it will not receive updates. Prefer the desktop download. Existing npm users can run ao start to fetch and open the desktop build.

Can Chat and Terminal UI run at the same time for one session?

No. A session commits to one controller at a time. Compatible Claude Code and Codex sessions can hand off between interfaces, but Orchestrator drains or interrupts the old controller before activating the new one.

How do I uninstall Orchestrator?

On macOS, first open Settings → Stay Awake → Battery and heat protection and choose Revoke authorization… if you authorized Low Power Mode. Disable Low Power Mode policies in other AO instances first. AO disables its automation, restores AO-owned changes, and asks for administrator approval to remove only /etc/sudoers.d/ao-low-power-<your numeric uid>. Canceling removal leaves automation disabled and the permission installed; retry before uninstalling. Existing user-owned power preferences are preserved.

If AO is already removed, cannot open, or the revoke action is unavailable, first confirm all AO-owned power changes are restored, then remove only the account's grant with sudo rm -f /etc/sudoers.d/ao-low-power-$(id -u) and verify with sudo visudo -c. Keep ~/.ao recovery journals until restoration is confirmed. Disabling automation or deleting the app alone does not remove this permission.

Remove the desktop application using your operating system's normal process. If you also remove ~/.ao, you permanently delete Orchestrator's database, session history, managed state, Electron data, and mobile pairing configuration. Inspect and preserve any work you need first. Legacy CLI users can separately run npm uninstall -g @aoagents/ao.