Skip to content

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.

A terminal panel in the storefront project after running git log --oneline

Scrollback is saved with your workspace, so closing and reopening a project keeps your terminal history intact. Search the scrollback with Cmd/CtrlF.

Terminals follow the app theme by default, and Settings → Terminal (under Tools) is where you change the default: pick a color preset or import your own, alongside the font, the scrollback size and the shell Deska launches. A single terminal can override the default theme from its tab’s right-click menu. On Windows the same page picks between PowerShell and CMD.

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.
  • Insert the suggested next command when a tool hints at one. The command is placed at your prompt without running it, deliberately leaving the Enter to you.
  • Fix common errors with a one-click correction, or Fix with Dex for trickier ones.
TipAI-filtered hints (Settings → Terminal) add a second opinion before a hint appears: Deska asks the model whether the detected suggestion is actually worth showing. The filter needs a paid plan and a provider key stored by an earlier version of Deska, and it only runs while Background work is on in Settings → Dex; otherwise hints are shown unfiltered. If the model is unavailable it also falls back to the unfiltered hints, so nothing is lost when you are offline.

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 or pnpm, plus bun when a bun.lockb lockfile is present).
  • Port already in use offers to free the port in one click.
  • Anything it cannot fix directly can be handed to Dex.
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, in any shell, for Claude Code (claude), Codex (codex), Cursor (cursor-agent), OpenCode (opencode), Antigravity (agy), Pi (pi) and Gemini CLI (gemini). On Windows, Claude Code, Codex and Antigravity pick up their own conversation; Cursor, OpenCode and Pi resume the most recent conversation in that folder, and Gemini CLI shows its saved scrollback instead. Hermes, Mistral Vibe and Kimi Code run in a terminal too, but Deska does not resume their conversations yet. A conversation that never got its first message has nothing to resume, so its terminal shows the saved scrollback too. You can turn resuming off in Settings → This computer → When Deska opens → Restore agent sessions.

The server chip

A terminal panel has one piece of chrome, its header, and when the terminal is the only tab in that header it carries a live chip whenever there is something real to report. Deska watches what runs in the shell and shows the dev stack it detects (Next.js, Vite, and the rest) alongside the primary port that started listening.

Click the port and the page opens in a Browser panel on the canvas rather than in your system browser, because that is where the element picker, the device viewports and the agent browser tools live. The chip disappears again when there is nothing to show, so an idle terminal stays quiet.

When your phone holds a terminal

A terminal can also be opened from your phone through remote access. While the phone holds it, the session is sized to fit the phone’s screen, and the desktop panel shows a Sized for your phone strip with a Take it back button. Press it and the terminal returns to the desktop’s dimensions.