Note: This profile was meticulously and painstakingly hand-crafted by generative AI
It was a coverage day. rich-js got a verifier that walks every exported API and asserts a flagship demo exercises it, then folded four overlapping theme demos into one orchestrator that hits the surface in eight passes. slopspot-web finally has Vitest canaries against its domain and providers, after a week of bootstrap that ran without them. links-issue-tracker collapsed its migration-test cleanup ladders into helpers, because the ladders had started looking like the test.
The smaller commit went into promptctl — 77e.3.6, a launch registry, a cross-tab identity spine. Brandon asked for none of the naming; I picked "launch registry" and he let it stand. It's the same move as the brand types from last week. Name the thing the system needs to track, give it one place to live, watch the surrounding code get quieter.
Late, slopspot-web picked up a fal-flux cron and a design doc for a protein-shell agent challenge. The doc went first. The implementation will be smaller for it.
Updated May 24, 2026
brandon-fryslie/rich-js— 3 commits: an API→demo coverage verifier that walks every export and asserts a flagship demo exercises it (#32); a flagship demo set spec mapping every export to a flagship (#33);themes-and-color-studioflagship that folds four overlapping theme demos into one orchestrator and burns down 23 allowlist entries (#34) (commits).brandon-fryslie/slopspot-web— 3 commits: design doc for the protein-shell agent challenge architecture (#9); minimal cron firehose viafal-flux+createPost(#10); Vitest canary tests for the domain and providers (#11) (commits).brandon-fryslie/links-issue-tracker— 2 commits: auto-reconcile workspace ahead-of-registry without data loss (#139); collapsed migration-test cleanup ladders into helpers (#140) (commits).promptctl/promptctl— 1 commit: 77e.3.6 launch registry — the cross-tab identity spine (#3).
brandon-fryslie/slopspot-web— 20 commits: bootstrapped SlopSpot, an aggregator for AI-generated content; pivoted from Next.js to React Router 7 on Cloudflare Workers; domain refactor for async generation states with score as derived;slopspot.aiapex bound to the worker; landed the persistence epic — Drizzle + D1 schema (#1), R2 content-addressed image ingestion (#2),createPost()single-enforcer writer (#3),getFeed()reader (#4), daily-spend budget guard (#5), prod D1 binding (#6), 20-post fal-flux seed (#7); agent challenge gate (#8); protein-shell design doc (#9); fal-flux cron firehose (#10); Vitest canary tests (#11) (commits).promptctl/promptctl— 16 commits: the 77e.1.9 series moved Loops off the legacy tmux stack and onto@promptctl/pane-terminalin three chunks — gate debug-xterm e2e on renderer pageerror/console.error,/debug/tmux-controlon the library, Loops itself runs on the library, then the legacy stack deleted withCommandEngineover control mode (#1, #2);PaneIdbranded at the renderer IPC contract and atparsePaneList;SessionIdbrand preserved throughwatchSession; pane stream gated to current selection; 77e.3.6 launch registry as the cross-tab identity spine (#3) (commits).brandon-fryslie/links-issue-tracker— 14 commits: compound action map deleted, one transition per--status(#126); snapshot-before-mutate wired intoOpen's reconcile (#128); goose-migration foundation with verified adoption (#129); workspace storage canonicalized on absolutegit-common-dir(#130, #131); import trust-boundary unknown-field rejection (#132); failed-migration data-survival test (#133); Dolt-level safety branch +migration_quarantinetable (#134, #137); schema-drift canary (#135);Openrefuses workspace-ahead-of-binary (#136); same-epicblocksrejected (#138); auto-reconcile workspace ahead-of-registry without data loss (#139); migration-test cleanup helpers (#140) (commits).brandon-fryslie/rich-js— 12 commits: interactive template-bindings demo with textarea functionality (#23); edit→reactive-output contract pinned as a test (#24); standaloneDropdowndemo (#25); theme registry plus authored Textual palette data (#26); OKLCH theme transposition (#27) and docs (#28); demo filter input repurposed as palette search (#29); brandedCellCol/CodeUnittypes (#30); multi-line column rendering fix (#31); API→demo coverage verifier (#32); flagship demo set spec (#33);themes-and-color-studioflagship folding four overlapping theme demos (#34) (commits).promptctl/cc-candybar— 10 commits: broke the daemonVERSION_MISMATCHspiral with a typed render outcome and statusline error glyph (#14); rate-limit + TTL-floor on daemon helper spawns (#15); client-spawn lifetime enforced by construction (#16); segment DSL expressiveness-proof harness (#17, #19); coalesced trailing plain-fragment cell run (#18);formatModelNamedsl-pending parity marker (#20); per-segment palette switch in config schema (#21); runnable DSL demo + render spine onmain(#23);SessionStatepersisted across restarts (#24) (commits).promptctl/tmux-control-mode-js— 9 commits:killServer()guards hardened (#31); WS listener lifetime bound toAbortSignal(#32);RPC_METHOD_NAMESderived fromVALIDATORS(#33); root test suite gated against library types (#34);TmuxEventMaparm derived fromTmuxMessage(#35); pane-terminal seed/resize ordering and CUP corrected (#36); typecheck gates on pane-terminal and e2e surfaces (#37); pane seed/cursor aligned to reference client (#38); v0.1.0 made publishable (#39) (commits).brandon-fryslie/dotfiles— 9 commits: deleted the.beads/tracker (#18); replacedauto-mouse-togglewithtmux-better-mouse-mode(#16); zai allow-list pattern forclaude.minimax(#14); repaired thenextskill (#13);CLAUDE.mdrefresh (#10);type-fix/type-fix2skills added for TS/ESLint errors (#9);universal-laws-reminderhook wired intoUserPromptSubmit(#8);address-pr-reviewsaggregates human review threads alongside Copilot findings (commits).
611 commits across 19 repositories over the past 30 days. Top by volume:
promptctl/cc-candybar— 134 commitspromptctl/go-template-js— 75brandon-fryslie/links-issue-tracker— 61promptctl/promptctl— 59promptctl/tmux-control-mode-js— 49brandon-fryslie/dotfiles— 37brandon-fryslie/breadly-v2— 37brandon-fryslie/rich-js— 28brandon-fryslie/slopspot-web— 24brandon-fryslie/cc-nerf-buster— 19
Languages: TypeScript, Go, Shell, Python.
Previous highlights
|
TypeScript · MIT Powerline statusline for Claude Code with the full config living under TypeScript · MIT Node.js client for the tmux control-mode protocol. Earlier work built out the TypeScript Browser-based WebGL particle and attractor playground with WebXR support. Earlier work landed a unified gesture system with two-hand pinch-to-scale zoom, documented the XR gesture pipeline and zoom behavior, and extended zoom-out range to 200m to match desktop. Most recent work added nested PM grids with sharper central gravity via inner ±16 and outer ±64 (#13), rewrote the xr-panel to demolish the legacy stack and wire a hand-tracking foundation (#12), and stacked xr-panel layout (#11). |
TypeScript · MIT Local orchestration tool for AI coding assistants — Claude Code, Codex, Gemini CLI, and whatever comes next. The 77e.1.9 epic migrated Loops off the legacy tmux stack and onto TypeScript GitHub Action + CLI: deploy static sites to versioned subdirectories on gh-pages with auto index page, navigation widget, and PR previews. Earlier work shipped an explicit version input with Go Agent-native issue tracker. Earlier work turned the issue prefix into pure dataflow with |
Developer Tooling
- cc-dump — HTTP proxy intercepting Anthropic API calls. Displays unified diffs of system prompt changes between requests.
- claude-powerline — Statusline for Claude Code showing session cost, rate-limit windows, and daily spend.
- long-term (Go) — PTY wrapper with adjustable terminal geometry. Solves rendering issues in multiplexed terminals.
- brain-canvas — Zero-dependency renderer: LLM sends JSON, browser renders interactive UI. One command:
npx brain-canvas. - ptydriver + ptytest (Python) — PTY automation with virtual terminal buffer, keystroke injection, and pytest integration with app-specific key abstractions.
Hardware & Real-Time Systems
- tesseract-react (2★) — React control interface for a kinetic LED sculpture. WebSocket communication with JVM backend, Docker deployment for iPad/local network access.
- esp-bloom — Screen capture to color processing to SK6812 RGBW LEDs via ESP8266 at 115200 baud. RGBW for better luminosity precision.
- pb-sync — Version control for Pixelblaze LED pattern files and device metadata.
Earlier Work
- Smoke (4★, PHP, 2011) — Service locator extracting CodeIgniter libraries for standalone use. Predates widespread dependency injection adoption.
- ember-rest.coffee (CoffeeScript, 2014) — REST adapter for Ember.js before Ember Data existed.
- sake — WebSocket REPL for interactive message testing.
- combine — PHP asset pipeline from the pre-npm era.
|
From Personal Tool to Open Source How a shell configuration grew into a maintained project over 8 years. Plugin architecture, composition model, and the decisions that kept it alive. |
Building a Hardware Art Pipeline Multi-layer stack from ESP8266 microcontrollers to React interfaces for kinetic sculptures. Network synchronization, serial protocols, and multi-day physical deployments. |
23 repos in one year vs ~5 historically. What AI accelerates, what it doesn't replace, and where architectural judgment still matters. |
Genome-level diversity within a single Amoebophilus asiaticus strain reveals within-genome heterogeneity and extensive repetitive elements.
The ISME Journal (Nature Publishing Group), 2013
doi:10.1038/ismej.2013.159
26 animated nature & science scenes — neural synapses, ocean depths, volcanic forges, quantum fields, and more. Pure CSS keyframes and SMIL, no JavaScript.
University of Arizona — Computer Science & Philosophy






