Desktop app
The desktop app is the same Studio as the web. Same Dashboard, same surfaces, same chat. It adds three things only a native client can do:
- Your provider keys never leave your device. OpenAI, Anthropic, Google, others — keys live in the OS keychain and the chat hits providers directly from your machine.
- Models can run on-device. Apple Silicon Macs get an optional in-process MLX runtime — fast local inference for sensitive prompts that shouldn’t leave your computer.
- Open any folder as a workspace. Point Studio at an existing repo on disk and the chat edits in place. No mandatory cloud sync.
The chat, the Plan surfaces, the Preview, the test workbench — all identical to the web. Sign-in is the same Atelier account.
Download
From the Dashboard → Download, or from /download.
| Platform | Builds |
|---|---|
| macOS | Apple Silicon (arm64) and Intel (x64) |
| Windows | x64 |
| Linux | AppImage, deb, rpm |
Auto-update is on by default. Pin a channel (stable or beta) in Settings → Updates.
BYOS — bring your own keys
The desktop binds provider tokens to the OS keychain — macOS Keychain, Windows Credential Manager, Linux libsecret. Studio’s chat sends requests to the provider from your machine. Atelier proxies the request through a signed tunnel but never sees your token, only the routing.
Setup
Settings → Providers. Click Connect on each provider:
- API-key providers — paste the key. The field becomes masked once saved.
- OAuth providers — Studio opens a browser tab for the round-trip; on return, the tokens land in the keychain.
Each provider has a Test button to verify the connection.
There’s no “show secret” — once a token is in the keychain, Studio writes only, never reads back to the UI.
On first sign-in
The shell offers to migrate any OPENAI_API_KEY / ANTHROPIC_API_KEY / GOOGLE_API_KEY it finds in your environment into the keychain. After migration you can remove them from your shell rc; the keychain takes over.
Multi-machine
Each machine holds its own keychain. Sign in to the same Atelier account on two laptops; they hold independent tokens.
Run models on-device (Apple Silicon)
Bind an alias to a local model in Settings → Models and the chat routes that alias to your machine instead of a provider:
- Llama 3.1 — 8B, 70B.
- Qwen 2.5 — 7B, 32B.
- Mistral — 7B, Codestral 22B.
- Custom GGUF or MLX weights you point at.
Throughput depends on your hardware. Rough numbers for Apple Silicon with a quantized model:
| Hardware | Llama 3.1 8B | Codestral 22B |
|---|---|---|
| M3 Max | ~330 tok/s | ~120 tok/s |
| M2 Pro | ~210 tok/s | ~75 tok/s |
| M1 Pro | ~150 tok/s | ~52 tok/s |
The 70B fits on a Mac Studio-class machine; Studio checks your hardware before binding and tells you if a model won’t fit.
Privacy
Local hits never reach a network, never bill, never log to a provider. Use the local runtime for proprietary code that shouldn’t leave the machine — bind it to the alias the chat uses for sensitive work and routing stays on-device by default.
Switch the runtime off in Settings → Models if you want the shell to behave as a pure remote client.
Setup note
The local runtime needs a full Xcode install — not just the command-line tools. The first time you turn it on, Studio prompts if Xcode isn’t found.
Local workspaces and cloud projects
Two modes coexist:
- Cloud project — created from the Dashboard. Source lives in Atelier Git. The default for new work.
- Local workspace — File → Open Folder, point at an existing repo on disk. The shell treats it as a project; the chat edits in place. Push when you’re ready.
Both behave the same in the chat, preview, bindings, every surface. The Dashboard shows local workspaces with an on disk chip and the path.
- Promote a local workspace to cloud — File → Promote uploads the source.
- Detach a cloud project — File → Detach writes to local and removes the cloud copy.
Voice
Hold the action key (default Right-Command; configurable) to dictate. Release to send.
On Apple Silicon, transcription runs locally with Whisper.cpp. On other platforms, you can pick a remote provider or disable voice entirely.
Notifications
The shell routes build alerts, canary status, PR review requests, and comments on shared projects to the OS notification center. Per-channel filters in Settings → Notifications.
Inbound from Claude Code
The shell registers an atelier:// URL scheme so Claude Code can hand a session to Studio with a single command. See From Claude Code.
Crash + diagnostics
If something goes wrong, the shell writes a diagnostic bundle to a system folder (macOS Logs, Windows AppData, Linux ~/.local/share). It offers to send a redacted version to Atelier; provider tokens are never included.
Headless mode
The same binary supports a --headless flag for CI — nightly plan compiles, AI-assisted PR reviews, batch context refreshes. The agent does the work in the same envelope Studio would, no shell window.
See also
- What is Studio — surfaces overview
- Chat — model picker, modes
- From Claude Code — bridge handoff
- Tooling → CLI — text mode for the same project
- Base → LLM — runtime cost routing in deployed apps