zshell

The terminal

Zshell's terminal backends, shell environment, link handling, notifications, and safety features.

Every terminal pane runs your real login shell and uses one of two native, GPU-accelerated terminal backends. Zshell owns the surrounding behavior—pane focus, search, notifications, links, history, themes, and paste safety—so it is consistent whichever emulator you choose.

Terminal backends

Choose a backend under Settings → Terminal → Backend:

BackendNotes
GhosttyThe default
AlacrittyGenerally uses less memory

Both support GPU acceleration, image rendering, Zshell's shared theme catalog, find, mouse reporting, notifications, and progress reports. A backend change applies to new terminals only—existing panes keep the emulator they started with.

Your shell, unchanged

Each session starts your account's login shell, so your prompt, aliases, functions, and dotfiles load as they do in any terminal. Zshell adds capability and identity variables:

VariableValue
TERM_PROGRAMghostty
TERM_PROGRAM_VERSIONthe Ghostty capability version Zshell implements
ZSHELL_TERMghostty or alacritty, the actual pane backend

Both backends advertise Ghostty through TERM_PROGRAM because image-aware and notification-aware CLIs use it as a capability hint. Use ZSHELL_TERM only when you genuinely need to distinguish the renderer.

Zshell does not read ~/.config/ghostty or an Alacritty config. Fonts, colors, input behavior, and the backend are configured in Zshell's own settings.

ActionShortcut
FindCmd+F
Find nextCmd+G
Find previousShift+Return in the find bar
Use selection for findCmd+E
Clear the terminalCmd+K

Find acts on the focused terminal or editor pane and remains active while its search field owns keyboard focus.

Prompt editing

Click within the active shell prompt to move its input cursor, then keep typing at that position. In a zsh prompt, drag across the input to select a range: typing replaces the selection, while Backspace or Delete removes it. Double- or triple-clicking still select terminal text; programs that enable terminal mouse reporting, such as full-screen TUIs, keep receiving their own mouse events.

If a nested or replacement shell has not loaded Zshell’s prompt editing support, dragging still selects terminal text for copying but does not edit the input. Input selection editing resumes when you exit back to the original prompt.

Paths and URLs

Zshell recognizes web URLs and existing local paths printed by terminal programs. Local links can be absolute, ~/-relative, ./ or ../ relative, or relative to the pane's live working directory. A diagnostic suffix such as :42 or :42:7 does not stop the underlying file from being found.

  • Command-click a local path to reveal it in Finder, or a URL to open it in the default browser.
  • Command-right-click a path for New File Tab / New File Pane, or a URL for New Browser Tab / New Browser Pane.
  • Full-screen programs that enable mouse reporting receive an unmodified right-click. Hold Shift while right-clicking to open Zshell's terminal and pane menu instead.

This gives compiler output and agent transcripts a direct route back into the same project. Browser behavior is covered in Browser panes.

Notifications

Zshell forwards two terminal events to Notification Center:

  • a bell from a session that is not focused;
  • an OSC 777;notify request from a program such as a long-running build or coding agent.

Notifications can play the system sound. Clicking one activates Zshell and jumps to the exact session that emitted it. macOS asks for permission only when a terminal first tries to notify you, not when Zshell launches.

Progress reports

Programs that emit OSC 9;4 progress get a slim bar above the terminal, with distinct normal, paused, and error states. There is nothing to enable: if the program reports progress, the pane shows it.

Clipboard, drops, and paste safety

  • Clipboard reads are confirmed. OSC 52 can ask for the macOS clipboard, including from a remote host over SSH. Zshell asks before returning it.
  • Risky pastes are flagged. Multi-line or command-like text is held behind a confirmation instead of being submitted immediately.
  • Files become shell-safe paths. Finder-copied or dragged files are inserted as quoted absolute paths. Clipboard images still reach image-aware TUIs.

Option-key input

By default, Option stays with the active macOS input source so layouts such as Polish Pro can type composed characters. Enable Use Option as Alt/Meta in Settings when a terminal program should receive Option-key chords as Meta shortcuts instead. See terminal.macos-option-as-alt.

The zshell command

Every Zshell terminal includes a project-aware CLI:

zshell                         # create a project at the current directory
zshell vim ~/src/app.swift     # create it and run this argv in the first terminal
zshell +themes                 # browse and preview themes interactively
zshell +themes --list --dark   # print theme names without the browser
zshell +help                   # show all command groups

The theme browser previews each selection across the whole app; Return saves it and Escape restores the previous theme.

Fonts

Zshell bundles JetBrains Mono plus Nerd Font symbols. Any installed monospace family can replace it. See font-family, font-size, and terminal.font-thicken.

On this page