Falcon is a modern, full-featured terminal emulator on par with Ghostty, iTerm2, WezTerm and others — written in pure Go on go-term and the go-gui framework. A real shell over a PTY, rendered on the GPU, with tabs and panes. macOS, Linux, Windows.
Prebuilt binaries attach to each go-term release. macOS builds are ad-hoc signed: on first launch, right-click the app and choose Open.
falcon — terminal emulator on go-term and go-gui. Reference embedder for multi-tab, multi-pane workspaces with save and restore.
falcon [--workspace path] [--save-workspace path]
[--record session.gtr] [--replay session.gtr]
[--replay-speed n] [--replay-idle-limit dur] [--replay-loop]Falcon spawns a real shell over a PTY and renders through a GPU-accelerated draw canvas. It covers the protocol surface modern CLI tools expect: 24-bit Truecolor, Sixel and Kitty graphics, Kitty Keyboard Protocol, bracketed paste, scrollback with search and shell marks.
Quitting saves the tab and pane layout; the next launch restores it. New tabs and splits inherit the focused pane's working directory.
| Cmd+D / Cmd+Shift+D | Split vertically / horizontally |
|---|---|
| Cmd+T · Cmd+1…9 | New tab · select tab |
| Cmd+F | Find, with regex on Ctrl+R |
| Cmd+Shift+Space | Copy mode — vim-keyed selection, output frozen |
| Cmd+↑ / ↓ | Previous / next prompt (needs OSC 133) |
| Cmd+Shift+E | Jump to last failure (needs OSC 133) |
| Cmd+Shift+T | Theme picker |
| Cmd+Shift+R | Toggle session recording |
| Cmd+/ | Help overlay, generated from the live binding table |
Sessions record to .gtr files that store the PTY bytes verbatim. Replay with falcon --replay session.gtr; inspect and convert with the gotermrec CLI. A recording reproduces a rendering bug instead of describing it.
Over 600 built-ins: go-term's own Default plus a 602-theme corpus. Press Cmd+Shift+T to browse them with live preview and filter, or set [general] theme in the config. A few popular picks:
…plus about 590 more — the full list is in docs/themes.md.
One INI file at ~/.config/falcon/config. Cmd+, opens it in your editor; Cmd+Shift+, reloads every pane without restarting.
[font] family = JetBrainsMono NFM size = 13 [general] theme = Tokyo Night scrollback = 20000 [keybindings] workspace.splitVertical = Cmd+D
Every section, key, and rebindable action is documented in docs/config.md.