mOT

mOT

An opinionated terminal for macOS.

Instant ⌥ Space overlay, native text editing — built for my workflow, and maybe yours too.

Native APIs • 353 KB binary

Download for macOS Free · 0.7 MB · macOS 15+

Pro is for when my defaults aren't yours: it unlocks ~/.mot.yaml so you can swap fonts, colors, opacity, hotkey, etc.

Technology

CoreGraphics

Draws every cell, cursor, and glyph on the CPU — into a shared IOSurface, only the rows that changed.

CoreText

Font loading, glyph shaping, and fallback fonts.

Metal

Presents each frame on the GPU: the CPU-rendered IOSurface is a zero-copy texture, blitted into a CAMetalLayer and shown synchronously to shave a frame of input latency.

Core Animation

GPU-composites the ⌘ M mosaic — every tab scaled live into a grid.

libvterm

Neovim's VT100 / ANSI parser that turns the byte stream into the screen grid.

Grand Central Dispatch

Runs PTY reads and writes off the main thread.

Carbon

Registers the system-wide ⌥ Space hotkey.

Security.framework

Verifies the Pro license locally with RSA.

Sparkle

Code-signed, EdDSA-verified auto-updates.

Cocoa

Windows, tabs, events, and the app shell.

Keyboard

Panel

Space
Show / hide the panel (anywhere)
Toggle windowed ↔ overlay

Tabs

T
New tab
W
Close tab
19
Switch to tab N
M
Tab Mosaic

Find

F
Find across the whole buffer
/
Next / previous match
Esc
Close find

Text editing

/
Line start / end
/
Word back / forward
Kill to line start
Kill previous word

Selection & clipboard

C / V
Copy / paste
A
Select all
Double-click
Select word
Triple-click
Select style
Quadruple-click
Select line
←↑→↓
Extend selection
+hover / click
Underline / open URL

Font

+ /
Bigger / smaller
0
Reset to default

Scrollback

PgUp / PgDn
Page up / down
Home / End
Top / bottom
K
Clear screen & scrollback

Config

Config lives in ~/.mot.yaml, hot-reloaded on save. Editing is a Pro feature.

font:
  name: Menlo
  size: 14

dark:  # macOS system colors, dark appearance
  background:     #000000
  foreground:     #AAAAAA
  black:          #000000
  red:            #FF453A
  green:          #30D158
  yellow:         #FFD60A
  blue:           #0A84FF
  magenta:        #BF5AF2
  cyan:           #64D2FF
  white:          #FFFFFF
  bright_black:   #8E8E93
  bright_red:     #FF6961
  bright_green:   #30DB5B
  bright_yellow:  #FFD426
  bright_blue:    #409CFF
  bright_magenta: #DA8FFF
  bright_cyan:    #70D7FF
  bright_white:   #FFFFFF

light:  # macOS system colors, light appearance
  background:     #FFFFFF
  foreground:     #1D1D1F
  black:          #000000
  red:            #FF3B30
  green:          #34C759
  yellow:         #FFCC00
  blue:           #007AFF
  magenta:        #AF52DE
  cyan:           #32ADE6
  white:          #B4B4B8
  bright_black:   #8E8E93
  bright_red:     #FF6259
  bright_green:   #34DA62
  bright_yellow:  #FFD426
  bright_blue:    #3395FF
  bright_magenta: #C77DEA
  bright_cyan:    #5AC8FA
  bright_white:   #FFFFFF

general:
  shell:         ""           # empty = $SHELL (login shell)
  hotkey:        opt+space    # global show/hide hotkey
  opacity:       1.0          # 0.0 transparent — 1.0 opaque
  scrollback:    10000        # lines of history per tab (200–100000)
  max_columns:   512          # grid / scrollback width cap (80–512); lower saves memory
  tab_placement: none         # tl, tc, tr, bl, bc, br, or none
  present_mode:  hybrid       # hybrid (default), sync, or coalesced