Back

TRMNL — Terminal-First Banking
Role: Product Designer, UX Researcher, Creative Coder
Tools: React 18, SheetJS (XLSX parsing), Recharts, Lucide React, Vite
Year: 2026
TRMNL is a terminal-first personal banking interface built on the premise that banking is fundamentally about numbers and commands, not dashboards and animations. A constrained, shell-like command grammar replaces the accumulated UI debt of traditional banking apps with something faster, more legible, and more trustworthy. The prompt — "roots$" — nods to both UNIX and the financial idea of where money comes from and goes. No gradients, no pie charts, no confetti: just a prompt, your data, and commands that do exactly what they say.
Problem
Mainstream banking apps share UX failures the industry has normalized: checking a balance takes 3–5 taps; fee disclosures and overdraft opt-outs are buried by design, not accident; there's no power-user mode for batch queries or automation; transaction search rarely handles fuzzy matching ("amazon" won't find "AMAZON MKTPLCE"); and interfaces that hide more than they show train users to feel surveilled rather than served.


Audience
Three personas anchor the initial TAM: the Terminal Native (engineers and data scientists frustrated their most powerful tool is disconnected from their money), the Financially Serious Non-Engineer (analysts and spreadsheet builders who value precision over polish), and the Privacy-Conscious Minimalist (distrustful of data-hungry, gamified apps). The strategy deliberately narrows the wedge before widening it.
Design Philosophy
Four principles guide the system: data first, chrome second (every non-data pixel competes with data — hence a monochrome palette with surgical color accents: red for commands, green for values, blue for flags, amber for users); errors as first-class affordances that teach the grammar instead of apologizing; progressive disclosure through syntax, where novices run bal and power users script it into a cron job; and confirmation as a trust feature, not friction — destructive actions never execute silently. Deliberate exclusions: no dashboards, no default notifications, no spending psychology nudges, no gamified streaks, no in-UI upsell.
Command Grammar
A noun-verb structure keeps frequent commands short (bal, tx, not "get transactions"). Flags extend rather than replace defaults (tx --last 30), pipe support (| grep amazon) brings shell-style filtering to the desktop, and any state-changing command — send, freeze, schedule — triggers a plain-language confirmation before execution.
More coming soon
More Projects