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