codai docs
Apps

Web (app.codai.ro)

The desktop interface in a browser tab — sign in with your codai account, chat anywhere, and run agents on a desktop that is signed in with the same account.

app.codai.ro is the same app as codai desktop, built for the browser. Same chat, same sessions, same settings — but a browser has no file system, no shell and no terminal, so anything that needs those runs on a host: one of your desktops with codai desktop open. Until a host is online the web app is chat only.

What works in the browser

WorksNeeds a desktop hostNot available on the web
Chat with codai, model picker, effort sliderFile tools (read, edit, diff review)Integrated terminal (PTY)
Shared sessions: list, live transcript, send / answer / cancelShell commandsEmbedded browser tab
Settings, keybindings, skinsTasks that dispatch to a desktopComputer control (Windows apps)
Devices, cost card, memory browserLocal models (Ollama, LM Studio)
Sign-in and key managementAuto-updater (the site is always current)

Sign in

Before you start

Accept the Terms and Privacy Policy. Consent is stored in this browser; clearing site data brings the gate back.

Continue in browser

The page redirects in the same tab to auth.codai.ro — Google or email, with PKCE. When you return to app.codai.ro/callback the account has issued a codai_ key for this browser, labelled OAuth · codai app in the hub.

Prefer a key you already have? I have an API key accepts a codai_… from hub.codai.ro → Keys.

Where the key lives

In this browser's localStorage, scoped to app.codai.ro, together with a stable device id for this browser profile. It is sent only as an Authorization header to the gateway URL in Settings (default https://ai.codai.ro). Nothing else on the page reads it.

Revoking the browser's key

Every browser profile that signed in appears as a device. Revoke it from hub.codai.ro → Security → Devices, or from any signed-in client under Devices. Settings → Sign out in the web app also revokes it. If the sign-in finished at the IdP but the gateway was unreachable, the app saves nothing and tells you so — the unused key still exists in the hub and can be revoked there.

Connect a desktop — "Run on"

Chat only in the browser — you will see this card until a host is online. Install the desktop app to run agents locally, or connect a host — the browser can drive a desktop that is signed in with the same account.

  1. On a computer, install codai desktop and sign in with the same account.
  2. Settings → Executor → Serve as a remote host for my phone — the status bar shows Relay: online.
  3. Back in the browser, the composer gains a Run on picker listing your online desktops (hostname, OS, last seen). Pick one.

From now on file and shell tools in this chat execute on that desktop, inside its approved folders, with its ask cards. The browser shows every step. If the host goes offline mid-task the tool call fails with No host connected — install the desktop app or pick a host.

A host must have been seen in the last 45 seconds to be listed. Hosts are per-account: nobody else's desktops appear, and yours never appear to anyone else. The underlying relay is documented on the hosts relay page.

Limitations

  • No local execution. Without a host, tool calls that touch files or a shell are refused; the model is told so and answers in chat.
  • One key per browser profile. Incognito windows and other browsers are separate devices.
  • Sessions follow the account, settings follow the browser. Skins, keybindings and gateway URL live in localStorage; sessions and memory live on the gateway.
  • Self-hosted gateways must allow the https://app.codai.ro origin for /v1/* (CORS) and register https://app.codai.ro/callback as a redirect URI on the IdP.

Troubleshooting

On this page