> ## Documentation Index
> Fetch the complete documentation index at: https://xum.cdr.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Keyboard Shortcuts

> Complete keyboard shortcut reference for Xum

Xum is designed to be keyboard-driven for maximum efficiency. All major actions have keyboard shortcuts.

<Info>
  This document should be kept in sync with `src/browser/utils/ui/keybinds.ts`, which is the source
  of truth for keybind definitions.
</Info>

## Platform Conventions

* **macOS**: Shortcuts use `⌘` (Command) as the primary modifier
* **Linux/Windows**: Shortcuts use `Ctrl` as the primary modifier

When documentation shows `Ctrl`, it means:

* `⌘` (Command) on macOS
* `Ctrl` on Linux/Windows

## General

| Action | Shortcut |
| - | - |
| Cancel / Close / Interrupt | `Esc` |

## Chat & Messages

| Action | Shortcut |
| - | - |
| Focus chat input | `a`, `i`, or `Ctrl+I` |
| Send message | `Enter` |
| Send after turn | `Ctrl+Enter` |
| New line in message | `Shift+Enter` |
| Cancel editing message | `Esc` |
| Jump to bottom of chat | `Shift+G` |
| Cycle model | `Ctrl+/` |
| Increase thinking level | `Ctrl+Shift+]` |
| Decrease thinking level | `Ctrl+Shift+[` |

## Background Processes

In the desktop app and the VS Code extension, `Ctrl+Shift+J` focuses the background processes strip (again, or `Esc`, collapses it). On a focused row, `↓`/`↑` move, `Enter` opens the output, and `Backspace` terminates the process.

## Workspaces

| Action | Shortcut |
| - | - |
| Create new workspace | `Ctrl+N` |
| Next workspace | `Ctrl+J` |
| Previous workspace | `Ctrl+K` |
| Open workspace in terminal | `Ctrl+T` |

## Modes

| Action | Shortcut |
| - | - |
| Toggle between Plan and Exec modes | `Ctrl+Shift+M` |

## Interface

| Action | Shortcut |
| - | - |
| Open command palette | `Ctrl+Shift+P` |
| Toggle sidebar | `Ctrl+P` |

### Command Palette

The command palette (`Ctrl+Shift+P`) has two modes:

* **Default (no prefix)**: Workspace switcher - shows only switching commands
* **`>` prefix**: Command mode - shows all other commands (create/delete/rename workspaces, navigation, chat, modes, projects, etc.)
* **`/` prefix**: Slash commands - shows slash command suggestions for inserting into chat

This separation keeps the switcher clean and fast while making all other commands easily accessible via `>`.

### Artifacts tab (experimental)

These work when the **Artifacts** experiment is on. Shortcuts other than opening the tab only apply while focus is inside the Artifacts tab (inside an HTML or SVG preview, `Shift+F` and `Esc` only exit fullscreen). On narrow windows, where the right sidebar is hidden, `Ctrl+Shift+K` opens the Artifacts dialog instead. The image zoom shortcuts apply while focus is on the image or its zoom controls.

| Action | Shortcut |
| - | - |
| Open the Artifacts tab | `Ctrl+Shift+K` |
| Toggle fullscreen | `Shift+F` |
| Exit fullscreen | `Esc` |
| Next / previous artifact | `J` / `K` |
| Reload the selected artifact | `R` |
| Image: zoom in / zoom out | `=` / `-` |
| Image: fit / actual size | `0` / `1` |
| Toggle annotate mode | `C` |
| Pin to the project / global shelf | `P` / `Shift+P` |
| Unpin the pinned file or shelf entry | `U` |
| Send / dismiss a message from an HTML artifact | `Ctrl+Enter` / `Ctrl+Backspace` |

### Report slowness (experimental)

This works when the **Performance flight recorder** experiment is on. It is also in the command palette (Help section).

| Action | Shortcut |
| - | - |
| Save a local performance report (no upload) | `Ctrl+Alt+Shift+S` |

See [Report slowness](/reference/profiling#report-slowness) for what the report folder contains and what to review before you share it.

### Session tapes (experimental)

These work when the **Session tapes** experiment is on. Both commands are also in the command palette. Tapes hold your full chat: do not share them.

| Action | Shortcut |
| - | - |
| Save open session tapes | `Ctrl+Alt+Shift+T` |
| Reveal the session tapes folder in a file manager | `Ctrl+Alt+Shift+F` |

## Tips

* **Vim-inspired navigation**: We use `J`/`K` for next/previous navigation, similar to Vim
* **VS Code conventions**: Command palette is `Ctrl+Shift+P` and quick toggle is `Ctrl+P` (use `⌘` on macOS)
* **Consistent modifiers**: Most workspace/project operations use `Ctrl` as the modifier
* **Natural expectations**: We try to use shortcuts users would naturally expect (e.g., `Ctrl+N` for new)
* **Focus anywhere**: Use `Ctrl+I` to quickly jump to the chat input from anywhere in the application
* **Per-model thinking**: `Ctrl+Shift+]` / `Ctrl+Shift+[` step thinking effort up/down (clamped at the model's range) and remember your last preference for each model
* **Terminal access**: `Ctrl+T` opens the current workspace in your system terminal


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.