Open source · Rust · Tauri · Linux

All your models.
One desk.

A local-first AI workspace for Lumo, DeepSeek and any OpenAI-compatible provider — with an OpenCode coding agent, projects, attachments, memory and tools.

Linux x86_64 AppImage · .deb MIT licensed
Model Desk
Model Desk chat with markdown and code
Rustnative backend
0telemetry
FR / ENinterface language
112 MBAppImage
Why Model Desk

Everything you need to work with your models.

Switch providers, keep your history local, and hand coding tasks to OpenCode without leaving your desk.

Multi-provider

Lumo through lumo-tamer, DeepSeek, or any OpenAI-compatible endpoint. Switch providers in one click and keep one history.

OpenCode agent

Run OpenCode inside a project folder, stream tool calls, choose the model and agent, and approve actions yourself or automatically.

Streaming & reasoning

Token-by-token replies, provider-aware reasoning, Markdown and highlighted code. Stop a generation at any time.

Bonsai image studio

Generate images locally with Bonsai Image: prompt, model variant, resolution, seed, steps, guidance, batch of 4, stop and a persistent gallery. Start the backend automatically from the Images tab, unload the GPU model manually or on quit. Connects to your own PrismML backend.

Local-first history

Conversations, projects, favorites and search live in local JSON files. Switch providers without losing your history.

Attachments & OCR

Drop text, code, PDF, DOCX/ODT or images. Text is extracted locally and images are OCR'd before being sent to the selected provider.

Tools with permissions

Read, write, search and shell tools with a workspace sandbox and confirmation prompts. You stay in control.

Memory & personalization

Tell the assistant who you are, what you do and how to behave. Durable memories can be extracted automatically and stay local.

Canvas & creations

HTML and SVG creations open in a sandboxed canvas. The library keeps your best artifacts and images one click away.

System tray

Close to tray, reopen instantly, start a new chat or quit. The app stays out of your way until you need it.

French / English

The interface follows your system locale, with a manual override in Settings. Dates and labels follow the active language.

Web search

Enable lumo-tamer's native web search with one switch. Ask for current weather, news or facts and get live answers.

A closer look

A real desktop for your AI.

Actual screenshots from the app: providers, chat, the Bonsai image studio and the OpenCode agent.

How it works

One desk, many providers.

Model DeskRust · Tauri
↓
Lumo Tamerlocal API → Proton Lumo
DeepSeekdirect API
OpenCodelocal coding agent
Bonsai Imagelocal image server

Model Desk talks to Lumo through your local lumo-tamer, to DeepSeek directly, and to OpenCode for coding tasks. There is no Model Desk cloud.

Privacy

Your data stays with you.

Model Desk is a local client, not a hosted service.

Local storage

Conversations, projects, memories and settings live in ~/.config/model-desk. No cloud account for the client.

Files processed locally

PDF text, Office documents and image OCR are extracted on your machine. Only the resulting text is sent to the provider you selected.

No telemetry

No analytics, no tracking, no account required to run the desktop app. The source code is open.

Download

Ready to try it?

AppImage or .deb, Linux x86_64. Version 0.4.1 adds automatic Bonsai backend start, Lumo Tamer, DeepSeek and the OpenCode agent.

# Make the AppImage executable, then run it
chmod +x Model-Desk_0.4.1_amd64.AppImage
./Model-Desk_0.4.1_amd64.AppImage

The AppImage uses the system WebKitGTK 4.1. For Lumo, run lumo-tamer. For the agent, install OpenCode. For PDF/OCR attachments, install poppler-utils, tesseract and unzip.

Under the hood

Rust, Tauri, and nothing unnecessary.

RustSSE streaming, tools, attachments
Tauri v2System webview, small binary
WebKitGTK 4.1Linux rendering
JSONLocal, readable history

Good to know

  • Lumo image generation and Custom Lumos are Proton features that lumo-tamer does not expose.
  • DeepSeek and custom endpoints have their own context limits, pricing and availability.
  • Web search is a global lumo-tamer setting; enabling it restarts the local service.
  • The OpenCode agent runs with the permissions you grant it; auto-approval gives it your user rights.
FAQ

Frequently asked questions

Is this official?

No. Model Desk is independent and not affiliated with Proton. Lumo is a trademark of Proton AG. Lumo support goes through lumo-tamer's unofficial API.

Where is my data stored?

In ~/.config/model-desk. Conversations, projects, memories and settings stay local.

Do I need Docker?

Only if you want Lumo through lumo-tamer. The installer uses Docker, Compose and git. DeepSeek and OpenCode do not require Docker.

Can I use my existing lumo-tamer install?

Yes. Set the lumo-tamer directory and API key in Settings → Connection. The app auto-detects the provider from OpenCode when available.

Are images sent to the provider?

Not the raw images. The client extracts text with local OCR and sends that text. Native attachments depend on the provider.

What license is it under?

MIT. The code is open source and contributions are welcome.

Which providers are supported?

Lumo through lumo-tamer, DeepSeek, and any OpenAI-compatible endpoint. OpenCode can run as a coding agent with its own model selection.

Can I use Model Desk without Lumo?

Yes. Use DeepSeek or a custom endpoint for chat, and OpenCode for coding tasks. Lumo is optional.

Give your models a desk.

Download the AppImage, pick Lumo, DeepSeek or your own endpoint, then chat or start an OpenCode agent task.