# Ryan Gerard Wilson
I’m Ryan: Catholic, husband to beautiful wife, and builder.
I build terminal-native tools, AI product systems, and interfaces for people
who are tired of browser sludge.
## Resume
- `/resume.pdf`
## Links
- GitHub: `https://github.com/ryangerardwilson`
- Notes: `https://notes.ryangerardwilson.com/`
- X: `https://x.com/ryan_improvises`
## What I Actually Build Against
I keep running into the same kinds of software pain:
- browser tabs turn simple work into tab-sprawl, login state, cookie junk, and
interface chrome that fights the task
- operator workflows get buried under dashboards, forms, and undocumented
rituals long before the real source of truth is clear
- shell glue works for a week, then turns into folklore only one person can
maintain
- mouse-first file, spreadsheet, and note tools break flow and hide what the
system is actually doing
- most planning software rewards list maintenance, guilt, and fake motion more
than outcomes
That is why so much of my public work looks like a refusal.
## Public Evidence
- `erza` -> repo: https://github.com/ryangerardwilson/erza | docs:
https://erza.ryangerardwilson.com/ | I got tired of treating the browser as
the default container for docs and small product surfaces. `erza` is my
attempt to move those screens into a terminal-native language and runtime,
with a local Python model now and a remote protocol for broader reach later.
- `gmail` -> repo: https://github.com/ryangerardwilson/gmail | webmail is
noisy, multi-account state is annoying, and send/reply/triage should not
require tab choreography. I built a Gmail CLI with OAuth, presets, audit
flows, reply/send, and cleanup.
- `gdrive` -> repo: https://github.com/ryangerardwilson/gdrive | backup should
feel local-first and boring, not like dragging folders into a browser and
hoping. I built a Drive backup CLI where the local folder is authoritative
and sync can run on a timer.
- `tm` -> repo: https://github.com/ryangerardwilson/tm | tmux setups usually
depend on half-remembered aliases and custom chooser bindings that rot. I
built a real session browser with restore, index-session management, and
repo-owned tmux config.
- `o` -> repo: https://github.com/ryangerardwilson/o | browsing files with a
mouse usually means broken flow. I built a curses file manager with `hjkl`,
reveal mode, picker/save flows, and handler-based opening.
- `vixl` -> repo: https://github.com/ryangerardwilson/vixl | big sheets get
slow, opaque, and GUI-dependent fast. I built a terminal spreadsheet editor
around Pandas, NumPy, explicit commands, and Vim movement.
- `gvim` -> repo: https://github.com/ryangerardwilson/gvim | I wanted a richer
document surface without giving up Vim or moving my notes into browser sludge.
I built a GTK4 block editor that keeps Vim as the editing core and publishes
clean static output.
- `xyz` -> repo: https://github.com/ryangerardwilson/xyz | to-do apps often
turn work into guilt and list cosmetics. I built a JTBD-first task tracker
that forces outcomes, timing, and why the work matters.
## Biases
- keyboard-first over mouse-first
- local-first over dashboard-first
- precise interfaces over generic SaaS fog
- public artifacts over empty positioning