Terminal

The terminal panel is an xterm.js-based terminal emulator with full PTY support, capable of running shell sessions, Claude Code, and Codex side by side in your workspace.

Every terminal panel connects to a real pseudo-terminal process managed by the Rust backend. Input and output are streamed over Tauri's IPC bridge in real time, so the experience is identical to a native terminal application. The xterm.js renderer handles all escape sequences, cursor positioning, and alternate screen buffers, meaning tools like vim, htop, and less work without modification.

Session Types

When you create a new terminal panel, you choose one of three session types. Each type spawns a different process in the underlying PTY:

TypeProcessDescription
ShellDefault system shell Launches your default shell (bash, zsh, PowerShell, etc.) as determined by your operating system configuration. This is the standard terminal experience — run any command, script, or interactive program.
Claude Codeclaude CLI Starts the Claude Code CLI in interactive mode. The terminal is pre-configured for Claude Code's conversational workflow, including proper handling of multi-line output, streaming responses, and tool-use indicators.
Codexcodex CLI Starts the OpenAI Codex CLI. Like Claude Code, the session is optimized for the Codex interaction model, with full support for its streaming output and interactive prompts.

You can run multiple sessions of different types in the same workspace. For example, have Claude Code working on a feature in one panel while monitoring build output in a shell panel and reviewing Codex suggestions in a third.

Terminal Features

The terminal emulator supports the full range of features you would expect from a modern terminal application:

  • Full ANSI and 256-color support — Escape sequences for bold, italic, underline, strikethrough, and all 256 extended colors are rendered correctly. True-color (24-bit) sequences are also supported.
  • Scrollback buffer — Each terminal maintains a configurable scrollback buffer (default: 5,000 lines). Scroll up with the mouse wheel or Shift+Page Up to review previous output.
  • Copy and paste — Select text with the mouse to copy it to the clipboard. Paste with Ctrl+Shift+V (or right-click). Selection highlighting follows the terminal's color theme.
  • Find bar — Press Ctrl+F within a terminal panel to open the find bar. Search matches are highlighted across the visible viewport and scrollback buffer. Use Enter and Shift+Enter to navigate between matches.
  • Automatic reflow — When a panel is resized, the terminal content reflows to fit the new dimensions. Long lines wrap correctly and the cursor position is preserved.
  • Link detection — URLs in terminal output are automatically detected and rendered as clickable links. Hold Ctrl and click a URL to open it in your default browser.

Creating a Terminal

Press Ctrl+N to open the new session modal. The modal presents three steps:

  1. Select a session type — Choose Shell, Claude Code, or Codex from the session type selector at the top of the modal.
  2. Choose a working directory — Type or browse to the directory where the terminal process should start. The file picker defaults to your home directory, but recent projects are shown for quick access.
  3. Confirm — Press Enter or click "Create" to spawn the session. The terminal appears in the currently focused panel.

You can also create a terminal by splitting an existing panel (Ctrl+\ for a horizontal split, Ctrl+Shift+\ for a vertical split) and then launching a new session in the empty child panel.

Recent Projects

The new session modal includes a Recent Projects section that lists directories you have previously opened sessions in. This acts as a quick launcher — click any entry to pre-fill the working directory field and skip straight to session creation.

Recent projects are sorted by last-used timestamp, so the directories you work in most frequently appear at the top. The list persists across application restarts and is stored in local application data.

To clear a directory from the recent projects list, hover over the entry and click the dismiss icon. This removes it from the list without affecting any files on disk.