Panels
Terminals
Deska terminals are full shells with a few extra powers: a smart action bar that spots URLs, files and errors, and the ability to resume agent conversations after a restart.
The basics
Each terminal panel is a real shell backed by a native pseudo-terminal, so everything you expect works — pipes, redirects, background jobs, environment variables, your aliases and prompt. Add as many terminals as you like; each lives in its own panel.
Scrollback is saved with your workspace, so closing and reopening a project keeps your terminal history intact. Search the scrollback with Cmd/CtrlF.
The smart action bar
As commands run, Deska watches the output for things worth acting on and surfaces a single suggestion in a slim bar at the bottom of the terminal. Press AltEnter to accept it without reaching for the mouse.
- Open links in the right place (more below).
- Jump to files — a path with a line number like
src/app.ts:42from a compiler error opens that file at that line. - Run the suggested next command when a tool hints at one.
- Fix common errors — a one-click correction, or a hand-off to Ask Deska for trickier ones.
Links open in the right place
URLs in your output are clickable, and Deska routes them intelligently rather than blindly opening everything:
- Sign-in and OAuth links always open in your system browser — embedded web views break most auth flows.
- Local dev-server links (localhost and friends) open in a Browser panel right next to your work.
- Links labelled as backend or API endpoints are skipped to cut the noise.
You can set how eagerly this happens — off, ask each time, or open automatically — in Settings → Browser → URLs from terminal. Once you accept a dev URL on a given port, future links on that port open without asking.
Error help
Deska recognizes a handful of common failures and offers a targeted fix:
- Command typos (like
gtiforgit) suggest the corrected command. - Missing modules suggest the right install command based on the lockfile in your project (npm, yarn, pnpm or bun).
- Port already in use offers to free the port in one click.
- Anything it cannot fix directly can be handed to Ask Deska.
Resuming agent conversations
When you run a coding-agent CLI in a terminal, Deska quietly remembers which conversation was running. Reopen the workspace and the agent picks up the same thread — even if you had several running in the same folder.
This works out of the box for Claude Code (claude), Cursor (cursor), Gemini CLI (gemini), Codex (codex), OpenCode (opencode) and Deska’s own agent. The integration is injected automatically for zsh; other shells keep working exactly as before. You can turn resuming off in Settings → General → Restore agent sessions.
The status strip
Above each terminal, a status strip shows the current directory, the git branch and dirty state, a pulse when a command or agent is running, badges for any frameworks it detects, and any local ports that are listening (click to open one in a browser). Quick controls let you restart the shell, clear the output, reveal the folder in your file manager, or copy the path.