Prerequisites
Install these system packages before starting:
Docker Compose is optional because OAO can manage its PostgreSQL container with
the Docker CLI. The wizard also checks that the repository is complete, the
workspace is writable, enough disk space is available, and ports
3000, 5432,
8080, and 8788 are free or already owned by a healthy OAO stack.
The wizard cannot install or start system software on your behalf. Failed
checks include a platform-appropriate repair command, then setup stops before
changing the repository or Docker state.
Check the machine
Clone the repository, enter it, and run the dependency-free doctor:Run guided setup
- Repeats the non-mutating system checks.
- Installs the exact dependencies from
pnpm-lock.yamland obtains the pinned PostgreSQL image when it is not cached. - Creates
.envwhen needed and generates a 32-byte credential encryption key. - Starts PostgreSQL, applies migrations, seeds the local development tenant, and waits for the API, runtime worker, and console.
- Shows an arrow-key selector for OpenRouter, OpenAI, Anthropic, or xAI, then reads the API key with terminal echo disabled.
- Validates the connection and opens a live model search box. Type any part of
the model name or provider ID, use the arrow keys to move through matching
results, and press Enter to create the versioned model preset and a
sandbox-disabled
oao-starteragent. - Starts a durable session, waits for its first run to settle, and prints the assistant response and console URL.
.env, logs, or
.oao/setup-state.json. The local state file contains only non-secret resource
identifiers and is created with owner-only permissions.
Leave the terminal open while using OAO. Press Ctrl+C to
stop processes started by the wizard. PostgreSQL data remains in its named
Docker volume.
Resume or inspect setup
Setup is safe to run again:Reset and start over
First stop the terminal runningpnpm oao setup or pnpm dev:local with
Ctrl+C. Then run:
RESET. A successful reset permanently removes:
- the
oao-postgres-datavolume, including every local agent, session, run, provider connection, and encrypted credential; .env, including local authentication and port settings; and.oao, including setup identifiers and wizard logs.
pnpm oao doctor followed by pnpm oao setup to create a fresh environment.
For intentional non-interactive automation, pnpm oao reset --yes skips only
the confirmation prompt; it does not bypass the running-service safety check.
New setups also record the active Docker context, and reset refuses to delete a
same-named volume after the user switches to a different context.
Troubleshooting
- Docker daemon unreachable: start Docker Desktop, Colima, or another
Docker-compatible daemon, then rerun
pnpm oao doctor. - Wrong Node or pnpm version: install a supported Node release and activate
pnpm
10.27.0with Corepack. - Port already in use: stop the conflicting process. A healthy existing OAO stack is detected and reused.
- Invalid encryption key: preserve any key that protects existing credentials. For a new empty environment, remove the invalid local value and let setup generate one.
- Provider validation fails: confirm the API key can list models, then rerun setup and rotate the credential when prompted.

