Choosing CLI vs Desktop
Both clients share the same agent runtime; the difference between them is the interaction model. The CLI is the open-source client — it ships in the zlogic repository together with the runtime — while the desktop app is closed source and distributed as a binary:
| Scenario | CLI | Desktop |
|---|---|---|
| Already in the terminal | ★ Best | OK |
| Keyboard-driven, low-distraction | ★ TUI shortcuts | GUI |
| Managing multiple projects/conversations | OK | ★ Visual sidebar |
| File browsing & editing | Command-line tools | ★ Built-in file panel + editor |
| Model/key configuration | YAML editing | ★ Configuration forms |
| Usage & cost tracking | CLI queries | ★ Charts |
| Approval workflow | ★ In-terminal | In-window |
Use CLI when
- You already live in the terminal — coding, logs, builds
- You want long replies to stay in the terminal you are already using
- You prefer a keyboard-driven workflow
Use Desktop when
- You need to manage multiple Workspaces and Conversations visually
- You want GUI-based Provider, model and key configuration
- You need usage trends, cost charts, local history, the plugin/skill marketplace, managed connections — or a remote daemon backend
They work together: quick questions in the terminal, full project overview in the desktop app — and the desktop can point at a daemon running on another machine (Remote daemon & pairing).
CLI (open source)
The CLI runs inside your existing terminal and keeps the real terminal experience. See CLI Reference for every flag and slash command.
Core capabilities
- Approval workflow: sensitive actions (write files, run commands, access external resources) request authorization first.
- Grant scopes: allow once, allow for this session, or allow for this project. Project grants persist per working directory.
- Turn history: review what a turn changed and undo it, backed by local checkpoints.
- Memory: durable facts persist across conversations, per scope (global / workspace).
- MCP tooling: manage MCP servers from the terminal.
- IME-friendly input: hardware cursor anchoring keeps CJK composition windows stable.
- Themes & quick actions: theme switching, session switching, file references, paste support, model selection and provider/key management.
Best for
- Code reading, editing, testing and pre-commit checks inside the terminal
- Working with long output, command results and agent activity directly in the terminal
- Keyboard-driven, low-distraction workflows
Desktop (closed source)
The desktop app (Tauri 2) wraps the agent runtime as a native cross-platform application with a visual workspace. The sidebar views:
- Dashboard: create or open a Workspace, or use the Global Workspace for ad-hoc chats.
- Chat: streaming replies, reasoning blocks, tool/todo/diff activity,
permission/confirmation/input prompts; attachments, pasted text/files/images,
@file references, slash panels, in-flight steering, stop, copy, edit, delete, rollback and diff undo. - Workspaces & Conversations: any folder can be a Workspace; each can hold multiple Conversations.
- Files: project tree, lazy-loaded directories, CodeMirror editor, dirty-state hints, refresh and save — writes carry an mtime check so external edits are never silently overwritten.
- Local history (checkpoints): snapshots around every file-changing tool call; "what did this turn change", rollback and diff undo rely on them. Snapshots live in a shadow object store and never touch your git.
- Tasks: background tasks with status and notifications.
- Marketplace: install and manage plugins & skills, MCP servers and optional runtimes (Plugins & Skills).
- Connections: manage databases, object storage and cloud accounts once, then assign them to workspaces (Connections).
- Usage: calls, tokens, cost and estimated-call count; filter by date, provider, model, workspace or conversation.
- Settings → Run engine: switch the engine backend between the local in-process engine and a remote daemon.
- Settings & Providers: theme, language, updates, default model, context compaction threshold, approval mode, log level/path; edit provider, SDK, base URL, API key, model tier, context window, pricing, model roles and memory.
Best for
- Managing several projects, conversations and models
- Reviewing cost trends and recent calls by project or conversation
- Inspecting key storage, model pricing, provider endpoints and local settings through a GUI
- Pointing one app at a powerful machine running the daemon