# GitHub Projects keyboard shortcuts

> **TL;DR** On github.com, a project table uses Cmd/Ctrl+F for the filter, arrow keys to move between cells, Enter to edit a cell and E to archive. Gitsu has 28 shortcuts in one fixed keymap: Cmd/Ctrl+K opens the command palette, C creates an issue, G then L or G then B switches view, S A L P M D set a field on an open issue, and ? shows them all.

GitHub Projects has a small set of keyboard shortcuts for moving around a project table. Gitsu has 28, all declared in one table in its source code, and this page lists every one of them. The keys are fixed: nothing on this page can be remapped, and the same list appears in the app when you press `?`.

If you are new to Gitsu, [getting started with the Gitsu Web App](/docs/getting-started) covers sign-in and choosing boards first. The shortcuts below work the same in the Web App and the [desktop app for macOS](/download), apart from two desktop-only rows marked below.

## Which shortcuts does GitHub Projects have?

GitHub's documentation lists these shortcuts for a project on github.com. They mostly act on the table layout, where the keyboard moves a focused cell.

| Keys                                    | What it does                          |
| --------------------------------------- | ------------------------------------- |
| `Cmd+F` (macOS) or `Ctrl+F`             | Focus the filter field                |
| Arrow keys                              | Move cell focus                       |
| `Enter`                                 | Toggle edit mode for the focused cell |
| `Escape`                                | Cancel editing for the focused cell   |
| `Cmd+Shift+\` (macOS) or `Ctrl+Shift+\` | Open the row actions menu             |
| `Shift+Space`                           | Select an item                        |
| `Space`                                 | Open the selected item                |
| `E`                                     | Archive the selected items            |

GitHub's table row menu also shows `Del` beside **Remove from project**, and the Relationships menu on an issue page shows `Option+Shift+P` for **Add parent**, `B B` for **Mark as blocked by** and `B X` for **Mark as blocking**. Those three relationship chords are the ones Gitsu uses too.

The source for the table is GitHub's keyboard shortcuts reference at docs.github.com, under GitHub Projects. On github.com, pressing `?` on most pages opens GitHub's own shortcut dialog for that page.

## How are Gitsu's shortcuts organised?

Each Gitsu shortcut belongs to one place in the app, and it only works while that place is on screen. There are four places with shortcuts:

- **Anywhere**: eight shortcuts that work on every screen.
- **Project view**: five that work in the list and the board, wherever the filter bar shows.
- **Open issue**: nine that work while an issue is open.
- **New issue**: six that work while the new-issue composer is open.

The list view and the board view have no shortcuts of their own. Navigation between them lives in the project view group, because it has to work from either view.

In the tables, `Cmd/Ctrl` means the shortcut answers to both keys on every platform, and `Option/Alt` means the Option key on a Mac or Alt elsewhere. `G then L` means press G, release it, then press L.

## What works anywhere in Gitsu?

| Keys               | What it does                    | Notes                                  |
| ------------------ | ------------------------------- | -------------------------------------- |
| `Cmd/Ctrl+,`       | Settings                        | Desktop app only; browsers reserve it  |
| `Cmd/Ctrl+2`       | Agents mode (the right sidebar) | Desktop app only                       |
| `Cmd/Ctrl+K`       | Toggle command palette          | Works while typing in a text field     |
| `Cmd/Ctrl+A`       | Select all items in view        | Stands down while a dialog is open     |
| `Escape`           | Clear selection                 | Only when nothing else owns Escape     |
| `Cmd/Ctrl+Shift+L` | Toggle theme                    | The composer takes this key while open |
| `C`                | Create new issue                | Stands down while a dialog is open     |
| `?`                | Keyboard shortcuts              | Opens the Shortcut Sheet               |

`Escape` is deliberately last in line. A dialog, a popover, an inline rename or the open issue all get the key first, so it only clears your selection when none of them wanted it.

## What works in the list and board views?

| Keys       | What it does     |
| ---------- | ---------------- |
| `/`        | Search this view |
| `G then L` | Switch to list   |
| `G then B` | Switch to board  |
| `F`        | Filter this view |
| `Shift+D`  | Display settings |

All five belong to the toolbar the list and the board share, so they do nothing on settings screens. The four letters stand down while a menu or popover is open, which stops `F` from reopening a filter menu that is already in front of you. Display settings is `Shift+D` rather than `D` because plain `D` sets the date on an open issue.

## What works on an open issue?

| Keys                 | What it does         |
| -------------------- | -------------------- |
| `Option/Alt+Shift+P` | Add parent issue     |
| `B then B`           | Add blocked-by issue |
| `B then X`           | Add blocking issue   |
| `S`                  | Set status           |
| `A`                  | Set assignee         |
| `L`                  | Set labels           |
| `P`                  | Set priority         |
| `M`                  | Set milestone        |
| `D`                  | Set date             |

The six field letters press the same control you would click in the issue's side rail. The change shows at once and rolls back with a message if GitHub refuses the write, exactly as it does with the mouse.

## What works in the new-issue composer?

| Keys               | What it does     |
| ------------------ | ---------------- |
| `Cmd/Ctrl+Shift+S` | Set status       |
| `Cmd/Ctrl+Shift+A` | Assign people    |
| `Cmd/Ctrl+Shift+L` | Add labels       |
| `Cmd/Ctrl+Shift+P` | Set priority     |
| `Cmd/Ctrl+Shift+M` | Set milestone    |
| `Cmd/Ctrl+Enter`   | Create the issue |

These are the open issue's `S A L P M` letters with `Cmd/Ctrl+Shift` added, because in the composer a plain letter is text in the title or body. All six work while you type. While the composer is open, `Cmd/Ctrl+Shift+L` adds labels instead of toggling the theme.

## Why can't I remap a shortcut?

Gitsu keeps every shortcut in one fixed table, and nothing else in the app turns a key into an action. The decision is recorded in ADR 0007: no remapping, no override store and no shortcuts settings screen. The trade is that you cannot move a key you dislike. In return, a key shown next to a command in the palette is always the key that runs it, because both are read from the same row.

Press `?` in Gitsu to open the Shortcut Sheet. It is generated from the same table as this page, grouped the same way, and it hides the two desktop-only rows in the Web App.

## Where to go next

The [guide to GitHub project board examples](/guides/github-project-board-examples) shows five board setups you can rebuild and drive with these keys. If you are scripting a board instead, the [GitHub Projects v2 GraphQL API guide](/guides/github-projects-v2-graphql-api) walks through the queries and mutations Gitsu itself sends.

## Frequently asked questions

### Can I change or remap a Gitsu shortcut?

No. Gitsu has one fixed keymap with no remapping and no shortcuts settings screen, a decision recorded in ADR 0007. The Shortcut Sheet, opened with ?, lists every key.

### Why do the S, A, L, P, M and D letters not work on the board?

They only work while one issue is open, where the target is unambiguous. On the list or the board there is no single issue under the keyboard yet, so the letters are left unbound there.

### Do Gitsu shortcuts use Cmd or Ctrl?

Both. A shortcut written Cmd/Ctrl registers both keys on every platform. The Shortcut Sheet draws Cmd on macOS and Ctrl elsewhere.

### Why do Cmd+comma and Cmd+2 do nothing in the Web App?

Browsers reserve Cmd/Ctrl+comma for their own settings, and the Web App does not mount the right sidebar that Cmd/Ctrl+2 toggles. Both are desktop app only.

### Are the relationship shortcuts the same as on github.com?

Yes. Option/Alt+Shift+P adds a parent, B then B marks blocked by, and B then X marks blocking, the same chords GitHub's issue page shows in its Relationships menu.
