---
title: Keyboard shortcuts
description: Every key the app answers, grouped by where you are, and the keys it leaves to the browser.
---


> **Note** Generated from the code by scripts/derive-docs.mjs. Do not edit by hand.

Every key the app answers, grouped by where you are. Press `?` anywhere for the same list in the app; it is also under **Settings, Keyboard shortcuts**. Keys are written for a Mac: on Windows and Linux, ⌘ is Ctrl, ⇧ is Shift and ⌥ is Alt.

## Anywhere

| Keys | Does |
| --- | --- |
| `⌘K` | Search companies, people, projects |
| `?` | This list |
| `,` | Open Settings |
| `⌘Z` | Undo the last change. Only while the toast in the corner is still offering it; there is no undo history. |
| `⇧⌘Z` | Redo it |
| `Esc` | Close the menu, dialog or drawer on top |

## Tables

Every register in the app (projects, people, invoices, expenses) is the same grid and answers the same keys.

| Keys | Does |
| --- | --- |
| `/` | Search this table |
| `N` | New row. Nothing on a table you cannot add to, and nothing while a drawer without a table is open. |
| `⇧F10` `Menu` | Row actions, for the focused row |
| `↑` `↓` | Move the row, from its drag handle |
| `←` `→` | Move the column, from its heading |
| `←` `→` `Home` `End` | Resize the column, from the edge between two headings |

## Editing a cell

| Keys | Does |
| --- | --- |
| `Enter` | A new line in a text cell; saves in a number cell. A text cell grows, so Enter has somewhere to go; a number cell has no second line. |
| `⌘Enter` | Save and close |
| `Tab` | Save and move on |
| `Esc` | Discard the change |

## Dialogs and forms

| Keys | Does |
| --- | --- |
| `⌘Enter` | Submit. Not on a dialog whose main button deletes or refuses something; those are clicked, deliberately. |
| `Esc` | Cancel |
| `Enter` | Save the field, in an inline name or heading |

## Menus, pickers and dates

| Keys | Does |
| --- | --- |
| `↑` `↓` | Move through the options |
| `Home` `End` | First, last |
| `Enter` | Choose the highlighted one |
| `A–Z` | Jump to the option starting with that letter. Not in a menu that has its own search box, where a letter is a letter. |
| `←` `→` | A day either way, in a date picker |
| `↑` `↓` | A week either way |
| `PgUp` `PgDn` | A month either way |

## Rich text

| Keys | Does |
| --- | --- |
| `⌘B` | Bold the selection |
| `⌘I` | Italic |
| `/` | Block menu, in an empty block |
| `#` `##` `-` | Then a space: heading, subheading, bullet |
| `Enter` | A new block |
| `⇧Enter` | A line break inside this one |
| `Backspace` | At the start of a block: back to plain text, then merge upwards |

## Search

| Keys | Does |
| --- | --- |
| `↑` `↓` | Move through the results |
| `Enter` | Open the highlighted one |
| `Esc` | Close |

## Panels

| Keys | Does |
| --- | --- |
| `←` `→` | Widen or narrow, from the edge of a drawer or the sidebar |
| `Home` `End` | All the way, either way |
| `←` | Close the sidebar, once it is at its narrowest |

## Left to the browser

`⌘F` `⌘S` `⌘P` and the rest belong to your browser, and stay with it. Which is why a table's search is `/` and a new row is `N`.

## In the app

- `?`, anywhere: the same list
- **Settings, Keyboard shortcuts**: the same list, in one column
