Skip to content

Core Concepts

kexsh has a simpler resource model than tmux. Instead of four layers (server → session → window → pane), kexsh uses just two: Terminals and Views.

A Terminal is an independent process running a shell (or any program). Terminals live in a flat pool managed by the kexsh server — they don’t belong to any hierarchy.

Each terminal gets an auto-assigned short ID (like a3f) similar to Docker container IDs. You can also give terminals a name:

Terminal window
kexsh terminal create --name dev

Both the ID and name can be used to reference a terminal in any command.

A View is a layout configuration that defines which terminals are displayed and how they’re arranged. Views don’t own terminals — they reference them.

Key properties:

  • The same terminal can appear in multiple views
  • Deleting a view doesn’t affect the terminals it references
  • Creating a terminal automatically wraps it in a temporary view

You can create named views for persistent layouts:

Terminal window
kexsh view create coding
kexsh view add coding a3f
kexsh view add coding b7c

A Pane is a rectangular region within a view that displays a terminal. Panes are created by splitting — you don’t manage them directly. Use Command mode (Ctrl-a) to split, navigate, and resize panes.

Concepttmuxkexsh
Hierarchyserver → session → window → paneserver → terminal + view
Terminal ownershipPane owns the processTerminal is independent
ReuseOne pane per processSame terminal in multiple views
NamingSessions and windowsTerminals and views
Default behaviorCreates session + window + paneCreates terminal + temporary view

The kexsh server is a background daemon that owns all terminal processes. It starts automatically when needed and persists across terminal closures. Terminals survive as long as the server is running — detach and reattach freely.

Terminal window
kexsh server status # Check if the server is running
kexsh server stop # Stop the server (kills all terminals)