Justty features

August 16, 2026 · View on GitHub

Justty is a minimal native macOS terminal (SwiftUI + libghostty). It targets quick commands, not full Ghostty parity. Requires macOS 15.6+.

Windows & tabs

  • New window - ⌘N opens another main window.
  • Tab bar - Titles, per-tab close, + (new tab), gear (Settings). Overflowing tabs scroll with left/right arrows (and stay clear of the trailing buttons). Empty chrome is draggable (hidden title bar); double-click zooms the window. Toggle Vertical tabs in Settings → Window for a full-height left rail under the traffic lights (drag the trailing edge to resize; width persists in config.yml). Content column keeps a top strip with a sidebar show/hide control, drag, +, and Settings.
  • Shortcuts - ⌘T new tab, ⌘W close tab, ⌘⇧] / ⌘⇧[ next / previous tab, ⌘⇧← / ⌘⇧→ move tab left / right.
  • Titles - Tab titles show the foreground command basename (e.g. node for node index.js), or a program OSC title while that command is running (e.g. Cursor Agent), and the login shell when idle. By default titles are prefixed with the cwd basename (dir - node / dir - zsh); toggle in Settings → Window.
  • New tab directory - ⌘T / + open in the active tab’s working directory (usually the shell process cwd; OSC 7 when the shell emits it). New windows and replacement tabs after shell exit start in $HOME.
  • Close with running command - Closing a tab that has a foreground process prompts for confirmation (toggle in Settings → Window).
  • Last tab - Closing the last tab closes the window. If the shell exits on the last tab, a new tab is opened instead.

Terminal

  • Login shell - Real PTY via Ghostty .exec; shell from the user account ($SHELL / passwd), launched as a login shell.
  • Rendering - Metal surface from libghostty.
  • Bell - System beep; dock bounce / attention when the app is inactive.
  • URLs - Terminal URL requests open in the default browser.
  • Find - ⌘F opens a thin find bar; matches are highlighted in scrollback via Ghostty search. Next/previous from the bar; Esc closes.
  • Font zoom - ⌘+ / ⌘− change the active tab’s size temporarily; ⌘0 resets to the Settings font size. Changing Settings (or Reload Configuration) also clears zoom and applies the new Settings size (not written to config.yml).
  • Theme chrome - Window / tab bar background and app appearance follow the selected color theme.

Settings

Open with ⌘, or the tab-bar gear. Values persist in ~/.config/justty/config.yml (created with defaults on first launch). Changing Settings writes the file immediately; after editing the file by hand, use File → Reload Configuration (⌘⇧,). Window size/position apply to new windows only.

SectionControls
ThemeGhosttyTheme catalog, grouped Light / Dark. Defaults: GitHub Light Default / GitHub Dark Default.
FontFamily (System or detected monospace), size 8–32 px (default 13), line height 0.8–2.0×, weight Regular / Medium / Semibold / Bold.
WindowConfirm before closing tabs with a running command (default on); show directory in tab titles (default on); vertical tabs (default off); padding 0–64 px; starting X×Y from the top-left of the main screen (clamped to the visible frame); size as character grid (cols 20–500, rows 5–200; default 80×24).
Keyboard ShortcutsOpens a read-only sheet (same list as below).
ConfigurationOpen Configuration… opens config.yml in the default text editor (Ghostty-style).

Keyboard shortcuts

Source of truth: justty/Settings/ShortcutsCatalog.swift (also drives Ghostty terminal keybinds after keybind=clear).

Window & Tabs

ActionKeys
New Window⌘N
New Tab⌘T
Close Tab⌘W
Show Next Tab⌘⇧]
Show Previous Tab⌘⇧[
Move Tab Left⌘⇧←
Move Tab Right⌘⇧→
Find⌘F
Larger⌘+
Smaller⌘−
Actual Size⌘0
Reload Configuration⌘⇧,

Terminal

ActionKeys
Move Word Left⌥←
Move Word Right⌥→
Move to Line Start⌘←
Move to Line End⌘→
Delete to Line Start⌘⌫
Copy⌘C
Paste⌘V
Scroll to Top⌘↖
Scroll to Bottom⌘↘
Scroll Page Up⌘⇞
Scroll Page Down⌘⇟

Window & tab shortcuts are handled by the app menus. Terminal shortcuts are Ghostty keybinds installed by the host.

Fixed Ghostty behavior

Not exposed in Settings (host-owned defaults):

  • Scrollback limit ~4 MB
  • Scrollbar never shown
  • Option key as Alt
  • Clipboard: read deny (OSC 52), write allow; paste protection off until libghostty can show a real confirm UI
  • Shell integration off
  • Blinking block cursor
  • TERM=xterm-256color, COLORTERM=truecolor, TERM_PROGRAM=Justty (+ version when available)

Out of scope

Justty does not expose (among other Ghostty capabilities):

  • Splits / panes
  • Inspector
  • Custom ghostty.conf / profiles
  • Remappable shortcuts in the UI
  • Sandboxed / in-memory backends (app sandbox stays off for real shells)