Desktop app
The cockpit: chats, the Personal Agent, the brain, usage, settings — one native window (Tauri, not Electron).
Chats & sessions
Every chat is a session against a project folder. Sessions live in the engine store, so the same history is visible from the TUI and CLI; a session started elsewhere appears in your sidebar automatically, and renames from any surface win by recency.
- Folders as projects — right-click to create projects, drag chats between them.
- Pin chats to keep them on top (★ shows everywhere, including the TUI).
- Search filters the sidebar as you type.
- Export / import — right-click a chat: JSON (re-importable) or Markdown (readable).
The composer
Type a task, or start with / for the command menu. Attach images with the paperclip or paste them; the mic does offline dictation (faster-whisper — nothing leaves your machine).
| Command | What it does |
|---|---|
| /plan · /apply | Propose-only (default) vs write-changes mode for this chat |
| /one-shot <brief> | Autonomous build: plans the full scope, builds, applies |
| /conduct <task> | The Conductor: plan → route each step to the best model → cross-review |
| /skill [name] | List learned skills or attach one to your next message |
| /mcp [server] | List connected MCP servers or target one |
| /record | Record a GUI demonstration → replayable skill |
| /clear · /help | Clear the conversation · list everything |
Reading a run
Runs stream with full anatomy: memory-recall chips, thinking time, plan cards with live checkmarks, file-edit chips (+added −removed with tinted previews), terminal rows, token usage. The Clean / Verbose toggle collapses machinery into one expandable strip when you just want the conversation.
Tiles & the session terminal
- Tiles — split any chat right/down (tmux-style), each pane its own session; drag the divider to resize; focused pane gets the outline.
- Terminal — every chat has a real shell (button in the header) in the session's folder. If Docker containers or SSH hosts exist on your machine they appear in the engine picker; absent engines stay invisible. Lectern never touches credentials — your own docker/ssh auth is used.
The work panel & preview rail
The right rail tracks the run: Files changed, Agents (Conductor sub-steps), Shells, Todos, and Preview — edited files rendered (markdown or code), images, and any links the conversation mentions. Your pick stays pinned while the agent keeps working; nothing steals focus.
Brain & Usage pages
- Brain — what Lectern knows per workspace: system profile, code graph clusters, memory files, skills, sessions — as a live force-graph.
- Usage — tokens by day (GitHub-style activity grid or bars), by provider, by session. Read from your local history, never the cloud.
Settings that matter
- Providers & models — live status per provider and what each unlocks; pick a default or leave Auto routing. Not installed? Each row expands an OS-aware setup panel with the exact install command, a one-click install for the safe user-space installers (OpenCode, Ollama), and links to the full guide.
- Tools (MCP) — one-click catalog; adds register across Claude Code, OpenCode, and Antigravity with truthful per-agent chips.
- Remote access — channels (Telegram today): allowlisted senders can task your agent from a phone.
- Routing rules — the editable routing.json the Conductor and Auto mode follow, plus an optional classifier.
- Themes — built-in light/dark plus shareable JSON theme files (the TUI reads the same files).
- About — version, license, and the GitHub link (it's all open source).