← Swik
Use case

A radial menu for Mac developers (and VS Code users)

The VS Code command palette is a masterpiece of developer UX. Cmd+Shift+P, type three letters, run anything. If you live inside one editor, it's the best launcher ever shipped.

But developers don't live inside one editor. A real day looks more like this: VS Code → Chrome → DevTools → terminal → Slack → VS Code → Postman → GitHub → VS Code. The command palette has nothing to say about the transitions between those apps. That's where we lose time, and it's where a radial menu is worth setting up.

This post is about the developer's version of a Swik layout — what to put on the top ring, what belongs in sub-menus, and how Apple Shortcuts turn a wedge into a package.json script without the typing.

The developer's launch loop

I count my own transitions during a normal coding afternoon. It's absurd. Writing a feature means I open the browser to check a design in Figma, swap to DevTools to inspect a component, hop to the terminal to run a test, drop into Slack because someone pinged me, come back to VS Code. That's five app switches for one "write this component" task.

On Cmd+Tab that's five tax payments — half a second each, plus the cognitive work of visually picking the right icon from whatever order the switcher put them in. On a keyboard launcher it's five of: trigger, type, enter. On a radial menu it's five flicks, each with no visual search because the positions never move.

The gain isn't really about milliseconds. It's that app switching stops pulling focus off the task. You never stop thinking about the component because your hand knows where the browser is.

VS Code complements a radial menu, and vice versa

This is the key framing: they do different jobs.

JobBest tool
Run a VS Code command (reload, format, extension action)Command palette
Open a file by name in the current workspaceCmd+P
Jump to a symbolCmd+T
Switch from VS Code to ChromeRadial menu
Switch from anywhere to the terminalRadial menu
Run npm run dev from any appRadial menu + Shortcut
Open the last file you edited in FinderRadial menu + drag-to-wedge
Find a setting in VS CodeCommand palette
Toggle Do Not Disturb before a focus blockRadial menu + Shortcut

There's no overlap because the question "which tool?" is answered by "where are you going?" Inside the editor: palette. Outside the editor: radial.

The developer's top ring

Five wedges. Resist putting in more until you've used this layout for a week.

Five is the right number because spatial memory works best with distinct quadrants. You can cram in twelve but the ring stops feeling positional and starts feeling like a crowded menu you have to read.

The sub-menus

Two sub-menus cover most developer needs:

Dev tools sub-menu. The things you open once or twice a day, not forty times. Postman or Insomnia. TablePlus or Sequel Ace. Docker Desktop. GitHub Desktop or Tower or Fork. A second browser for testing. Proxyman or Charles. These don't deserve top-ring slots — but they shouldn't live in the Dock either, where you'll misclick something else while hunting for them.

Shortcuts sub-menu. This is the interesting one. Apple Shortcuts has a "Run Shell Script" action. You can build Shortcuts that run npm run dev in a specific directory, open a repo in GitHub Desktop by path, clone a new repo from a URL in your clipboard, pull main across every repo under ~/code. Each of those becomes a wedge in the sub-menu. Full walkthrough here.

Here are seven Shortcuts I've personally set up, roughly in order of how often I use them:

  1. Start dev server. Opens terminal, cd's into the project, runs npm run dev. The top wedge of the Shortcuts sub-menu.
  2. Open current repo in GitHub. Reads the remote URL of the repo in my active terminal, opens it in the browser.
  3. Copy git branch name. Puts git rev-parse --abbrev-ref HEAD of the current repo into my clipboard. Great for PR descriptions.
  4. Clone from clipboard. Takes whatever URL is in my clipboard, clones into ~/code, opens in VS Code.
  5. Pull everything. Runs git pull across every repo under ~/code. Fire once a week.
  6. Focus mode. Toggles Do Not Disturb, quits Slack and mail, opens a Lofi playlist. Bound to start of deep-work blocks.
  7. Screenshot of commit. Takes the last git commit's diff and copies a syntax-highlighted image to clipboard for posting in Slack or PR reviews.

Each is a wedge. One flick, one action. None of this is inside VS Code — that's the whole point. You can trigger any of them from any app.

Drag-to-wedge for "open this file with…"

Small feature, disproportionate developer value. Drag any file onto a wedge and Swik opens that file with the app in that wedge. Concrete developer uses:

The macOS "Open With…" menu has this information buried under a right-click and a submenu. A radial wedge puts it one gesture away, with the apps you actually use.

Context profiles for frontend vs backend vs solo

If your days split cleanly — Monday morning is backend on one codebase, Tuesday is frontend on another — context-aware profiles swap the whole layout based on which Wi-Fi you're on, which display is connected, or what time of day it is.

My actual setup:

You don't have to do this. It's optional. But if your work genuinely splits into modes, the ring changing with the mode stops you reaching for the wrong tool.

Clipboard history for snippets

Developers live in copy-paste. A commit hash, a SQL query, an error message, a URL. Swik's clipboard wedge opens a sub-menu of your last eight text clips, each a flick to re-paste. It's not a replacement for a searchable clipboard database (Alfred and Raycast both have deeper ones) but for the "paste the thing I copied two copies ago" case, it's the fastest tool on the Mac.

A full suggested layout

RingWedges
Top ring (5) VS Code · Browser · Terminal · Slack · Notes
Dev tools sub-menu Postman · TablePlus · Docker · GitHub Desktop · Second browser
Shortcuts sub-menu Start dev server · Open repo on GitHub · Copy branch · Clone from clipboard · Focus mode
Clipboard sub-menu (Auto-populated, last 8 clips)

That's four rings total, ~20 actions one trigger away. The trigger is a mouse side button or F19. The learning curve is about three days before your hand stops thinking.

What this doesn't replace

To be clear on what not to expect:

It's a small tool doing one job well: getting your hand to the next app without thought. For developers, whose day is defined by the transitions between apps, that one job covers a lot of ground.

Frequently asked questions

Is Swik a VS Code extension?

No. Swik is an OS-level overlay on macOS — the menu opens over whatever app you're in, including VS Code, but it doesn't integrate with VS Code's extension API. That's the point: the command palette handles everything inside VS Code already. Swik handles the launch between VS Code and everything else — browser, terminal, Postman, Slack, a Shortcut that starts your dev server.

Why would a developer use a radial menu over the VS Code command palette?

You wouldn't — for things inside VS Code, the palette wins. But developers don't live inside one editor. A working day is VS Code → browser → DevTools → terminal → Slack → VS Code → Postman → GitHub. The command palette doesn't help with that switching loop. A radial menu triggered from a mouse side button does: one flick per app transition, no alt-tab, no Dock.

Can Swik run shell commands like a VS Code task?

Indirectly, yes — through Apple Shortcuts. Build a Shortcut that runs your shell command (Shortcuts has a "Run Shell Script" action), then assign that Shortcut to a wedge in Swik. From there, one flick triggers npm run dev, docker compose up, git pull for every repo under ~/code, or whatever else you wire up. It's not a replacement for VS Code tasks — it's the same idea applied at OS level.

What's a good radial menu layout for a developer?

Top ring: VS Code, browser, terminal, Slack or Discord, a notes app. That's five wedges — enough to cover ~80% of daily switching. Sub-menus: one for "dev tools" (Postman, TablePlus, Docker Desktop, GitHub Desktop) and one for Shortcuts (start dev server, clone repo, open docs). A context-aware profile can swap the layout between frontend and backend projects if your work is split that way.

Swik — a radial menu for macOS

Launch anything. One gesture. Free for five wedges, $9 one-time for unlimited. Requires macOS 14 Sonoma or later.

Download for macOS