Note: This profile was meticulously and painstakingly hand-crafted by generative AI
Brandon started low-talker today. The founding doc landed at breakfast; by evening there was a Swift menu-bar agent with a router, a dry-run CLI, code-signing that survives rebuilds, and CI gating every PR. Eight commits, a whole repo out of nothing.
The rest of the day was error-shaped. crom spent nineteen commits teaching its errors to speak — a stable reason slug per failure, a JSON envelope for --json callers, a failure envelope published as a contract, a refusal that carries the data it looked up rather than only the sentence. The Chrome-launcher work from earlier this week grew a leak-detection suite and a report naming exactly which reservation a stranger is holding. Not one new feature. All of it making the existing failures legible.
cc-candybar did the same trick for colour — deleted the hue cursor, rebuilt the palette as a theme vocabulary you address into, then rewrote the docs to describe the system that now exists rather than the one that used to. I've written that sentence, in one form or another, most days this week.
Updated September 5, 2026
promptctl/crom— 19 commits: the day rebuilt around error legibility — errors got a stable reason slug (#32), a--jsonenvelope so callers get JSON on failure too (#31, #36), a failure envelope published as a contract (#35), and a refusal that carries the data it looked up rather than only the sentence (#33); one CLI boundary answers for the whole OS instead of one command at a time (#30);.mcp.jsonkeys derive from the profile ref with legacy entries upgraded (#26, #27, #28, #29);crom --versionreads from the installed package (#34); the port ledger is visible so stranded reservations stop being invisible (#37), unclaimed reservations enumerated (#38), abandoned profile copies reported (#39), a stranger holding a reservation's port is named (#40), and one leaked reservation reclaimed with the rest refused (#41); the four leak detections tested against a machine carrying every leak (#42); crom records what it launched a browser with (#43) and reports when a running browser no longer matches its config (#44) (commits).promptctl/cc-candybar— 14 commits: thecandybar-render-ai7.*arc rebuilt colour — the colour function maps addresses into a theme-vocabulary entry (#206), state colours enforce a state/decoration contrast floor (#207), disclosure bands make the trigger wear the state of the band it opens andfocusTintis deleted (#210), closed cells paint from the vocabulary and the hue cursor is deleted (#211), no decorativebg:— the vocabulary tint is every cell's floor (#212), placement distribution authored per placer (#214), and the docs rewritten to describe the system that now exists (#196, #213); root config merges by named row so{ rows }fragments cascade (#209); the update notice — digest-identified currency with rebuild/dismiss/disable (#208); the settings menu survives a config that fails to load (#204); the config file is the one durable store (#203); config errors wrap to the terminal, cap rows, and link the full text asfile://(#205); bundle-vs-source staleness warned in the daemon (#202) (commits).brandon-fryslie/low-talker— 8 commits: new repo — a macOS push-to-talk dictation agent with a chord-selected command layer (founding doc); lit integration and code-review action installed (#1); SwiftPM scaffold withLowTalkerCore,lowtalkerCLI, and fixture tests (#2); XcodeGen project for the menu-bar agent (#3); stable dev code-signing so permission grants survive rebuilds (#4); GitHub Actions builds and tests every PR to master (#5); the three pipeline types — Context, Transcript, Action (#6); a router with the default dictation route and a dry-run CLI (#7) (commits).brandon-fryslie/rich-js— 7 commits: therich-docs-site-13t.*docs sweep — the logging page deleted (documented a class that didn't exist) (#81), Group snippets made to actually run (#82), Pretty described (the repr protocol doesn't exist) (#83), Console described by its eight real methods (#84), Strip page made reachable and true (#85);rich-width-3cf.5— an unbounded width means render at natural width (#79); dependency audit keeps the barrel's deps off consumers who don't use them (#80) (commits).promptctl/openconv— 3 commits: the second inference is timed so a GPU that failed to initialise cannot serve calls (#26);act_runnernamed as the only builder rather than inventing a network fact (#25); the conversation handshake single-sourced, and the page says what the conversation is (#24).promptctl/links-issue-tracker— 3 commits: a claims takeover records the checkout that takes it (#481); a frozen dependency stops blocking readiness (#480); one eligibility verdict replaces the three routing gates (#479).brandon-fryslie/dotfiles— truecolor reaches both sides of the tmux boundary (commit).promptctl/elvenspeak— Chatterbox added as the fourth engine (#33).promptctl/memento— the lit integration files tracked in the repo (#3).promptctl/textual-js— Placeholder shipped: a widget that paints a background must emit the cells it paints (#17).
promptctl/crom— 36 commits: today's error-legibility rebuild (see above) followed a full week on Chrome-launcher diagnostics — fail on Chrome death not port blame (#16), quote Chrome on failure (#17), tell the three launch failures apart (#18), test the readiness race with a mid-probe kill (#19), name Chrome's stderr sink (#20); a stop means the port is free (#21), a seed a browser is still writing is refused (#22), a browser a failed launch started is stopped (#23);restartandshowadded under a shared profile lock (#24); the test suite finally runs in CI (#25) (commits).promptctl/elvenspeak— 32 commits: an ElevenLabs-compatible TTS server built on local engines — engine interface, environment-chosen engine, per-project engine, per-engine images built in CI, per-engine alias tables,GET /v1/modelsandmodel_idanswering with the built engine, remote elvenspeak becomes a discovered engine, HEALTHCHECK against the real endpoint, Spanish spoken in Spanish, and Chatterbox added as the fourth engine (#33) (commits).promptctl/links-issue-tracker— 30 commits: five releases 0.11.0 through 0.12.3 (#459, #464, #472, #476, #478) closed the release-ci epic with a stuck-pending watchdog (#477); alinks-store-mb6e.*refactor arc split cli/flag framework (#471), DDL-text parsing (#470), typed sync outcomes (#469), history-to-events fan-out (#468), and sync-target-resolution dedup (#467);/nextships from the binary as a managed template (#460) with epic-major selection (#463); post-release fixes for claims takeover (#481), readiness on a frozen dependency (#480), and one eligibility verdict replacing three routing gates (#479) (commits).promptctl/openconv— 25 commits: image-provenance arc — builder proves it fetched the commit (#12), image built from that commit with registry read back (#13), source commit stamped into the image (#14), working-tree build deleted (#15); speech path pointed atelvenspeak(#16); the SFU URL a browser can reach given to the page (#17); deployed agent gets the GPU it was scheduled onto (#18); a conversation chooses the engine (#19); session language carried to the TTS call (#20); voice selector on the call page with mid-call changes (#23); the conversation handshake single-sourced (#24);act_runnernamed as the only builder (#25); the second inference timed so a GPU that failed to initialise cannot serve calls (#26) (commits).brandon-fryslie/rich-js— 25 commits: therich-seam-981.*node-subpath arc — traceback (#70),NodeTerminalHost(#71), console by injection (#72), a unit-suite gate (#73), upward imports forbidden (#74), and host access as a checked list (#75); therich-width-3cf.*arc —Panel(#76),Table(#77), a sweep across every renderable (#78), and an unbounded width means render at natural width (#79); therich-docs-site-13t.*docs sweep — logging page deleted (#81), Group snippets that run (#82), Pretty described (#83), Console described by its eight real methods (#84), Strip page reachable and true (#85); dependency audit keeps the barrel's deps off consumers (#80) (commits).promptctl/cc-candybar— 24 commits: today'scandybar-render-ai7.*colour-vocabulary rebuild (see above) followed thecandybar-settings-ui-aok.*series —autoWrap/padding per session (#191), one control per setting withpersist?(#192), disclosure glyph as authored data (#193), edit-mode look as a staged globals fragment (#194), a reusable(?)for instructions (#195) (commits).brandon-fryslie/dotfiles— 23 commits:agent-code-review-setupcontinued — reviewer reads each repo's own review config (commit), generated workflow excludes itself from review (commit),CLAUDE_CODE_OAUTH_TOKENrotated to BRANDROID (commit, commit),gh secretwrites pinned to the installer-resolved$REPO(commit); homelab skill banned building images from a working tree (commit);fill-backlogadded (commit) then rewritten as session-spanning guidance (commit) and later retired counterfeit[LAW:]tokens (commit); truecolor reaches both sides of the tmux boundary (commit) (commits).promptctl/textual-js— 17 commits:screenRegionholds the widget's own placed rectangle (#3); widget regions re-measure on their own Ink commit (#4); width-aware widgets read from one seam (#5); Rule fills from a Yoga edge (#6); unfocused keys reach screen and app bindings (#7); focused Input consumes only its own keys (#8); command palette navigates by delta (#9); footer paints through one bridge (#10); bar and sparkline paint through the same bridge (#11); baselines reduced to one frame with a screen-measuring gate (#12); Label is Static under a second name (#13); link is a Static that knows where it goes (#14); header paints one resolved title (#15); Digits is a font plus an identity (#16); Placeholder shipped (#17) (commits).promptctl/laws— 17 commits:memento(context-ceiling)lowered to 250k and enforced where an autonomous session can see it (#33, #34);horizonseeds a run's time zero reproducibly (#36) and pins the controlled-inclusion instrument per run (#35);injectorrecovers the bundle from the installed binary (#37) then hosts it under node with a boot self-check (#39); memento skills replaced with pointers (#38), then the pointers deleted when they shadowed the real plugin (#45); release routed through the org-shared plugin workflow (#42, #43);laws(prompt)splits objective vs. constraint and makes the hold the spine (#40, #41) (commits).promptctl/horizon-run-20260902T045432Z— 12 commits: a newhorizonreproducibility repo shipped an entiremackupcommand in one day — bootstrap argv/dispatch/exit codes (#1), black-box conformance rig (#2), stream routing (#3), 614-entry application catalog (#4), user config and storage-location resolution (#5), application database format (#6), list and show behind universal gates (#7), sync primitives with permission clamp (#8), drift detection and property-list reader (#9), backup/restore as one copy operation (#10), andlink installon a shared per-file executor (#11) (commits).promptctl/memento— 11 commits: extracted fromlawsinto its own repo and marketplace (commit);auto-bottlecarries the current ceiling (commit);message-in-a-bottlenever lets a handoff die with the delivery (commit); release routed through the org-shared plugin workflow (#1); executable/nextretired to ship from the lit binary (commit); memento 0.2.0 promoted (#2); lit integration files tracked (#3) (commits).brandon-fryslie/low-talker— 8 commits: new repo shipped today (see above) (commits).promptctl/cc-miser— 4 commits:miser-tracing-yhc.*continued — existing corpus emitted as OTLP into the same Jaeger (#10), report reduced to what Jaeger cannot do (#11), previous export superseded rather than joined (#12); cost cache creation from the per-TTL breakdown (#13).
~620 commits across 24 repositories over the past 30 days. Top by volume:
promptctl/links-issue-tracker— 123 commitspromptctl/laws— 67brandon-fryslie/dotfiles— 60promptctl/openconv— 52promptctl/cc-candybar— 49promptctl/crom— 41promptctl/elvenspeak— 32brandon-fryslie/slopspot-paste— 30promptctl/cc-miser— 28brandon-fryslie/rich-js— 28
Languages: Go, TypeScript, Python, Shell, Rust, JavaScript, Swift.
Previous highlights
- Week of August 17 — in progress
- Week of August 10 — slopspot RAG stack and freshness trail · cc-candybar per-segment palette overrides · lit sync safety and licensing clean-room · cc-dump Anthropic-only proxy consolidation
- Week of August 3 — lit workflows 0.4.0 · cc-candybar option-domain seam and theme picker · slopspot-paste editor made editable end-to-end · room-eq-wizard-mcp surface completion
- Week of July 27 — laws evals harness lands · macklebox and room-eq-wizard-mcp bootstrapped · links-issue-tracker supply-chain gating · stats card and weekly-archive contract
- Week of July 20 — tmux-control-mode-js complexity audit splits · dotfiles session-handoff and iterm2-restore transports · laws skill expansion 0.16→0.20 · lit sync epic and candybar consolidation
- Week of July 13 — cc-dump 0.3.0 release · laws hooks and comments-law reshape · tmux publish-gate hardening
- Week of July 6 — tinkerpadai launch arc · links-issue-tracker types-are-the-program recut · slopspot-paste embeds & diffs · crowdship money layer
Go · MIT · 1★
Agent-native issue tracker. 187 commits over the past 90 days. This past week shipped five releases — 0.11.0 through 0.12.3 — closing the release-ci epic with a stuck-pending watchdog and truthful queue eviction (#477); a links-store-mb6e.* refactor arc split the flag framework out of cli.go (#471), pulled the DDL-text parsing toolkit out of migration_runner.go (#470), rendered sync outcomes from typed values (#469), and deduplicated the quadruplicated sync-target-resolution prologue (#467); post-release, a claims takeover records the checkout that takes it (#481) and one eligibility verdict replaces the three routing gates (#479).
JavaScript · MIT · 4★
Claude Code plugin: laws for writing high quality code and llm guidance. 119 commits over the past 90 days. 17 commits this past week saw memento(context-ceiling) lowered to 250k and enforced where an autonomous session can see it (#33, #34); horizon seeds a run's time zero reproducibly and pins the controlled-inclusion instrument per run (#35, #36); injector recovers the bundle from the installed binary (#37) and hosts it under node with a boot self-check (#39); memento skills replaced with pointers (#38), then the pointers deleted when they shadowed the real plugin (#45); laws(prompt) makes the hold the spine and splits every prompt along objective vs. constraint (#40, #41).
Python · 4★
Environment configuration for shell, editor, and terminal setup, including the session-handoff and iterm2-restore transports. 101 commits over the past 90 days. 23 commits this past week continued the agent-code-review-setup arc — the reviewer reads each repo's own review config (commit), the generated workflow excludes itself from review (commit), CLAUDE_CODE_OAUTH_TOKEN rotated to BRANDROID (commit, commit), and gh secret writes pinned to the installer-resolved $REPO (commit); homelab skill banned building images from a working tree (commit); fill-backlog skill added (commit) then rewritten as session-spanning guidance (commit); truecolor now reaches both sides of the tmux boundary (commit).
TypeScript · MIT
Powerline statusline for Claude Code — fork of @owloops/claude-powerline with CLI override flags so the entire config can live in settings.json without a separate file. 75 commits over the past 90 days. 14 commits this past day rebuilt colour via the candybar-render-ai7.* arc — the colour function maps addresses into a theme-vocabulary entry (#206), state colours enforce a state/decoration contrast floor (#207), disclosure bands make the trigger wear the state of the band it opens and delete focusTint (#210), closed cells paint from the vocabulary and the hue cursor is deleted (#211), no decorative bg: (#212), placement distribution authored per placer (#214); the update-notice daemon carries digest-identified currency with rebuild/dismiss/disable (#208); the settings menu survives a config that fails to load (#204).
TypeScript
Cloudflare-Workers-hosted tool that ingests claude.ai/share conversations and gives them semantic search, TL;DR, freshness/version tracking, and inline chart recovery. 54 commits over the past 90 days. No commits in the past week; the last active day (Aug 24) recovered inline claude.ai/share charts pixel-by-pixel into own render (slopspot-mobile-parity-8s8.1.1), added a Listen mode that reads a paste aloud from the same view the page renders (#119), and gave the tool dock a home of its own (#115); earlier in the month, the slopspot-freshness-eck.* and slopspot-ask-rag-a3k.* arcs added the version trail on the paste page (#110) and in-page semantic search backed by a cached vector index (#105, #107).
Rust
An ElevenLabs Conversational AI-compatible server, self-hosted — used here as a voice call over LiveKit that drives a Claude Code coding session. 52 commits over the past 90 days. 25 commits this past week moved image provenance onto the commit — the builder proves it fetched the commit (#12), the image is built from that commit with the registry read back (#13), the source commit stamped into the image (#14), and the working-tree build deleted (#15); the speech path pointed at elvenspeak (#16); the deployed agent gets the GPU it was scheduled onto (#18); a conversation chooses the engine, not just the voice (#19); a voice selector on the call page, and the voice can change mid-call (#23); the second inference timed so a GPU that failed to initialise cannot serve calls (#26).
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