Terminal

Voktty's terminal is a native PTY session connected to xterm.js. The webview renders and collects input, while Rust owns process creation, output reading, resizing and termination.

Create and manage tabs

Use the tab button, command palette or the shortcuts in Keyboard shortcuts to create a terminal. A terminal tab remains mounted when hidden, so long-running commands and development servers continue to stream output.

Private terminals use a separate tab context for temporary work. Block terminals expose command boundaries and make previous command output easier to navigate.

Split panes

Voktty supports horizontal and vertical splits with a maximum pane count defined alongside the renderer-pool limit. Each leaf has an independent terminal, editor or preview surface. A hidden leaf with a foreground job, active agent or alternate-screen TUI keeps its live terminal grid parked.

Shell integration

Voktty injects startup scripts for supported shells:

  • Unix zsh and bash use shell startup fragments that emit OSC 7 and OSC 133 markers.
  • Fish receives a managed conf.d integration and disables duplicate prompt markers when the shell provides its own.
  • Windows PowerShell runs a profile wrapper that preserves the user's prompt and emits the same working-directory and command-boundary markers.
  • cmd.exe is supported as a shell but does not provide the same marker integration.

OSC 7 updates the active working directory. OSC 133 marks prompt, command-start, command-running and command-finished boundaries. OSC 777 carries named agent notifications.

Working directories

The active directory is tracked from shell markers and displayed as a forward-slash canonical path in the frontend. Windows drive paths are normalized at the boundary. New tabs inherit the active workspace directory unless a workspace environment supplies a different root.

Press Enter to send a carriage return to the PTY. Use the inline search action to search the active terminal buffer. Links and file paths are detected by xterm integration, and files can be dragged from the explorer into a terminal as shell-safe quoted paths.

Terminal input modes

The input bar can switch between normal shell input and the AI terminal copilot. Copilot requests remain distinct from the full AI agent panel, so a quick command suggestion does not create a new agent session. See AI assistant for the full workflow.

Platform behavior

On Windows, ConPTY spawns are serialized by a process-wide lock because concurrent fast tab creation can stall one output pipe. Every ConPTY session also receives a per-session Job Object configured to kill descendants when the session is closed.

On Unix, session cleanup is handled by the PTY lifecycle and process-group behavior. Development termination can still leave descendants when the host process is interrupted before destructors run.