Terminal

Use terminal tabs, shells, split panes, agent presets, keyboard protocols, mouse selection, and session recovery.

Every workspace has terminal tabs. The Rust runtime owns each shell or agent process; the renderer draws its screen and sends input.

Open and arrange terminals

Choose New terminal to start the default shell. Use the tab menu or command palette to rename, pin or unpin, duplicate, and close a terminal tab. Ctrl+Alt+W closes the active tab; a pinned tab ignores the close command.

Split the active tab horizontally or vertically. The terminal preset bar's right-click menu offers Split right with ... and Split down with ...; the new pane starts that preset through the normal supervisor. Closing a pane with a running command or agent asks for confirmation.

Choose a shell

Open Settings → Shell. On Windows, Cordy detects installed PowerShell 7, Windows PowerShell, Command Prompt, Git Bash, and WSL distributions, and also accepts a custom command. New terminal tabs use the selected default; existing tabs keep their current process.

Launch a preset

The preset bar launches Claude Code, Codex CLI, Cursor Agent, Gemini CLI, Copilot, OpenCode, or your custom presets. Cordy starts the command in the active workspace's code target and supervises the run. Configure command, arguments, environment overrides, and availability under Settings → Terminal presets.

Keyboard input

Cordy forwards terminal input according to the protocol requested by the running application. In source/tag 0.4.0 on Windows it supports win32-input-mode and the kitty keyboard protocol:

  • Codex interprets Shift+Enter and Ctrl+J as newline.
  • Claude Code interprets Shift+Enter as newline.
  • Cordy does not assign those meanings; the CLI does.
  • If an application enables kitty keyboard mode, it receives Ctrl+C as a protocol key event. In a plain shell, Ctrl+C remains the interrupt byte.

Chinese IME composition and codeless paste/dictation paths are supported by the current terminal input bridge.

Mouse and copy

When a TUI requests mouse reporting, clicks, drags, and hover go to that TUI. Hold Shift while dragging to select terminal text; macOS also accepts Option-drag. With a selection, Ctrl+C copies. Ctrl+Shift+C explicitly copies. With no selection, Ctrl+C interrupts or goes to the CLI protocol described above.

Resume behavior

  • Renderer reload or tray close: the live runtime and PTY remain alive; the new renderer attaches to the runtime snapshot and continues.
  • Full quit: processes end. Cordy stores up to 1,000 serialized terminal history lines with the captured columns and rows, excluding alternate-screen and mode control sequences. On launch it restores that history, shows [previous session restored], and starts a fresh shell below it.
  • Close a terminal tab or delete its workspace: its stored terminal snapshot is reclaimed.

The restored text is history, not a live agent process. Start a new agent if the previous process ended with the full quit.