← all posts
command palette for developerscmd kcommand barcmdkkbarkeyboard-first design

⌘K for the rest of the internet: why every web app is converging on the command palette

A short history of the command palette from Sublime Text in 2014 to every SaaS app today — and the missing layer: a ⌘K that crosses app boundaries instead of being trapped inside one.

by team·Jun 2, 2026·6 min read

In 2014, Sublime Text shipped a thing called the Command Palette. You hit ⌘⇧P and a tiny input appeared, and you could type "split" or "indent" or "go to line" and it would just do it. No menus, no clicking, no mouse.

It was the kind of feature you used three times and could never go back from.

That feature is now everywhere. Linear has it. Vercel has it. GitHub has it. Notion has it. Stripe has it. Figma has it. Cursor has it. Even your toaster oven probably has it by 2028. The keyboard shortcut is almost always ⌘K (Cmd-K on macOS, Ctrl-K on everything else), and the UX is almost always the same: type a word, hit enter, the thing happens.

There's a real shift happening underneath. It's worth talking about.

A brief, opinionated history

2014 — Sublime Text 3 popularizes the modern command palette in editors. The pattern is older than this (Emacs M-x is ancient; Quicksilver was 2003) but Sublime's version was the first one most working developers really used.

2015–2017 — VS Code ships with its own ⌘⇧P palette from day one. By 2017, "does it have a command palette" is a baseline editor feature. Atom had one. JetBrains had one. Vim had a sort of one.

2018–2019 — Slack adds ⌘K as channel switcher. This is the inflection point: it's no longer just an editor thing. A normal-person SaaS product ships a command palette and treats it as a first-class navigation primitive.

2019 — Linear launches with the most aggressive ⌘K-first design of any consumer product to date. Linear's command bar is the navigation. It's not even a feature — it's the whole UX. You can use Linear without ever opening a menu.

2020 — Notion adds ⌘K and treats it as a serious surface. So does Superhuman, with a separate cult around it.

2020–2022 — Every newish SaaS app ships one. Vercel, Stripe, PostHog, Figma, Raycast (which is itself a command palette as an entire OS-level app). The library cmdk ships in 2022 and basically becomes the React default.

2023–2024 — Browser-level commands return. Arc made the URL bar a command palette. Chrome quietly improved the omnibox to look like one. Dia, Stack, Sigma all shipped some flavor.

2025–2026 — AI command palettes. Cursor's chat is a command palette. Claude Code is one. ChatGPT's "share" / "fork" UI is converging on one. The model has gotten so good that "what would I type" and "what do I want" are starting to fuse.

The arc bends one way: fewer clicks, less spatial memory, more typing.

Why this pattern won

Three reasons. None of them are aesthetic.

1. Typing is faster than clicking, almost always

There is a research paper that says this, but you don't need it. Type "webh" → enter → done. That's three keys to be on the Stripe webhooks page if your tool supports it. The mouse equivalent — find the Stripe tab, click it, find the dashboard, click Developers, click Webhooks — is at minimum five intentional motions and a lot of visual search.

Command palettes turn navigation into autocomplete. Autocomplete is just a search index over UI. And humans are better at recalling words than they are at recalling locations.

2. The interface stops growing with the product

The classic problem of a successful SaaS is that the nav menu grows linearly with features. Stripe in 2014 had like six sidebar items. Stripe in 2026 has twenty-three. Linear has fifteen. Vercel has more than that if you count nested settings.

A command palette is invariant under feature growth. You add a new feature, you add a new entry. The palette doesn't get visually busier. The mental model is "every action is one search away" rather than "every action is somewhere in this tree."

3. It's keyboard-native

Developers, who built and adopted this pattern first, basically refuse to use the mouse for anything that has a keyboard alternative. ⌘K spread because the most opinionated users wanted it.

What's interesting is that the pattern then jumped to non-developer products. Notion isn't a developer tool. Neither is Superhuman. They adopted ⌘K because it's actually faster for everyone, not just devs.

The missing layer

Here's where it gets interesting.

Every modern app has its own ⌘K. The pattern won so hard that there's no app left without one. But every one of those palettes is scoped to that one app. Stripe's ⌘K can't get you to Linear. Linear's ⌘K can't get you to Vercel. Vercel's ⌘K can't get you to Supabase.

Which means: as soon as you cross an app boundary — which a working developer does dozens of times a day — you're back to bookmarks and tabs and Cmd-T.

The ⌘K layer ran out at the app boundary. Nothing took its place.

A few things tried:

  • Raycast is the best attempt — a desktop-level ⌘K that crosses apps. It's macOS-only, requires install, and most of its app-specific extensions need API keys. Brilliant if you fit the audience. Locked out if you don't.
  • Browser palettes like Arc's command bar got close. But they're tab-centric, not action-centric, and they're locked to one browser.
  • Bookmark managers are technically a solution, but no one likes them.

What's missing is what Sublime and Linear had inside their products, but across every product you use. ⌘K for the rest of the internet.

What a cross-app palette actually has to do

I've been building one (devlinkspad, which is the thing this blog is on), and the constraints are interesting.

  1. It has to live in the browser, because every dev tool is in the browser. No install. No extension required.
  2. It has to be fast, because if it's slower than typing a URL, no one uses it.
  3. It needs to know about subpages, not just homepages. "stripe webhooks" should take you to /webhooks, not stripe.com.
  4. It can't hold your data, because trust is everything for a tool you use to access keys and dashboards.
  5. It has to be cross-OS, because half the working world is on Windows or Linux now, even in dev.

The product itself is simple — a curated index of the deep pages across 60+ developer tools, behind a fuzzy-search palette. It's the boring application of the ⌘K pattern at the layer no one's bothered with yet.

Where this is going

I think the long arc is that ⌘K becomes a platform primitive, not an app feature. The browser will probably ship a really good one eventually. The OS already has one (Spotlight, Raycast, the Windows key + type) but those don't go deep into web apps.

In the meantime, the gap is open. The cross-app ⌘K is going to get built. The question is whether it gets built once and gets used by everyone, or whether we end up with five of them and another fragmentation problem.

For now: if you keep losing dashboard pages, that's literally what devlinkspad is for. ⌘K → devlinkspad.com.


Related:

Press ⌘K. Every dashboard, one keystroke away.

Try devlinkspad — free
⌘K for the rest of the internet: why every web app is converging on the command palette — devlinkspad | devlinkspad