Keyboard-first team chat: a shortcuts cheat sheet (Slack vs Discord vs Hasarak)
The shortcuts that matter for getting through chat without the mouse, side by side. Slack and Discord keys are checked against their official help pages, and the places those pages disagree with themselves are marked.
Chat is the app most developers switch to most often, and usually the one they drive with the mouse. A handful of shortcuts fixes that: jump to a conversation, go through what’s unread, reply in the thread, react, get back to work.
This cheat sheet lists those shortcuts for Slack, Discord and Hasarak, organised by task rather than by app, so switching between them (or moving a team from one to another) is a matter of looking up a row.
How to read it:
- Keys are written for Mac. On Windows and Linux, read
⌘asCtrland⌥asAlt, unless a row says otherwise. - Slack keys come from Slack’s keyboard shortcuts article. Discord keys come from its commands, shortcuts and navigation guide and its older Windows hotkeys chart.
- Hasarak keys come from the app’s own key tables. Hasarak has two styles: Modern, with a few modifier shortcuts, and Minimal, where every action has a single key, Vim-style. The Minimal keys are shown unless marked.
- A dash means the official pages list no shortcut for that task, not that it can’t be done with the keyboard.
- In every app, the in-app list is the authority for your version and
keyboard layout:
⌘/in Slack and Discord,⌘/(Modern) or?(Minimal) in Hasarak.
Getting around
| Task | Slack | Discord | Hasarak |
|---|---|---|---|
| Jump to a conversation | ⌘K (Windows also Ctrl T) |
⌘K |
⌘K, or :b name (Minimal) |
| List all shortcuts | ⌘/ |
⌘/ |
⌘/ (Modern), ? (Minimal) |
| Previous / next channel | ⌥↑ / ⌥↓ |
⌥↑ / ⌥↓ |
⌥← / ⌥→ (Modern), h / l (Minimal) |
| Previous / next server or space | — | ⌘⌥↑ / ⌘⌥↓ (see note 1) |
⌥↑ / ⌥↓ (Modern), H / L (Minimal) |
| Jump to a space by number | — | — | ⌘1–⌘9 (Modern), 1–9 (Minimal) |
| Back / forward in history | ⌘[ / ⌘] (Windows Alt ← / Alt →) |
— | ⌃O / ⌃I (Minimal) |
| Home view | ⌃1 (Windows Ctrl Shift 1) |
— | — |
| Browse channels | ⌘⇧L (desktop app) |
— | :browse lists spaces (Minimal) |
| Settings | — | ⌘, |
⌘, (Modern), gs (Minimal) |
Catching up
This is where the apps differ most. Slack and Discord are built around unread channels: you walk through channels with unread messages. Hasarak is built around an inbox: mentions, thread replies and DMs land in one list, and you mark each one done.
| Task | Slack | Discord | Hasarak |
|---|---|---|---|
| All unreads / inbox | ⌘⇧A |
— | ⌘0 (Modern), gi or 0 (Minimal) |
| Previous / next unread channel | ⌥⇧↑ / ⌥⇧↓ |
Alt Shift ↑ / ↓ (Windows chart) |
Inbox: j / k |
| Mentions | ⌘⇧M (Activity, desktop app) |
⌘⌥@ (see note 2) |
In the inbox |
| Threads you’re in | ⌘⇧T (desktop app) |
— | Replies land in the inbox |
| Mark current conversation read | Esc |
Esc |
Inbox: x or dd marks done |
| Mark everything read | ⇧Esc |
⇧Esc marks the server read (Windows chart) |
— |
| Snooze an item | — | — | s in the inbox |
| Undo | — | — | u (Minimal), ⌘Z undoes an inbox action (Modern) |
| Jump to oldest unread message | — | Shift PageUp (Windows chart) |
— |
Reading and writing messages
Slack lets you focus a message with the arrow keys and then act on it
with a single key. Hasarak’s Minimal style works the same way, with Vim
keys: j / k move between messages, and each action is one key.
| Task | Slack | Discord | Hasarak (Minimal) |
|---|---|---|---|
| Move between messages | ↑ / ↓ once a message is focused |
— | j / k; { / } jump by author or day |
| Open a thread | T or → on a focused message |
— | ↵ or o |
| Reply in the thread | T, then type |
— | r |
| Write a message | Focus the message field | Focus the message field | i |
| Edit your last message | ↑ in an empty message field |
↑ (see note 3) |
c on your message |
| React | R on a focused message |
⌘E opens the emoji picker |
+ for 👍, R to pick |
| Upload a file | ⌘O (desktop app) |
⌘⇧U |
a |
| New line without sending | ⇧↵ |
⇧↵ |
⇧↵ |
| Search | ⌘G; ⌘F in the conversation |
⌘F; ⌘⇧F everywhere |
/ (Minimal), ⌘K (Modern) |
| Set your status | ⌘⇧Y |
— | — |
| Browse DMs | ⌘⇧K (Windows Ctrl Shift 2) |
— | DMs land in the inbox |
Notes:
- Switching servers in Discord. The newer guide gives
Ctrl Alt ←/→on Windows and⌘⌥↑/↓on Mac; the older Windows chart givesCtrl Alt ↑/↓. Try both. - Discord mentions. The newer guide lists
Ctrl Alt @(⌘⌥@) for the mentions popout; the older chart listsCtrl I, which the newer guide uses for italics. - Editing in Discord. Discord’s blog post on shortcuts says
↑edits your last message; the newer guide listsShift ↑on Windows and⌥↑on Mac. In practice↑in an empty message box is what most people use. - Discord’s voice keys (
⌘⇧Mmute,⌘⇧Ddeafen) aren’t listed here. Discord also lets you create custom keybinds; Slack’s article says custom shortcuts aren’t possible.
The ten shortcuts worth learning first
If you learn nothing else, learn these. Between them they cover most of a day in chat:
- Quick switcher,
⌘K, everywhere. Stop scrolling the sidebar. - Next unread:
⌥⇧↓in Slack, the inbox (gi, thenj/k) in Hasarak. - Mark read:
Esc. In Hasarak,xmarks an inbox item done. - Edit last message:
↑. - Reply in thread:
T(Slack) orr(Hasarak). Threads keep channels readable; see running incidents in chat. - React instead of replying:
R(Slack) or+(Hasarak). A 👍 is an answer. - Search:
⌘G(Slack),⌘F(Discord),/(Hasarak Minimal). - Back:
⌘[(Slack),⌃O(Hasarak). Get back to where you were. - Upload:
⌘O(Slack),⌘⇧U(Discord),a(Hasarak). - The shortcut list:
⌘/. Look up the rest when you need them.
Why Hasarak’s keys look different
Hasarak was designed for people who already live in Vim, tmux and a terminal. Its Minimal style borrows their conventions instead of inventing new chords:
- Single keys, no modifiers, when you’re not typing:
rreply,cchange,xdelete,+react. gchords to go places:giinbox,gdpages (docs),gssettings,gg/Gtop and bottom. Afterg, a hint lists what can follow.- A command line:
:opens it.:b namegoes to a channel,:e titleopens a page,:new channelcreates one,:join/:leave,:set ui=modernswitches style. - A modal composer with Vim motions:
Escto Normal mode,wbe,ciw, counts,uand⌃R,.to repeat, registers. - Screens like a pager:
⌃D/⌃Uhalf a screen,⌃F/⌃Ba full one.
The Modern style keeps a short list of modifier shortcuts (⌘K, ⌘0–⌘9,
⌥ arrows, ⌘,, ⌘/, ⌘Z, Esc) for people who’d rather not learn modes.
You can switch between the styles in Settings › General › Interface, from
the command palette, or with ?ui=minimal in the URL.
The same keys are built into Hasarak’s terminal and desktop apps, which share one key-handling core. Those apps have no public release yet; the web app is the one that’s released. More on the keyboard model: Hasarak for Vim users and terminal team chat.
Printable summary
| Slack | Discord | Hasarak (Minimal) | |
|---|---|---|---|
| Jump | ⌘K |
⌘K |
⌘K / :b |
| Catch up | ⌘⇧A, ⌥⇧↓ |
Alt⇧↓ |
gi, j / k |
| Done / read | Esc |
Esc |
x |
| Thread | T |
— | o, r |
| Edit last | ↑ |
↑ |
c |
| React | R |
⌘E |
+, R |
| Search | ⌘G |
⌘F |
/ |
| Back | ⌘[ |
— | ⌃O |
| All keys | ⌘/ |
⌘/ |
? |
Moving a team from Slack? See Hasarak vs Slack and the Slack alternatives roundup.