# Keyboard Shortcuts

> Quick reference for crystl keyboard shortcuts.

The shortcut scheme follows a simple model: `Cmd` works at the gem (project tab) level, `Cmd + Ctrl` works at the shard (session) level, and `Cmd + D` / `Cmd + Opt` handle split panes.

## Gems (project tabs)

| Shortcut | Action |
|----------|--------|
| `Cmd + T` | New gem |
| `Cmd + W` | Close gem (or the focused pane when split) |
| `Cmd + 1-9` | Jump to gem by position |
| `Cmd + Shift + ]` | Next gem |
| `Cmd + Shift + [` | Previous gem |

## Shards (sessions within a gem)

| Shortcut | Action |
|----------|--------|
| `Cmd + Ctrl + T` | New shard |
| `Cmd + Ctrl + W` | Close shard |
| `Cmd + Shift + T` | Resurrect the most recently closed shard (undo-close) |
| `Cmd + Ctrl + 1-9` | Jump to shard by position |
| `Cmd + Ctrl + ]` | Next shard |
| `Cmd + Ctrl + [` | Previous shard |

## Split panes

| Shortcut | Action |
|----------|--------|
| `Cmd + D` | Split / unsplit toggle |
| `Cmd + Opt + Left` | Move focus to the left pane |
| `Cmd + Opt + Right` | Move focus to the right pane |

`Cmd + D` changed in v2.75.0. In older versions it made a new shard, now it toggles a split pane. To make a new shard, use `Cmd + Ctrl + T`.

## Terminal

| Shortcut | Action |
|----------|--------|
| `Cmd + K` | Clear screen and scrollback (keeps the shell prompt) |
| `Cmd + F` | Find in scrollback |
| `Cmd + +` | Increase font size |
| `Cmd + -` | Decrease font size |
| `Cmd + 0` | Reset font size |
| `Cmd + Ctrl + F` | Toggle full screen |
| `Cmd + Y` | Toggle the chat dock for the focused shard |
| `Cmd + Shift + C` | Copy selection |
| `Cmd + Shift + V` | Paste |
| `Cmd + click` | Open a file path or URL under the pointer |

`Cmd + Y` opens the [chat dock](/docs/chat-dock/) for the focused shard, read from the transcript rather than the terminal renderer. You can read and drive the conversation without the TUI in the way. Tool calls appear as their own rows there: click one to expand its full output, with a copy button. You can also click a collapsed `… +N lines (click to expand)` row straight in the terminal.

`Cmd + F` opens a find bar over the terminal. Type to search, `Enter` / `Shift + Enter` jump to the next / previous match, a count shows how many matches were found, and `Esc` closes the bar.

`Cmd + Shift + F` opens **global history search**: a floating palette that searches everything your agents ever said and every command that ran, across all gems and shards, open or closed. Arrow keys move through results, `Enter` jumps to an open shard or shows the surrounding conversation for closed history, and `Esc` (or the close button) dismisses it. Scope and kind filters narrow to the current gem, conversations, or commands.

`Cmd + K` and `Cmd + F` are claimed by crystl at the app level (the same way iTerm and Warp claim them), so they won't reach the program running in the terminal.

## Typing a new line

**`Shift + Return` inserts a new line.** Plain `Return` sends. Reach for it whenever you want a multi-line message and don't want to fire it off halfway through writing.

It works where you'll want it most: typing a prompt to Claude Code in the terminal. No `/terminal-setup` step, no config. crystl passes the key through and Claude Code picks it up. Other agents handle multi-line input their own way, so check their docs if `Shift + Return` doesn't behave there.

The same key works in crystl's own text boxes, though plain `Return` varies by field:

| Where | `Return` | `Shift + Return` |
|-------|----------|------------------|
| Terminal prompt (Claude Code) | Sends the message | New line |
| Chat composer (`Cmd + Y`, quest chat, side quests) | Sends the message | New line |
| Workbench task **description** | New line | New line |
| Workbench task **title** | Commits the rename | Commits the rename |

The Workbench description is the odd one out: it's a multi-line note, so plain `Return` already gives you a new line. Each line round-trips as its own detail line in `WORKBENCH.md`. `Esc` hands focus back to the terminal.

## Facet inserts

| Shortcut | Action |
|----------|--------|
| `Cmd + Opt + 1` | Fire the facet insert bound to bar slot 1 into the active shard |
| `Cmd + Opt + 2` | Fire the facet insert bound to bar slot 2 |
| `Cmd + Opt + 3` | Fire the facet insert bound to bar slot 3 |

## Approval management

| Shortcut | Action |
|----------|--------|
| `Cmd + Enter` | Allow current approval |
| `Cmd + Delete` | Deny current approval |
| `Cmd + Shift + Enter` | Allow all queued approvals |

## App

| Shortcut | Action |
|----------|--------|
| `Cmd + ,` | Open settings |
| `Cmd + Q` | Quit crystl |
| Hold `Option` at launch | Fresh start: open with no restored gems |

---
Source: https://crystl.dev/docs/keyboard-shortcuts/
