Skip to main content

Tab Management

Tabs in kitty are like browser tabs: each tab holds one or more window splits and has its own title. They let you organize completely different workspaces without launching multiple terminal windows.

Learning Focus

Use this lesson to organize your terminal work into project or task-specific tabs, each with its own window layout.

Creating Tabs

# from inside kitty
Ctrl+Shift+t → New tab (auto-numbered)

# from the command line
kitty @ new-tab
kitty @ new-tab --tab-title "monitoring"
kitty @ new-tab --tab-title "logs" --cwd /var/log

# via command palette
Ctrl+Shift+p → type "new tab" → Enter

Naming Tabs

# rename current tab
Ctrl+Shift+Alt+t → Enter new name in prompt

# from command line
kitty @ set-tab-title "editor"
kitty @ set-tab-title "server-logs"
tip

Give each tab a descriptive 1-2 word name. Good names: editor, logs, git, deploy, monitoring. Avoid generic names like bash or terminal.

ShortcutAction
Ctrl+Shift+leftPrevious tab
Ctrl+Shift+rightNext tab
Ctrl+Shift+1Switch to tab 1
Ctrl+Shift+2Switch to tab 2
Ctrl+Shift+3Switch to tab 3
Ctrl+Shift+...(up to 9)
Ctrl+Shift+p → type tab nameTab search

Moving and Reordering Tabs

# move tab left
Ctrl+Shift+, → Move current tab left

# move tab right
Ctrl+Shift+. → Move current tab right

# from the command line
kitty @ set-tab-position --index 0 # move to first position
kitty @ set-tab-position --index 3 # move to fourth position

Tab Lifecycle

┌──────────┐ Ctrl+Shift+t ┌──────────────┐
│ Start │ ─────────────────→ │ Tab Created │
│ kitty │ │ (1 window) │
└──────────┘ └──────┬───────┘

┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Add │ │ Name │ │ Navigate │
│ Windows │ │ Tab │ │ Tabs │
│ Ctrl+Sh+ │ │Ctrl+Sh+ │ │Ctrl+Sh+ │
│ Enter │ │Alt+t │ │left/right│
└──────────┘ └──────────┘ └──────────┘
│ │ │
└───────────────┼───────────────┘

┌──────────┐
│ Close │
│ Tab │
│ exit or │
│Ctrl+Sh+q │
└──────────┘

Closing Tabs

# close current tab and all its windows
# simply close all windows: exit in each, or Ctrl+Shift+q

# close all tabs and quit kitty
kitty @ close-tab # close current tab
kitty @ close-tab --match index:0 # close specific tab

# or just close the OS window — kitty server stays alive
note

Closing the last tab closes the OS window, but the kitty server process may remain running (especially if launched with kitty --single-instance or --listen-on).

Using the Launch Command for Tabs

# launch a new kitty window with a specific command
kitty @ launch --type tab --cwd /var/log --title "logs" tail -f syslog

# launch a tab with multiple windows
kitty @ launch --type tab --title "monitoring" --keep-focus
kitty @ launch --type window htop
kitty @ launch --type window --cwd /var/log

Tab Management Workflow

dev-tabs-setup.sh
#!/bin/bash
# Setup a multi-tab development workspace

# Tab 1: Editor
kitty @ new-tab --tab-title "editor"
kitty @ launch --type window --cwd ~/projects/myapp

# Tab 2: Server
kitty @ new-tab --tab-title "server"
kitty @ launch --type window --cwd ~/projects/myapp
kitty @ send-text --match title:server "npm run dev\n"

# Tab 3: Logs
kitty @ new-tab --tab-title "logs"
kitty @ launch --type window
kitty @ send-text "tail -f /var/log/syslog\n"

# Tab 4: Git
kitty @ new-tab --tab-title "git"
kitty @ launch --type window --cwd ~/projects/myapp

# Switch back to editor tab
kitty @ focus-tab --match title:editor

Tab Bar Display

The tab bar (top by default) shows:

┌─ kitty ───────────────────────────────────────────────────┐
│ [editor] [server*] [logs] [git] │
│ │
│ (tab content area) │
│ │
└────────────────────────────────────────────────────────────┘

* = active tab. The tab bar can be moved to the bottom, styled with powerline, or hidden entirely (see Fonts and Appearance).

Common Pitfalls

PitfallSymptomFix
Tab closes unexpectedlyLast window in tab was closedUse Ctrl+Shift+t to create a new tab first
Tab bar not showingTab bar set to hiddenSet tab_bar_style to fade, powerline, or slant
Tab number shortcuts not workingMore than 9 tabsUse Ctrl+Shift+p to search by tab name
Tab titles not updatingCtrl+Shift+Alt+t not usedThe default title shows the current process name

Hands-On Practice

Try this complete tab workflow inside kitty:

# Tab 1: Create and name
# Ctrl+Shift+t
# Ctrl+Shift+Alt+t → type "shell" → Enter

# Tab 2: Create, name, and add windows
# Ctrl+Shift+t
# Ctrl+Shift+Alt+t → type "monitoring" → Enter
# Ctrl+Shift+Enter (vertical split)
# Ctrl+Shift+Alt+Enter (horizontal split on right side)

# Navigate between tabs
# Ctrl+Shift+left → go to shell
# Ctrl+Shift+right → go to monitoring

# Rearrange tabs
# Ctrl+Shift+, → move current tab left
# Ctrl+Shift+. → move current tab right

# Close tabs
# Ctrl+Shift+q on each window, or exit in each shell

What's Next