Chat
Chat with any of your models in the OpenLLM web app with encrypted transcripts, or open a terminal or coding CLI on one of your devices in Device mode.
Chat in the web app has two modes, switched with Chat | Device under the message box:
- Chat sends your messages to a model you pick and keeps an encrypted transcript.
- Device opens a real terminal or coding CLI on one of your paired devices, in the browser.
Your vault must be unlocked in this browser to read or continue a chat. See Security and vault.
Chat with a model
- Open Chat and select New chat.
- Open the model picker and choose a model. To find one, type in Search models… or pick a provider from the side rail.
- Type your message and send it.
The picker lists the models available to your account, including included models and models on your providers. To keep a model at the top, select the star next to it. Starred models appear under Favorites. Favorites are saved in this browser.
Attach files
Select Attach files, or paste a file into the message box. Chat accepts images (PNG, JPEG, WebP, GIF), PDFs, and plain-text or Markdown files. Whether a model can read an attachment depends on the model.
Use your voice
Select Start voice input, speak, then select Stop recording and transcribe. The transcript lands in the message box for you to edit and send.
Voice input needs a speech model. If none of your models can transcribe audio, the mic shows Voice input needs a speech model. Connect an OpenAI API key to enable it. Subscription providers are chat-only. See API keys.
Watch the context window
The meter in the message box estimates how much of the model's context window the conversation uses. It is an estimate from the transcript, because providers report exact usage only after a turn completes. If a model doesn't publish a context limit, the meter shows only the running total. To control what happens when a conversation outgrows a model, see Routing and fallback.
Organize chats
Open the More actions menu on a chat in the sidebar:
| Action | What it does |
|---|---|
| Pin / Unpin | Keeps the chat at the top of the list. |
| Rename | Changes the title. On desktop you can also double-click the chat. |
| Archive / Restore | Moves the chat to the Archived section at the bottom of the list, or back. |
| Select | Selects several chats at once. |
| Delete | Permanently removes the chat, its encrypted history, and the files you attached to it. |
Device mode
Device mode runs a real CLI in a terminal on one of your devices and streams it to the browser. The session runs on the machine, with that machine's files, logins, and tools.
Before you begin
- A paired device that is online. See Add a device.
- The device runs macOS or Linux. Device chat needs a terminal, which other platforms don't provide.
- Remote sessions are turned on for that device. They are off on a fresh install unless you left Remote terminal on when you paired it.
To turn remote sessions on, run this on the device itself:
openllmd sessions onTo turn them off again, run openllmd sessions off. To check, run openllmd sessions status. The setting is stored as OPENLLM_DAEMON_PTY_SESSIONS in ~/.openllm/.env. A daemon that is already running can keep its old setting, so run openllm restart after you change it.
Start a session
- Choose the device in the device switcher at the top of the app.
- Under the message box, select Device.
- Pick a CLI. Terminal opens a shell. Claude Code, Codex, Grok Build, OpenCode, and Hermes appear when they are installed on the device.
- Optional: choose the Folder to start in, and type a task to hand the CLI when it opens.
- Select Start, or Start & send if you typed a task.
Device mode also lists the sessions you can pick up again, grouped by folder: sessions still running on the machine, and earlier Claude Code, Codex, Grok Build, OpenCode, and Hermes sessions that you can resume. In the sidebar, Detach session leaves a session running on the machine and End session stops it.
If Device is greyed out, hover over it to see why. The common reasons:
| Shown | Cause | Fix |
|---|---|---|
| Offline | No daemon is running on that machine | Run openllm start there. |
| Sessions off | Remote sessions are off | Run openllmd sessions on on that machine. |
| No terminal | The machine isn't macOS or Linux | Use a macOS or Linux device. |
| Vault locked | The device only accepts sessions your vault has signed | Unlock your vault in this browser. |
Encryption
Your chat transcripts are encrypted in your browser with your vault key before they are saved. OpenLLM stores only the ciphertext and cannot read them.
Chat titles are not encrypted, so the chat list stays readable while your vault is locked. A new chat's title is the first line of your first message, up to 60 characters. Rename a chat if its first line is sensitive.
If you reset your vault, chats saved under the old vault can no longer be decrypted, and the files attached to them are deleted.
Media library
Images, audio, and video generated in your chats are collected in the media library at /chat/library, with the files you attached. Filter by Images, Video, Audio, or Documents. Generated media stays in the library after you delete the chat that made it. To remove an item, select Delete media.
Media URLs are public
Generated media and the files you attach to chats are stored unencrypted at public URLs. The URLs are unguessable, but anyone who has one can open the file without signing in. Share them on purpose, and don't attach files you need to keep private. Deleting an item from the library removes the file and its URL.
Related
Last updated on
Devices
Pair a Mac or Linux machine with OpenLLM, run the daemon that serves your subscriptions and local models, and manage devices and keys in Devices & keys.
Memory and integrations
Give Claude Code, Codex and your other clients a shared, encrypted memory through the OpenLLM MCP server, and add marketplace tools such as context.dev.