The three surfaces
Desktop app, `nala` TUI, and CLI: one daemon, three peers, and how work flows between them.
Most tools give you one window into the product. nala gives you three, because the work itself lives in a detached daemon, not in any window. The desktop, the TUI, and the CLI are peers: each attaches to the same daemon, sees the same tasks, agents, messages, and terminals, and can hand work to the others.
nala desktop: Mission Control
The full flagship environment for supervising a fleet.
- Multi-pane, multi-workspace terminals (up to 20 panes per workspace) with xterm.js rendering, WebGL-accelerated.
- The sidebar: workspaces, missions, tasks and artifacts, the Plan sheet, Read Aloud, and plugin panels.
- Surfaces beyond terminals: built-in browser panes, an editor surface, and a diff viewer.
- The status bar: one-click provider launch (Claude, Codex, Devin, Cursor, Grok, Kimi, Pi, nala agent, plus customs), the A2A mode cycler, and the single global YOLO control.
- Fleet and Company views, the message feed, and the approval queue.
- 11 built-in themes (the signature is nala-stream) plus a per-token custom theme editor.
Open or focus it from anywhere:
nala desktop
nala sit # the friendly alias. Good lion.
The nala TUI: the resident agent
Run nala in any terminal and the resident nala agent answers there, in place. This is the same agent the desktop launches from its status bar, with the same tools, tasks, artifacts, A2A, permissions, and memory. It is not a smaller product; it is the product, one pane wide.
nala # open the interactive TUI
nala "refactor the auth module" # open with an initial prompt
The TUI adapts to terminal width: full side panel and inspector on wide terminals, a linear conversation on narrow ones. It speaks markdown, has a command palette (ctrl+/ or /help), and carries the full slash-command surface (/task, /agents, /delegate, /review, /worktree, /speak, and more; see Keyboard shortcuts).
Attach flows keep state continuous:
# start in a terminal, open the desktop on the same session
nala
nala desktop --attach <sessionId>
# start in the desktop, attach a terminal later
nala attach <sessionId>
The nala CLI: scriptable control
The CLI is the noninteractive counterpart on the same daemon: one-shot tasks, automation, diagnostics, and every management verb.
nala run "summarize the diff and post it to #reviews"
nala tasks list
nala agents list
nala doctor --json
Piped and scripted output is machine-readable (the launch banner never appears in noninteractive output), so CI can drive nala the way a human would. The full surface is in the CLI reference.
Which one when
- Desktop when you are conducting: many agents, approvals, cost and cost tracking, visual supervision.
- TUI when you are in flow: one focused session in the folder you are in.
- CLI when you are automating: scripts, CI, scheduled checks, quick answers with
nala ask.
All three share the daemon, so "when" is never "instead of." It is normal to triage approvals on the desktop while a TUI session runs in the corner and a cron job calls nala run overnight.