The colors macOS Terminal.app's Pro profile actually renders — measured from the renderer, not guessed — mapped onto VS Code.
All sixteen ANSI slots map 1:1, so the integrated terminal is pixel-identical to Terminal.app.
| Role | Hex | ANSI | Normal | Bright | |
|---|---|---|---|---|---|
| Background | #000000 |
Black | #000000 |
#666666 |
|
| Foreground | #F4F4F4 |
Red | #990000 |
#E60000 |
|
| Bold text | #FFFFFF |
Green | #00A600 |
#00D900 |
|
| Cursor | #606060 |
Yellow | #999900 |
#E6E600 |
|
| Selection | #525252 |
Blue | #0000B3 |
#0000FF |
|
| Magenta | #B300B3 |
#E600E6 |
|||
| Cyan | #00A6B3 |
#00E6E6 |
|||
| White | #BFBFBF |
#E6E6E6 |
The Pro profile stores only bg/fg/bold/cursor/selection in
~/Library/Preferences/com.apple.Terminal.plist, as NSKeyedArchiver-encoded
NSColor blobs. The 16 ANSI colors are not stored — Pro inherits Terminal's
built-in defaults, which live in the app binary. They aren't exposed to AppleScript
and aren't float constants in the binary either, so they were read out of a live
Terminal window with OSC 4;n;? — ground truth from the renderer itself.
The plist floats are Apple Calibrated Gray, gamma 1.8 — not sRGB. Scaling them directly by 255, which is what most Terminal-to-editor converters do, yields values that are visibly wrong:
Naive round(v*255) |
Correct (γ1.8 → sRGB) | |
|---|---|---|
| Foreground | #F2F2F2 |
#F4F4F4 |
| Cursor | #4D4D4D |
#606060 |
| Selection | #414141 |
#525252 |
The corrected values were confirmed against the live OSC readback, which agreed
to the byte.
WCAG contrast against #000000:
| Color | Ratio | |
|---|---|---|
#0000B3 blue |
1.65:1 | unusable |
#0000FF bright blue |
2.44:1 | unusable |
#990000 red |
2.35:1 | unusable |
#E600E6 bright magenta |
5.51:1 | good |
#00A6B3 cyan |
7.11:1 | good |
#00D900 bright green |
10.93:1 | excellent |
#E6E600 bright yellow |
15.68:1 | excellent |
Terminal's blues are essentially illegible as text on black. They are kept exact
in the terminal.ansi* slots — fidelity matters there, and terminal output is
transient — but are not used for syntax, where you read for hours. Syntax draws only
from colors clearing ~4.5:1. Comments intentionally sit at 3.66:1 to recede.
UI chrome grays (#0D0D0D, #1A1A1A, #2B2B2B, #3D3D3D) are derived —
interpolated black → #666666. VS Code has borders, hovers, and elevated surfaces
that a terminal has no equivalent for.
cp -R macos-terminal-theme ~/.vscode/extensions/ # VS Code
cp -R macos-terminal-theme ~/.cursor/extensions/ # CursorThen Cmd+K Cmd+T → macOS Terminal (Pro).
To regenerate the theme from the palette: python3 gen_theme.py <output-dir>
Icon from yesomac/terminal (MIT), stored there
as terminal.jpg though the bytes are PNG; renamed here to match reality.
MIT — see LICENSE.


