Skip to content

Keyboard shortcuts

Orbit assumes you would rather not use the mouse. Press ? anywhere to see the shortcuts that apply to what you are currently looking at.

Every shortcut on this page is read from the registry in the running app, so if one here disagrees with what ? shows you, trust ? and please file a docs issue.

The two you actually need

KeysDoes
Cmd KCommand palette. Search issues, run any command, jump anywhere
?Show the shortcuts that apply right now

The palette is the fastest route to most things. Type an issue identifier like ENG-42 to jump straight to it, or type what you want to do and run it.

On Windows and Linux, Ctrl stands in for Cmd everywhere.

Press g, release it, then press the second key.

KeysGoes to
g iInbox
g mMy issues
g rPull requests
g pProjects
g tSprints
g sStandup
g vViews
g aAnalytics
g dDocs

Issues

These work on the issue list and the board, acting on whatever is selected.

Moving around

KeysDoes
j or DownNext issue
k or UpPrevious issue
EnterOpen the issue
SpacePeek at the issue without leaving the list
EscClose the peek, then clear the selection

Esc does one thing at a time on purpose. The first press closes the peek, the second clears the selection, so you never lose a selection you meant to keep.

Selecting

KeysDoes
xSelect or deselect the current issue
Shift j or Shift DownExtend the selection down
Shift k or Shift UpExtend the selection up
Cmd ASelect every issue

Selecting several issues and then pressing s, p, a or l changes them all at once.

Changing an issue

KeysDoes
cCreate a new issue
sChange status
pChange priority
aAssign
lChange labels
iChange project
mChange milestone
Shift eChange estimate

Each opens a menu you then drive with the keyboard, so a then a few letters of a name then Enter reassigns an issue without touching the mouse.

Filters and views

KeysDoes
fAdd a filter
Shift fRemove the last filter condition
Alt Shift fClear every filter
Alt vSave the current filter as a view
EscClose the filter editor

Inbox

KeysDoes
j or DownNext notification
k or UpPrevious notification
uToggle read and unread
hSnooze for a day
BackspaceDelete the notification

Docs

KeysDoes
cNew doc

c only appears when you have permission to write docs, which contributors and guests do not.

View

KeysDoes
Cmd BSwitch between board and list
[Toggle the left sidebar
]Toggle the right panel
Shift TSwitch between light and dark theme

How the shortcuts resolve

Worth knowing if a shortcut ever does something you did not expect.

Shortcuts are registered with a scope, meaning the surface they belong to, and a priority. When more than one could match, Orbit picks in this order:

  1. A longer sequence beats a shorter one, so g i wins over a plain g.
  2. A higher priority wins, so a surface-specific shortcut beats a global one.
  3. Where those tie, the more specific one wins, meaning the one using Shift.

This is why j moves through notifications in the inbox and through issues on a board, without either surface having to know about the other.

Shortcuts do not fire while you are typing in a text field, unless they were explicitly registered to. Esc and Cmd K still work in an input, because you always need a way out.

Adding one

Shortcuts are registered with the useHotkey hook, and being in the registry is what makes a shortcut appear in the ? dialog. There is no separate list to update:

ts
useHotkey('shift+z', duplicateIssue, {
  label: 'Duplicate issue',
  section: 'Issues',
  scope: 'issues',
});

Set advertised: false for something that should work but not be listed. See apps/web/src/lib/keyboard/ and CONTRIBUTING.md.

Released under the Apache 2.0 License.