v3.2.1 — Benjamin Franklin portrait banner
Visual upgrade. The startup banner now shows Benjamin Franklin's face next to the FRANKLIN text block, side-by-side.
What it looks like
[10-row Ben Franklin portrait] ███████╗██████╗ █████╗ ███╗ ██╗...
██╔════╝██╔══██╗██╔══██╗████╗ ██║...
█████╗ ██████╔╝███████║██╔██╗ ██║...
██╔══╝ ██╔══██╗██╔══██║██║╚██╗██║...
██║ ██║ ██║██║ ██║██║ ╚████║...
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝...
Franklin · The AI agent with a wallet · v3.2.1
In a truecolor terminal the portrait renders in actual grayscale shading (block-character half-cells + 256-color palette). The FRANKLIN text keeps its gold → emerald gradient from v3.1.0.
Source image
Joseph Duplessis' 1785 oil painting of Benjamin Franklin. Public domain, Wikimedia Commons, File:BenFranklinDuplessis.jpg. Same painting the face on the US $100 bill is derived from — so one portrait anchors both "Franklin the person" and "Benjamins / $100" in one visual.
How it's rendered
chafa --size=20x10 --symbols=block --colors=256 ben-franklin.jpgOutput is a 10-row × ~17-column block-character ANSI string. Baked into src/banner.ts as a hex-escaped string array. No runtime dep on chafa — it's only used at build time, and only if we ever want to regenerate the portrait.
Layout rules
- Terminal ≥ 90 cols → side-by-side portrait + FRANKLIN gradient text. FRANKLIN is vertically centred inside the portrait's 10 rows.
- Terminal < 90 cols → text-only fallback, identical to the v3.2.0 banner. Nobody gets a wrapped/mangled hero.
Why
Block-letter "FRANKLIN" alone was generic. Every CLI tool has some version of it. Ben's face ties the brand to the person the tool is named after, and to the Benjamins / $100 cultural anchor, in one glance.
- Docker has a whale.
- Kubernetes has a helm.
- Laravel has an "L".
- Franklin now has Ben's face.
Not changed
- Every other subsystem —
franklin social, agent loop, wallet, tools, sessions — identical to v3.2.0.
npm: @blockrun/franklin@3.2.1 · Full changelog: v3.2.0...v3.2.1