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:42 from 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.

Error help

Deska recognizes a handful of common failures and offers a targeted fix:

  • Command typos (like gti for git) 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.
NoteInside full-screen terminal apps (vim, htop, an agent’s own interface) Deska stops looking for files and commands to avoid false positives from the redrawing UI — but it still catches sign-in links so agent logins keep working.

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.

💡 Ideas+🐛 Bugs