Slack Messaging Shortcuts
Beyond simply navigating to the right conversation, these shortcuts cover the everyday mechanics of actually composing, editing, and reacting to messages once you're there — small time savings that compound heavily given how many individual messages a typical workday in Slack involves.
| Action | Windows | Mac | Description |
|---|---|---|---|
| Edit your last message | Up Arrow (in empty message box) | Up Arrow (in empty message box) | Pressing Up with an empty compose box loads your most recently sent message into edit mode, the fastest way to fix a typo without scrolling up and hovering to find the edit option. |
| Add emoji reaction to focused message | Hover message + Ctrl+Shift+\\ or click emoji icon | Hover message + Cmd+Shift+\\ | Opens the emoji picker anchored to a specific message for adding a reaction without needing to right-click or hunt for the small reaction icon that only appears on hover. |
| Upload a file to current conversation | Ctrl+Shift+U | Cmd+Shift+U | Opens a file picker to attach a file directly to the current channel or DM, equivalent to clicking the paperclip icon in the compose box. |
| Reply in thread to focused message | T (with message focused via arrow keys) | T (with message focused) | Opens the reply-in-thread panel for the message the keyboard focus is currently sitting on, letting you type an in-thread reply without precisely clicking that small link beneath the message. |
| Compose a new direct message | Ctrl+Shift+K then select recipient | Cmd+Shift+K then select recipient | Opens the direct message composer, prompting you to search for and select a person or group of people to start a fresh conversation with, distinct from continuing an existing thread or channel discussion. |
| Pin focused message to channel | Hover/focus message > pin from message menu (no default global key) | Hover/focus message > pin from message menu | Adds a message to the channel's pinned items list, keeping important context (a key decision, a shared resource link) easily reachable later without scrolling back through potentially months of channel history to relocate it. |
Editing your last message (Up Arrow, pressed with the compose box completely empty) loads your most recently sent message directly into edit mode, cursor placed at the end, ready to fix a typo — considerably faster than scrolling back up through the channel, hovering over the message to reveal its context menu, and clicking Edit manually. This only works with an empty compose box specifically; any draft text already typed, or being inside a thread panel rather than the main channel view, changes what Up Arrow does instead.
Adding an emoji reaction to a message (hovering the message and pressing Ctrl+Shift+\ / Cmd+Shift+\, or clicking the small emoji icon that appears on hover) opens the reaction picker anchored to that specific message — reactions in Slack function as a lightweight acknowledgment or response that doesn't require typing an actual reply, commonly used to signal agreement, celebrate something, or simply confirm a message was seen without adding to the conversation's message count.
Uploading a file (Ctrl+Shift+U) opens a file picker to attach something directly to the current conversation, equivalent to clicking the paperclip icon in the compose box — the file becomes part of that channel or DM's history and searchable content the same as it would through the mouse-driven route, just reached faster.
Replying in a thread (T, with a specific message focused via arrow-key navigation through the message list) opens that message's thread panel for an in-thread reply, keeping a tangential or detailed follow-up conversation branched off from a specific message rather than cluttering the main channel's continuous flow — this matters a lot in a busy, high-traffic channel, since without threading, a detailed back-and-forth about one specific topic can otherwise bury unrelated messages that arrive in the main channel at the same time.
Starting a new direct message (Ctrl+Shift+K, then selecting a recipient) opens the DM composer specifically for beginning a fresh conversation with someone, distinct from continuing an existing thread or channel discussion you're already part of — worth knowing as a separate action from simply navigating to an existing DM via Quick Switcher, since this specifically initiates something new.
Pinning a message (via the message's hover menu, with no default global keyboard shortcut) adds it to the channel's dedicated pinned-items list, keeping something genuinely important — a key decision, a shared resource link, an agreed-upon process — easily reachable later without needing to scroll back through potentially months of channel history to relocate it whenever it's referenced again.
A few of these shortcuts interact in ways worth knowing about together. Editing your last message with Up Arrow only works on messages you've sent within the current channel or DM's most recent activity — it doesn't reach back to edit an older message from earlier in the day, only the single most recent one, which is a deliberate limitation meant to keep the shortcut predictable rather than requiring you to guess how far back "last message" actually reaches. If you need to fix an older message, you still need to scroll to it and use its hover menu's Edit option directly, the same way you'd correct any message that isn't the very last one you sent.
Message composition in Slack also supports a handful of small conveniences worth mentioning alongside these dedicated shortcuts: typing @ followed by a name opens a person-mention autocomplete that notifies that specific person when the message sends, and typing # followed by a channel name opens a similar autocomplete for linking directly to another channel by name — both are typed conventions rather than modifier-key shortcuts, but they're used constantly enough in day-to-day messaging that they belong in the same mental category as the shortcuts covered here, since they meaningfully speed up composing a message that needs to reference a specific person or channel.