The full picture.
Everyday switching, app capabilities, appearance, and the details behind the shortcuts.
Product features
Setup and support
Switch between windows
Hold Command and press Tab to open your windows. Press Tab or ↓ to move forward; Shift-Tab or ↑ moves backward. Release Command or press Return to switch. Escape cancels.
A quick tap of Command-Tab returns to your last window without showing the list. Repeated taps alternate between your two most recent windows.
Tabitha orders windows by recent use. The previous window starts selected. By default, hidden windows, minimized windows, and apps without visible windows appear last.
Turn off Group hidden apps in Settings › Appearance for one recency list. Activating a minimized or hidden window restores it.
Stay within the current app
Hold Command and press ` to open only the current app’s windows. Add Shift to move backward. Quick return and numbered shortcuts work here too.
Search stays within that app. Use the Back control to search all windows. ← also widens an empty query.
Spaces and displays
Tabitha includes identifiable windows across Spaces, fullscreen windows, minimized windows, and Stage Manager windows. Choosing a window on another Space can switch Spaces.
The switcher can appear on every display, the active window’s display, the main display, or the display under your pointer. Choose Placement in Settings › Appearance.
See shortcuts for direct numbered activation and app keys.
Find a destination by name
Press ⌘S while the switcher is open, or click its search field. With a custom switching shortcut, hold its modifiers and press S.
Search stays open when you release the modifiers. Type words from window titles, app names, supported tabs, or profile context.
Every word must match. Search ignores case, accents, character width, and extra spaces. Destination names rank before matches found only in their context.
Search a group or all windows
Search from an app or window group filters that group. The token in the field names your scope. Root search includes all eligible destinations, regardless of grouping.
Clear empties the query. Without widening the search, clearing restores the previous scope, selection, and scroll position.
The Back control searches all windows while keeping your words. Delete or ← with an empty query does the same. Search then stays global for that session.
Tab or ↓ selects the next result; Shift-Tab or ↑ selects the previous one. Return activates the keyboard selection. Clicking a result activates that result.
Escape, a click outside the switcher, or moving focus elsewhere cancels without switching.
Installed apps and direct search
Global search can add up to five matching installed apps after window results. It omits apps with tracked windows. Empty queries offer no installed apps.
Choose an Open result to launch that app. Search within an app or window never adds installed apps.
Set an optional direct-search shortcut in Settings › Shortcuts. It has no default and opens the search field without the quick-tap wait.
Windows, tabs, profiles, and workspaces
Tabitha switches ordinary Mac windows across apps. Extra destinations depend on the type of tabs or groups an app provides.
Apps with native macOS tabs
Switch directly to tabs in apps that use the standard macOS window tab bar. Tabitha recognizes these tabs across apps.
Examples: Finder folders and TextEdit documents.
Apps with custom tabs
Some apps use their own tab controls. Tabitha supports terminal sessions and repository tabs in the examples below.
Examples: iTerm2 sessions and Fork repositories.
Editor files, settings tabs, tool panels, and terminal split panes are excluded. Other custom tab controls may not be supported.
Safari profiles
Tell profiles and private windows apart with profile names, badges, and private-window markers. Safari browser tabs are not supported.
Safari’s Split by profile option shows one row per profile at the App level. Show profile icons controls its profile badges.
Slack workspaces
Switch workspaces with their icons and the channel or view last seen in each workspace during this launch.
Slack’s Split by workspace option adds one destination per workspace. Show workspace icons controls optional icon downloads.
Tabitha switches workspaces, not individual channels, and shows no unread counts.
Choose how many rows an app uses
In Settings › Apps, choose App, Windows, or Tabs under Rows per app. App uses one row; Windows lists windows; Tabs lists supported tabs separately.
Finder folders and IntelliJ IDEA projects use the Tabs level by default. Other apps start at Windows.
Apps without readable tabs show windows instead. Select a row with a chevron and press → to open it. Press ← to return.
App groups open their windows and tabs together. With several windows and multiple tabs, Tabitha groups destinations under Window headings automatically.
The Rows button or ⌘R changes the selected app’s level and saves it. With custom switching modifiers, hold those modifiers and press R.
After changing the level, releasing the opening modifiers closes the switcher without activating a destination.
Planned support
Safari and Chromium browser tabs are not supported yet. Chrome profile and tab support is planned. Edge and Brave remain candidates.
Missing a window? Tell us which app and version you use.
Make the switcher fit
Open Settings › Appearance for row density, previews, theme, style, and display placement.
Rows and previews
Comfortable puts context below the title. Compact uses one line per row. Density changes row height while keeping your chosen row count.
Turn off Show window previews for a list-only switcher. Screen Recording is then unnecessary; Accessibility remains required.
Previews refresh when needed. Minimized windows, windows on other Spaces, background tabs, and inactive Slack workspaces can show remembered previews or an app icon.
Remember tab previews captures supported tabs as you visit them. An unvisited tab may have no preview. These captures can briefly light macOS’s recording indicator.
Tabitha keeps previews in memory and discards them when it quits. The cache is limited, so older images can disappear. Remember tab previews requires previews enabled.
Theme and style
Mist uses tinted surfaces; Native uses neutral surfaces. Both follow your Mac’s appearance by default.
Choose System, Light, or Dark under Style. This choice affects the switcher only. Welcome and Settings keep your Mac’s appearance.
Tabitha respects Increase Contrast, Reduce Transparency, and Reduce Motion.
Size, position, and displays
Drag an edge or corner to resize. Drag the column divider to share space between the list and preview.
Drag the preview, empty bar, or empty margin to move the switcher vertically. Double-click those areas to center it. The switcher stays horizontally centered.
Tabitha remembers your geometry across layouts and displays. Smaller screens constrain the panel without overwriting your saved size.
Placement offers All Displays, Focused Display, Main Display, and Follow Mouse Cursor. All Displays keeps each switcher synchronized.
Reset Size and Position in Settings › Appearance restores the default geometry.
Choose your way
Use the keyboard, mouse, or trackpad. Up and Down move through the list; → opens groups and ← goes back. Scroll to reach more rows.
Outside search, moving the pointer over a row targets it. Release the opening modifiers or press Return to switch to that target. Clicking a row switches immediately.
Keyboard navigation clears the pointer target. In search, Return always activates the keyboard selection; a click activates the clicked result.
VoiceOver
The VoiceOver cursor follows the selection. VoiceOver keys can browse independently. VO-Space activates its row without changing the keyboard selection.
Rows expose their full names, context, position, and window states. Group headings and native controls remain accessible.
See shortcuts and troubleshooting for configurable keys and Secure Input exceptions.
Performance and privacy
| Operation | Median (ms) | P95 (ms) |
|---|---|---|
| Open, 20 windows | 44.6–44.9 | 50.3–50.9 |
| Move selection, 20 windows | 0.7 | 2.2–2.3 |
| Move selection, 300 search results | 1.1–1.2 | 1.2 |
| Type a search, 300 destinations | 10.1–10.2 | 10.4–10.9 |
We measured revision 35ba673 on an Apple M1 Pro MacBook Pro with 32 GB memory and macOS 27.0.1.
Its built-in display runs at 120 Hz, 1800 × 1169 points, and 2× scale.
Ranges cover five runs, with 100 timed samples per run, rounded to 0.1 ms. P95 covers 95% of samples within each run.
Opening excludes the 150 ms quick-tap interval and ends at the first display callback. Selection and search measure interface work on the main thread.
Timing tests use synthetic windows and tabs, Mist, Compact rows, and previews off.
With three real previews in one 864 × 480-point panel, process memory peaks at 60.4–60.5 MiB. It settles at 32.1–32.4 MiB 30 seconds after closing.
Results depend on your Mac, displays, window count, and preview settings. See the recorded results and test conditions (JSON).
Window titles, search text, and previews stay on your Mac. Update checks and optional Slack icon downloads use the network.
The privacy policy explains network requests, purchases, support, and local diagnostics.
Install and start switching
Tabitha requires macOS 26 or later. The 14-day trial includes every feature and needs no payment details.
- Download Tabitha and open the DMG.
- Drag Tabitha into the Applications folder, then open it from there.
- In Welcome, grant Accessibility access. Window previews also need optional Screen Recording access.
- Click Done. Hold Command and press Tab to see your windows.
Tabitha runs in the background without a Dock icon. While the switcher is open, press ⌘, for Settings. The ··· menu also opens Settings and Welcome.
Why a direct download?
Tabitha uses private macOS APIs to bring the exact chosen window forward across Spaces. The Mac App Store’s API and sandbox rules prevent this approach.
Public releases come as signed, notarized downloads. Apple scans each release for malware before macOS lets it open.
Updates
Automatic update checks are on by default. Change them in Settings › General, or choose Check for Updates… from the ··· menu.
Read What’s New for release notes.
Set up permissions
Accessibility, required for switching
Tabitha uses Accessibility to read windows and tabs, capture your shortcut, and bring the chosen window forward.
Use the Accessibility button in Welcome or Settings › General to open System Settings. Enable Tabitha, then return to the app. Tabitha checks the permission again automatically.
Screen Recording, only for previews
Use the Screen Recording button to open its system settings, then enable Tabitha. Return to Tabitha and click Relaunch when offered.
If previews remain blank after granting access, relaunch Tabitha. macOS requires a fresh app process before capture works.
Prefer not to grant it? Turn off Show window previews in Welcome or Settings › Appearance. Window switching still works with Accessibility alone.
The everyday shortcuts
| Keys | Action |
|---|---|
| ⌘Tab | Hold Command to open the list. Press Tab again to move forward; release Command to switch. |
| ⌘⇧Tab | Move backward through the list. |
| ⌘S | Start search while the switcher is open. |
| ⌘` | Open only the current app’s windows. |
| Esc | Cancel without switching. |
A quick tap of Command-Tab returns to your last window without showing the list. Change shortcuts in Settings › Shortcuts.
Numbers and app keys
During switching, press Command with a displayed number to activate one of the first nine targets immediately. Your opening shortcut’s modifiers work with numbers too.
Turn Numbered shortcuts off in Settings › Shortcuts to hide and disable them. Assigned app keys still work.
Assign an app key in Settings › Apps. During switching, press it to select that app’s next row. Repeated presses cycle its rows.
Release the opening modifiers or press Return to activate the selection. App keys do not launch closed apps, and search or detail groups ignore them.
Letter app keys work with numbers enabled. A digit app key requires numbered shortcuts off.
Groups and row levels
Settings › Shortcuts can assign an Open or close group key. It has no default; → and ← always work.
Change row level uses R by default. Change or clear it in Settings › Shortcuts. The Rows button remains available.
If Command-Tab does not open Tabitha
Open Tabitha from Applications. Check Accessibility access in Welcome or Settings › General, then check your shortcut in Settings › Shortcuts.
Accessibility is on, but Tabitha still says it is missing
macOS may keep an old permission entry after the app moves or its signature changes.
- Open System Settings › Privacy & Security › Accessibility.
- Select Tabitha and remove it with the minus button.
- Add Tabitha from Applications and enable it again.
- Open Tabitha from Applications to check the permission.
Another app uses Command-Tab
Quit other window switchers, then try again. Check keyboard tools for a Command-Tab remapping. Tabitha cannot guarantee which app receives a shared shortcut.
The list opens, but arrows, Escape, or search do not work
Secure Input protects typing in password fields and some terminals. It prevents Tabitha from reading these keys.
Leave the password field or turn off Secure Keyboard Entry in the terminal, then try again. Tabitha still supports its opening shortcuts and switching when you release their modifiers.
The trial ended
After 14 days, opening the switcher shows Trial Ended. Buy Tabitha or enter your license to continue.
The wait row offers one more hour of switching each day. After that hour, it offers the macOS switcher until tomorrow.
Screen Time limits
If a Screen Time limit covers Tabitha, Command-Tab opens the macOS switcher until the limit ends. Then Tabitha takes it back. To avoid this, open System Settings › Screen Time › Always Allowed and add Tabitha.
When another app reaches a limit or downtime, its windows stay in the list with a Screen Time label. The preview shows “Limited by Screen Time”. Choose the window to bring that app forward.
Remote desktops and virtual machines
Tabitha passes its opening shortcuts through while these clients are in front: Screen Sharing, Windows App, Jump Desktop, Parsec, RealVNC Viewer, Citrix Viewer, Parallels Desktop, VMware Fusion, and UTM. This lets you switch windows inside the remote machine.
Return to the macOS switcher
Open the switcher’s ··· menu and choose Quit Tabitha. To keep it from starting again at login, turn off Launch at login in Settings › General.
License and billing
Enter your license
After purchase, the buy page shows your key. We also email it from license@fewersteps.app. Open Settings › General, click Enter License, and paste the key. You can paste the whole purchase email.
The key unlocks the current release and all 1.x versions on every Mac you personally use. A future major version may be a paid upgrade.
Recover a key or find a receipt
Get your key emailed again using your purchase email. Check spam if it does not arrive. For receipts and invoices, visit Paddle.
Trial expiry and refunds
After 14 days, Trial Ended offers a purchase, license entry, or one more hour of switching each day. After that hour, you can use the macOS switcher until tomorrow. The trial never charges you automatically.
Already bought Tabitha? You can request a full refund within 14 days of purchase. How to request a refund.
Still stuck?
Email tabitha@fewersteps.app. Include what happened, what you expected, and your Tabitha and macOS versions.
The app’s Send Feedback… menu item adds those versions to your email draft.
For purchase questions, include your order number. Do not send payment card details or your license key.