iTermSidebar: a floating navigator for iTerm2 windows
The problem
When you have eight or more iTerm2 windows open across two monitors, the macOS window switcher stops being useful. Cmd-Tab cycles through apps, not windows. Cmd-` cycles through windows in one app, but with no context about what is in each one. You end up clicking around the Dock or hunting through Mission Control just to find the terminal running your test watcher.
What iTermSidebar does
iTermSidebar is a macOS menubar app that puts all your iTerm2 windows in a floating panel on the right edge of each screen. Each row shows the window title — your Rails server, your git log, the SSH session you left open. Colored dots indicate session state: yellow means something is running, green means the shell is idle. Click a row and that window comes forward.
When a screen has no iTerm2 windows, the sidebar hides itself. Multi-monitor setups get one sidebar per display, each showing only the windows on that screen.
How it works
The app is a single Swift file — about 350 lines, no Xcode project. It uses AppKit's NSPanel (a floating window that stays above normal windows and persists across Spaces) with a SwiftUI list view inside it.
Terminal state comes from iTerm2 via AppleScript. When iTerm2 is the frontmost app the poll interval is 1 second; otherwise it backs off to 10 seconds. Raising a window on click also goes through AppleScript: tell application "iTerm2" to select window N.
The panel joins all Spaces (collectionBehavior = .canJoinAllSpaces) and floats at NSWindow.Level.floating, so it stays visible even when you fullscreen another app.
Install
sh
git clone https://github.com/afomi/iterm2-status-bar
cd iterm2-status-bar
./build-app.sh
The script compiles main.swift and copies the resulting .app bundle to /Applications/iTermSidebar.app. On first launch, macOS Gatekeeper will block it because the app is not signed. Right-click the app in Finder and choose Open to bypass this once.
What's next
The README needs a screenshot. The bigger lift is code signing and notarization so users do not hit the Gatekeeper prompt — that is a GitHub Actions workflow plus an Apple Developer account, which is on the list.
By Ryan Wold · © 2026 Ryan Wold
Licensed CC BY-NC 4.0. AI training requires a license — machine-readable terms.
Tip: $afomi on HandCash · afomi@handcash.io