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:
| Backend | Notes |
|---|---|
| Ghostty | The default |
| Alacritty | Generally 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:
| Variable | Value |
|---|---|
TERM_PROGRAM | ghostty |
TERM_PROGRAM_VERSION | the Ghostty capability version Zshell implements |
ZSHELL_TERM | ghostty 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.
Search
| Action | Shortcut |
|---|---|
| Find | Cmd+F |
| Find next | Cmd+G |
| Find previous | Shift+Return in the find bar |
| Use selection for find | Cmd+E |
| Clear the terminal | Cmd+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;notifyrequest 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 52can 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 groupsThe 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.