Who
I wanted a glyph picker that stays in the TTY — vim motions, alt-buffer, Enter copies the character — without dragging in Ink, Blessed, or Bubble Tea.
For people who already installed a Nerd Font and are tired of opening a browser just to steal a powerline arrow.
What
I built nfglyph — public https://github.com/michaelmonetized/nfglyph. HEAD 1dfdc82. 4 commits. 0 stars. Default main. Version Unreleased (sitrep still says SHIPPED). CLI/TTY only. Single file nfglyph (~431 LOC) on Bun. No package.json.
v1 (0c91b0d, Jan 30): walk hard-coded Unicode ranges (emojis + Nerd PUA), filter by hex only, copy via pbcopy, shebang pinned to /Users/michael/.bun/bin/bun, cleanup called process.exit(0).

Upgrade (047b54c, Jun 1): commit .nfglyph-data/glyphs.json from ryanoasis glyphnames — METADATA 3.4.0 / 50,174 named glyphs. loadGlyphs() + fuzzyMatch on g.name (hex path still works). Footer shows name + U+XXXX. y yanks the hex code. Shebang -> #!/usr/bin/env bun.

Linux quit (1dfdc82, Jun 3): cleanup resolves a keepAlive promise instead of process.exit; detaches stdin listeners and pause()s; quit matches input.includes("q"); write uses process.stdout.write; clipboard tries pbcopy -> wl-copy -> xclip -> xsel.

Residue: README still markets 15k+ and hex search; PLAN Phase 1 still has Fuzzy name search unchecked; error string still curls into ~/.nfglyph-data while code loads next to argv[1]; .uncap headSha empty; sitrep last-commit date stuck on Jan 30.

Where
Code: github.com/michaelmonetized/nfglyph — public. No live web app.
git clone https://github.com/michaelmonetized/nfglyph.git
cd nfglyph
chmod +x nfglyph
ln -s "$(pwd)/nfglyph" ~/.local/bin/nfglyph
nfglyph
tmux popup from README: bind-key g display-popup -E -w 80% -h 80% -T "Glyph Picker" "nfglyph".
When
2026-01-30 — Initial release (0c91b0d) — range-scan TUI + screenshot + MIT.
2026-06-01 — init docs/tooling (1d15ef5); upgraded named JSON + fuzzy (047b54c).
2026-06-03 — fixed quit on linux (1dfdc82) -> HEAD. Queue pushed_at 2026-06-03T13:54:06Z.

Why
Because a picker that only filters hex forces me to already know the codepoint. Because process.exit from an alt-buffer raw-mode loop is how Linux sessions feel stuck. Because shipping glyphs.json next to the binary beats pretending 15k range-scan glyphs are named.
Engagement Q: Update README/PLAN to match the fuzzy+50k HEAD, or leave the stale 15k/hex story as a museum label next to the working binary?
