Skip to main content

Welcome to HopTab

A lightweight macOS app switcher that lets you pin specific apps and hop between them with a single shortcut. No more cycling through 10+ open apps — just the 2-3 you actually need.

Installation

Download from releases or build from source

Quick start

Get up and running in under 2 minutes

Keyboard shortcuts

Master the app and profile switcher shortcuts

Profiles

Create workflow-specific app collections

Why HopTab?

If you’re the kind of person who has 10 apps open, actively use only 2–3, but refuse to close the other 7 because “what if I need them later?” — this is for you. On macOS, Cmd+Tab feels like being invited to a chaotic family reunion: Slack, Mail, Safari, Xcode, Terminal, Figma, Spotify, Notes… everyone shows up uninvited, loudly competing for attention — when all you really want is to calmly switch between your IDE and the simulator for now. HopTab fixes this: pin the apps you’re actually focused on, then Option+Tab hops only between those. Everything else stays out of the way.

The productivity boost

Most of us don’t work on one thing at a time. You’re coding in Xcode while checking the Simulator, glancing at Figma for the design, and Slack keeps pinging. But in any given moment, you’re really only bouncing between 2-3 of those. The problem is Cmd+Tab doesn’t know that — it treats every open app equally. HopTab gives you focused switching. Pin the 2-3 apps you need right now, and Option+Tab becomes a laser-focused toggle between just those. When your context changes — say you shift from coding to writing docs — just switch your profile and your pinned apps change with you. Zero friction, zero distraction. Profiles + Desktop assignment takes this further. Assign a “Coding” profile to Desktop 1 and a “Design” profile to Desktop 2. Now when you swipe between desktops, your pinned apps automatically change to match what you do there. Your workspace adapts to you, not the other way around.

Key features

Pin any app

Pick from running apps in Settings, click to pin/unpin

Global hotkey

Option+Tab (default), configurable to Control+Tab or Option+`

Overlay switcher

Native vibrancy blur panel shows pinned apps with icons

Cycle forward/backward

Shift reverses direction, Escape cancels

Release to activate

Let go of the modifier key to switch to the selected app

Profiles

Create named profiles (e.g. “Coding”, “Design”, “Writing”) each with their own set of pinned apps

Profile switcher shortcut

Option+` to cycle through profiles without leaving the keyboard

Desktop assignment

Bind a profile to a macOS desktop, auto-switches when you swipe to that Space

Persistent pins

Your pinned apps and profiles survive restarts

Aggressive activation

Uses Accessibility API to force-raise windows (fixes stubborn apps like Simulator)

Menu bar app

Lives in the menu bar, doesn’t clutter your Dock

Requirements

  • macOS 14.0 (Sonoma) or later
  • Accessibility permission (prompted on first launch)
  • Swift 5.9+ (if building from source)

Technical highlights

HopTab uses several key macOS APIs to deliver a smooth, native experience:
  • CGEvent tap (not NSEvent.addGlobalMonitorForEvents) — required to swallow the shortcut so it doesn’t reach other apps
  • No App SandboxCGEvent.tapCreate(.defaultTap) requires raw event access, incompatible with the sandbox
  • AXUIElement window raisingNSRunningApplication.activate() doesn’t always bring windows to front on macOS 14+; the AX kAXRaiseAction forces it
  • NSPanel overlay — non-activating, borderless, .screenSaver level so it floats above everything without stealing focus
  • CGSGetActiveSpace private API — used for desktop-to-profile mapping; degrades gracefully if Space IDs become stale
HopTab is open source under the MIT license. Contributions are welcome on GitHub.

Get started

Ready to reclaim your Tab key? Head to the installation guide to download HopTab, or jump straight to the quick start to see it in action.

Build docs developers (and LLMs) love