One model name. Every device you own.
codai.ro · console · protocol · discussions
codai is a personal AI command center. You ask for codai — a single model
name — and the gateway at ai.codai.ro routes the request to the best frontier
model for the job, with one key, one bill and one transcript. The apps in this
organisation put that model on your phone, your desktop and your terminal, and
let a task started on one device be watched, steered or finished from any
other.
| Project | What it is | Status | Link |
|---|---|---|---|
| codai-phone | Android app: chat, on-device codai-nano model, screen automation, terminal, session sync. The reference executor. | codai-ro/codai-phone | |
| codai-desktop | Desktop companion (Tauri 2): run and follow sessions from your laptop. | codai-ro/codai-desktop | |
| codai-protocol | The Shared Sessions Protocol: spec, JSON Schemas, examples. How the apps talk. | codai-ro/codai-protocol | |
| codai-sdk | TypeScript client for the gateway. npm i codai-sdk |
codai-ro/codai-sdk | |
| codai-sdk-python | Python client for the gateway. pip install codai-sdk |
codai-ro/codai-sdk-python |
Using codai
- Sign in at codai.ro/console and create an API key.
- Install the phone app from codai-phone (releases) and paste the key — or point any OpenAI-compatible tool at
https://ai.codai.ro/v1with modelcodai. - Turn on session sync when you want to follow or steer a task from another device.
Building on codai
- Talk to the model: codai-sdk (TS) or codai-sdk-python; the gateway is OpenAI- and Anthropic-compatible (
/v1/chat/completions,/v1/messages). - Build a viewer, an executor or an agent that hands tasks to a device: read the protocol and run its 2-minute probe.
- Hack on the apps: each repo has a
CONTRIBUTING.md; DCO sign-off, no CLA.
flowchart LR
subgraph Devices
P[codai-phone<br/>executor + viewer]
D[codai-desktop<br/>executor + viewer]
C[console<br/>codai.ro/console]
S[your agent<br/>codai-sdk / curl]
end
GW[(gateway<br/>ai.codai.ro)]
M{{frontier models}}
P <-- "shared sessions protocol<br/>events · controls · lease" --> GW
D <-- protocol --> GW
C <-- protocol --> GW
S <-- protocol --> GW
GW -- "one model name: codai" --> M
A session lives on the gateway. Whichever device holds the lease runs the task and appends events; everyone else with a role follows live and sends controls. Dispatch wakes a specific device to start a task remotely.
What is open (Apache-2.0): the phone app, the desktop app, both SDKs, and the protocol with its schemas. You can read exactly what leaves your device, build your own clients, and self-host a client against your own gateway URL.
What stays private, and why: the gateway itself — model routing, pricing, spend caps, provider adapters — plus auth/billing and the training pipelines for codai-nano. It is the commercial core and the abuse surface of a paid service; publishing it would mostly publish other providers' pricing and our rate-limit logic. The contract it implements is fully public in codai-protocol, and the gateway's error and response shapes are OpenAI-compatible so you are never locked in.
Privacy: the apps ship no analytics SDK. Session sync is a user toggle; with it off, nothing about a task leaves the device except the inference request itself. Sessions can be created end-to-end encrypted (HIDE protocol, experimental and unaudited — the apps say so). The on-device codai-nano model derives from Gemma 4 and is distributed under the Gemma Terms, not committed to any repository.
- Questions and ideas: GitHub Discussions.
- Bugs: the Issues tab of the repository concerned — phone, desktop, protocol.
- Security: security@codai.ro — please do not open public issues for vulnerabilities. 72-hour acknowledgement, 90-day coordinated disclosure (policy).
- Conduct: Contributor Covenant 2.1 · conduct@codai.ro.
Made in Romania by Dragos Catalin Vladulescu · codai.ro
"codai" is a trademark. Forks are welcome under Apache-2.0 — please pick your own name.