AI agent
Bring your own API key (OpenAI, Anthropic, Ollama, llama.cpp, or any OpenAI-compatible endpoint), or connect a coding agent subscription. The agent reads the workspace, edits files, runs commands, browses the web, uses tools, automates recurring work, and spins up parallel sub-agents on the same machine.
Chat
| 💬 Streaming responses | Token-by-token, with tool calling — it can act, not just talk. |
| 🔧 Tool loops | Reads, writes, edits, and searches your codebase; runs shell commands foreground or background; sees the output and continues. Full list in Tools. |
| 💭 Reasoning | Chain-of-thought shown as expandable sections for models that support it, preserved across parallel tool calls and regenerated answers. |
| 📋 Plan mode | Ask for an implementation plan before any code is written. AI Labs asks helpful clarifying questions first. |
| ✏️ Output editing | Review and edit AI-generated changes before they're applied. |
| 📎 File mentions | Type @ to attach a file as context. |
| 🧩 Skill mentions | Type $ to attach a skill. |
| ⌨️ Slash commands | Type / at the start of a message for commands. |
| 🔀 Forking & branches | Fork a conversation; queued messages follow the active branch. |
| 🧠 Context compaction | Long conversations auto-summarize at a configurable token threshold (per-model) to stay fast. Summaries are stored with the chat. |
| 📊 Context usage indicator | A live meter of how full the context window is. |
| 🗂️ History | Sidebar chat history, grouped by workspace; unread chats stay visible. Chats are files — searchable, movable, commit-able. |
Chats can start from the Home screen even without a workspace attached. Each chat remembers its own model and settings, and model selection syncs across devices.
Message queue
Queue follow-up messages while the AI is still responding. Queued messages send in order when the current turn finishes and follow the branch they were queued on. Send one immediately or delete it while it waits.
Tool approval
Every tool call can require review before it runs. Auto mode approves safe, expected actions and still stops to ask when something looks risky or unclear. Approve or reject from the keyboard. Admins choose the review model and which built-in tools may run automatically — see Tools.
Voice
| 🎙️ Voice mode | Hands-free conversation: it listens, responds, and reads the answer back, then the mic re-arms for the next turn. |
| 🗣️ Dictation | Dictate a message (or a terminal command) instead of typing. |
| 🔊 Text-to-speech | Responses read aloud sentence by sentence through any OpenAI-compatible TTS API, with auto-streaming and clean teardown after playback. |
| 🎙️ Voice memos | Record audio and auto-transcribe it to a markdown file in the workspace. |
Transcription results are cached. Speech-to-text and TTS providers are configured in Admin → Audio.
Images
| 🖼️ Image understanding | The agent reads and describes images and screenshots from your workspace. |
| 🎨 Image generation & editing | The image_generate tool produces images that land as files in the workspace and render inline in chat. Configured in Admin → Images. |
Usage
Token counts and timing are shown on every response, with a usage tooltip for the breakdown. A dedicated Usage page in Settings aggregates token activity, active streaks, favorite models, busy days, and most-used tools. Theme-aware throughout.
System prompts
Custom system prompts can be set per-model, per-workspace, or globally, with template variables for context (user, workspace, date, and more). See Administration.