A native macOS terminal app: a horizontally scrolling grid of terminals, always two rows tall and as many columns wide as you want. Built with Swift / AppKit and SwiftTerm.
Press ⌘/ in the app for the same list.
| Shortcut | Action |
|---|---|
| ⌃⇥ | Focus the next column (wraps at the end) |
| ⌃⇧⇥ | Focus the previous column (wraps at the start) |
| ⌥⌘← / → | Step one column; hold to smooth-scroll |
| ⌥⌘↑ / ↓ | Focus the pane above / below |
| ⌘⇧H | Home — back to the first two columns |
Keyboard navigation moves keyboard focus with it, so what you type lands in the pane you just navigated to. Scrolling with the trackpad or dragging the minimap deliberately leaves focus alone, so peeking at another column never pulls the cursor out of a running command.
| Shortcut | Action |
|---|---|
| ⌘⇧← / → | Add a column to the left / right |
| ⌘⇧R | Reset to the original two columns |
| ⌘⇧M | Toggle the minimap |
| ⌘/ | Show the shortcuts panel (Esc closes it) |
| Shortcut | Action |
|---|---|
| ⌘C / ⌘V | Copy / paste in the focused pane |
| ⌥← / → | Move the cursor by word |
| ⌥⌫ | Delete the previous word |
| ⌘= / ⌘- / ⌘0 | Font size up / down / reset |
| ⌘⌥O | Toggle Option as Meta (off = ⌥3 types #) |
- macOS 14 (Sonoma) or later
- Xcode 15+ command line tools (
xcode-select --install) - A Developer ID Application certificate is only needed for signed/notarized builds; debug builds run unsigned.
swift build -c release
open .build/release/InfinityTerminal # or run from XcodeFor a fully packaged, signed, and notarized DMG:
# put APPLE_ID, APPLE_PASSWORD (app-specific), APPLE_TEAM in .env
./build-app.sh --dmgbuild-app.sh produces .build/InfinityTerminal.app (always) and
.build/InfinityTerminal-<version>.dmg (with --dmg). Notarization is
skipped if the Apple credentials aren't present.
Sources/InfinityTerminal/— Swift sourcesmain.swift—NSApplicationbootstrapModels/— grid + session model objectsViews/— AppKit views (toolbar, columns, panes, minimap, shortcuts)Resources/— bundled icon + logo
Package.swift— SwiftPM manifest (target depends on SwiftTerm)build-app.sh— packaging / signing / notarizationresources/— README screenshots and the OG image used by the website
Tagged v1.x.y; the GitHub release is built and published manually from
build-app.sh output. The update-web.yml workflow propagates the release
notes onto infinityterminal.com.


