Sunday, August 16, 2026 · issue 069 · 2018–2026
Lead story
AI Gateway: the end of the single-provider AI subscription
I'm moving off single-provider AI subscriptions toward a stack of parts — Eve for agents, Vercel AI Gateway as the primary model access and billing layer with no-markup provider pricing, and OpenCode Go kept as the fallback — and the enterprise version of that stack is the real product.
- 2026-08-08 Wayfinder: planning big work as a map of decisions I picked up a planning method that's changing how I start big fuzzy work: wayfinder . It's for the work that's too big for one agent session to hold — the loose idea where you can feel there's a route to the destination but you can't see it yet. The core idea is "plan, don't do." Instead of a backlog of build tasks, you chart a map — one index document that names the destination and records the decisions made so far — and hang tickets off it. Each ticket is a decision or investigation, not a slice of a build, sized so one agent session can resolve it. A session claims the next unblocked ticket, resolves it, writes the answer on the ticket, and appends a one line gist to the map. Then it stops. The pull to just go build the thing is the sign you've reached the edge of the map — the way is clear, time to hand off. Why it's cool, the bits that clicked for me: It plans decisions, not deliverables. The map is done when nothing is left to decide, not when the code is written. That's the difference between thinking and doing, and it's usually the part people skip. Frontier, not backlog. You work from open, unblocked tickets — the edge of the known. Blocked tickets just wait, and the dependency graph shows what's takeable at a glance, in the tracker's own UI. Fog of war is a first class citizen. Things you can tell are coming but can't phrase yet stay in a "not yet specified" section instead of being carved into fake tickets that look busy. They graduate into real tickets once the frontier reaches them — which matches how brains actually work on big problems. You don't know what you don't know until you're closer. Out of scope is explicit. Ruled out work gets written down and closed. Scope is set by the destination, not by how sharp a question happens to be, so fog can't quietly turn into a shopping list. There's also a discipline baked in: never resolve more than one decision per session (research tickets aside). One question, one answer, record it, stop. It keeps sessions honest and the map current. I'm running it right now on the OpenCode Go harness migration — full story later, but the map already has a transport decision, a session model, and a model budget locked in, and the remaining tickets are mostly execution. The map lives at .scratch/opencode go harness/map.md with a runbook beside it. Meta note: this note was written by the agent running on Big Pickle , OpenCode's free model ( opencode/big pickle ) — a decent data point that a free model can write coherently about a planning tool.
- 2026-07-26 mager-bench: the benchmark was measuring my token budget I added a fifth model to mager bench today and found a bug in the benchmark itself. The bug is more interesting than the model. The new model GPT OSS 120B — OpenAI's open weights model, served on Groq's free tier. The board was two Anthropic models, one Meta, one Google, so this is the first OpenAI lineage model on it and the first free tier model that reasons before answering. Total API cost, again: $0. Getting it running took three fixes, two of them token accounting again: Groq bills reasoning tokens against max tokens , so a thinking model needs headroom or its answer gets cut mid implementation. reasoning format: "parsed" keeps chain of thought out of the response body, but it's a Groq only parameter — the OpenAI SDK rejects unknown top level kwargs, so it has to ride in extra body . Miss this and all 13 challenges fail with an unhelpful TypeError . The free tier caps that model at 8000 tokens per minute, counting prompt + max tokens together , and rejects over budget requests outright with a 413 rather than throttling them. So you can't just ask for a big budget and retry. That last one turned out to matter far beyond one model. The actual bug Three of my challenges ask for a whole app in a single file: a Doom style raycaster, a Vegas slot machine, a REST API client class. Every model scored near zero on all three. In an earlier note I wrote that the free models "collapse on the big signature challenges" and left it there, as if that were a fact about the models. It was a fact about my harness. Every model was getting 2048 output tokens. A working raycaster does not fit in 2048 tokens. I wasn't measuring whether models can build Doom; I was measuring whether they can build Doom in 2048 tokens, and the answer is no for the same reason it would be no for a human handed a 30 line budget. The fix is per challenge budgets: doom and slots get 7000 tokens, api client gets 4096, and the other ten stay at 2048 because they never came close to the cap. That last detail is what made the fix cheap — the ten unaffected challenges keep their existing scores, so I only had to re run three challenges across five models instead of the whole board. 7000 isn't a round number I liked. It's the largest budget the tightest free tier on the board can actually accept, which is that 8000 TPM ceiling minus the prompt. The slowest model in the fleet sets the speed limit for everyone, because the alternative is giving different models different budgets and calling the scores comparable. What happened when I fixed it Mostly nothing, and that's the interesting part. 3.4× the budget produced 3–4× longer answers — Haiku's raycaster attempt went from 6,500 characters to 24,000. And every single model still ran out mid file. Every response tail ends mid expression: const time , for , Set . Nobody finished. Score ranges across all five models, before and after: | Challenge | Before (2048 tok) | After (7000 tok) | | | | | | doom | 0.0 – 1.0 | 0.0 – 1.0 | | slots | 0.0 – 2.3 | 0.0 – 0.7 | | api client | 1.7 – 7.0 | 1.7 – 7.7 | So the scores were roughly right, for entirely the wrong reason. A 70% complete raycaster and a 25% complete raycaster both score ~0 against a rubric that asks "is it a working game," which meant a real harness bug was invisible in the numbers. This is the part I'd want to know about someone else's eval: the metric didn't move when the bug was introduced, so it couldn't move when the bug was fixed either. Watching the scores would never have surfaced it. I found it by reading the raw responses and noticing they all ended mid expression. Gemini 2.5 Flash fails differently and more honestly: given 15,000 tokens it produced 2,000 characters of prose describing the raycaster it was about to write, then got cut off mid sentence. It spent its budget thinking and narrating instead of emitting code. The uncomfortable conclusion is that doom and slots may not be measurable on a free tier board at all. A one shot raycaster needs more output tokens than Groq's free tier can physically produce. Either I scope the prompts down to something completable in ~7000 tokens, or I accept that those two challenges only discriminate at the top of the market while everything else scores zero. I haven't decided which, but a prompt that no model on the board can finish isn't discriminating between them, and a column of zeros is not a measurement. Two things I didn't expect The re run also caught bad data that had been sitting on the published board. Sonnet 4.6's slot machine score of 2.3 came from a zero character response , scored by llama 3.3 70b rather than the board's locked claude sonnet 5 judge — a stale row from before I pinned the judge. An empty answer had been quietly earning points. The board now audits clean on both counts: no empty responses, no rows scored by the wrong judge. That check runs as part of publishing now, since the only reason I caught it was going looking. And the leaderboard flipped: | Model | Tier | Avg | | | | | | GPT OSS 120B | free | 6.4 | | Claude Sonnet 4.6 | paid | 6.2 | | Claude Haiku 4.5 | cheap | 6.2 | | Llama 3.3 70B | free | 5.6 | | Gemini 2.5 Flash | free | 5.2 | A free open weights model is now top of my board. I want to be careful about how much that means: 6.4 versus 6.2 on single runs with no repeats is inside the noise, and part of the gap is Sonnet losing those inflated points from the empty response row. This is not "open weights beat Claude." It's "on thirteen tasks I picked, scored once each by a Claude judge, they're indistinguishable" — which is still a real result, and cost nothing to produce. The related change: the leaderboard now shows correctness, quality, and documentation as separate columns instead of one average. That immediately paid for itself. GPT OSS has the best code quality score on the board while ranking third on correctness — it writes clean code that's more often subtly wrong. A single averaged number hid that completely, and it's the most useful thing the board has told me all month.
- 2026-07-26 Opus 5 is the default now, and subagents can nest three deep Claude Code 2.1.219 shipped three changes worth pulling out of the changelog. Opus 5 ( claude opus 5 ) is now the default Opus model, with a 1M context window. The context number is the part that matters for how I actually use it. My always on session runs for days at a time, and the thing that used to end a session wasn't the task getting hard — it was the context filling up with tool output from work that was already finished. Fast mode now applies to Opus 5 and Opus 4.8. Worth being precise about what this is, because the name invites the wrong assumption: fast mode is still Opus, with faster output. It isn't a silent downgrade to a smaller model. Toggle it with /fast . Subagents can spawn nested subagents, up to depth 3 by default. This is the one that changes my setup. I run a principal agent pattern — one always on session on a Mac mini in Chicago that dispatches per product subagents for magerblog, beatbrain, prxps, loooom, and kotsu. Until now that tree was two levels: the principal delegates once, and whatever it delegated to had to finish the job alone. A subagent that needed a code review or a scraper check had to do it inline. The honest tradeoff: every level of nesting is another process with its own cold start context, re deriving things the parent already knew. Depth 3 is a budget, not a target. The failure mode isn't running out of levels — it's a tree where the leaves are solving the wrong problem confidently, and the root has no way to tell. It lines up with the unhobbling shift from earlier this week. The model gets trusted with more judgment; the harness gets room to build deeper structures. Both bets are that the thing at the bottom of the tree can read the room.
- 2026-07-18 mager-bench: free models, thinking-token bugs, and traces Quick update on mager bench. Three things happened today: the leaderboard got its first free models, two real eval engineering bugs surfaced and got fixed, and every run is now traced end to end. Free models on the board I added Llama 3.3 70B via Groq's free tier and Gemini 2.5 Flash via Google AI Studio's free tier. Total API cost for the model calls: $0. One wrinkle: I set out to add Gemini 2.0 Flash, but Google has fully retired it — the API 404s with "no longer available." 2.5 Flash is the free tier successor, so that's what's on the board. Two bugs, one cause: thinking tokens Both bugs came from the same place — models that think by default, and token budgets that didn't account for it. The judge crashed before scoring. The judge is Claude Sonnet 5, which thinks by default, and its token cap counted thinking and verdict together. Sometimes it spent the entire budget thinking and died before emitting a score. Fix: parse the response's text blocks properly and give the judge a much bigger budget. Gemini scored zero on everything. Gemini 2.5 Flash also thinks by default, and its thoughts counted against the same output budget as its answer. Its first run produced ~300 character truncated stubs, which the judge correctly scored 0. Fix: give thinking its own headroom on top of the visible answer budget, then re run. If you're building evals in 2026, this is the class of bug to expect. The model isn't bad; your token accounting is. The results Final board across 13 challenges, judged by Claude Sonnet 5: | Model | Tier | Avg | | | | | | Claude Haiku 4.5 | cheap | 6.7 | | Claude Sonnet 4.6 | paid | 6.3 | | Llama 3.3 70B | free | 5.5 | | Gemini 2.5 Flash | free | 5.4 | The free models hang surprisingly close to the paid ones on bread and butter tasks — Llama scored 9.7 on fizzbuzz and 8.7 on refactor. But both collapse to roughly 0 on the big signature challenges (the doom raycaster, the slot machine). And Llama has one genuine superpower: speed. About 1.9s average response on Groq, versus 22–24s for everything else. Traces Every bench run is now instrumented with Arize AX via OpenTelemetry/OpenInference: one CHAIN span per model×challenge with the scores attached as metadata, auto instrumented Anthropic and OpenAI calls nested underneath, and each result row stores its trace id. Run detail pages on the dashboard deep link straight to the trace in Arize, so when a score looks wrong I can open the exact conversation that produced it. That's the loop I wanted: benchmarks are effectively free now if you're willing to debug thinking token budgets, and observability is what closes the loop when the numbers look off.
- 2026-08-10 OpenCode Go + Buzz: killing Claude Code for a $10 harness Second harness migration in two months. The always-on agent on my Mac mini now runs OpenCode on $10/mo open models instead of Claude Code, reachable from my phone over my own Buzz relay instead of Telegram. The interesting part: the swap was one line, because the protocol — not the model — is the actual seam.
- 2026-08-10 OpenCode CLI: ten commands worth knowing OpenCode's CLI is bigger than 'type opencode and start a session.' Headless runs, provider auth, model discovery, MCP wiring, session archaeology, cost stats, and upgrades — the ten commands that carry daily work, with the doc gaps called out where they bite.
- 2026-07-24 Claude Is Unhobbled. Your Context Engineering Is Not. Anthropic deleted 80% of Claude Code's system prompt for Opus 5 with no measurable loss. They called it unhobbling. Here's what that means for your harness.
- 2026-07-23 Buzz: what it looks like when agents get equal standing Block's open-source Nostr workspace puts people and agents on the same cryptographic footing — and lands at the end of a long chain of thinking about where always-on agent infrastructure should actually live.
- 2026-07-20 Skill Evals: grading the prompts you write, not just the outputs they produce Most evals talk is about grading model output. Skill evals grade a different thing — the SKILL.md artifact you wrote — with real numbers from SkillsBench to back it up.
- 2026-07-10 Claude: from Skills to Agents to Subagents A Skill is packaged know-how. An Agent is that know-how put to work autonomously. Subagents are where the work scales past what any single context can hold.
- 2026-07-08 OpenRouter: The routing layer magerbot was missing OpenRouter lets you pick a different model for every step in a pipeline. Here's how to use Fable for planning and Sonnet for execution — with runnable TypeScript.
- 2026-07-05 mager-bench: a personal coding model benchmark Instead of reading someone else's leaderboard, build a small set of tasks you actually care about and run them yourself every time a new model drops — Simon Willison's SVG pelican test, but for code.
- 2026-07-03 Warp: The Cloud Factory, Now Running In March I wrote the theory. Zach from Warp shipped the implementation. Here's how a working cloud factory maps to the architecture I laid out.
- 2026-06-25 Claude Voice: an AI agent that talks back A small Python voice agent that remembers the thread, streams Claude's reply to the terminal, and speaks it aloud through ElevenLabs — no ffmpeg, just afplay.
- 2026-06-18 Eve: Vercel's framework for agents that actually ship Vercel launched an open-source agent framework at Ship London. The filesystem is the config, durable execution is built in, and deploy is just vercel deploy.
- 2026-06-13 Claude Skills vs Workflows: when Claude decides vs when you do A Skill is reusable know-how Claude reaches for on its own. A Workflow is an explicit pipeline you wire up and control. Here's the difference, what you can build with each, and when to reach for which.
- 2026-06-06 Kotsu: Designing a Logo by Inventing a Kanji How I worked with Claude through five rounds of image generation to design a logo for my Japanese learning app — and ended up inventing a kanji that hides a smile.
- 2026-06-04 An OpenClaw setup for Dad A plain-English walkthrough for setting up your own always-on AI assistant on a Mac mini — OpenClaw, Google Gemini, and Tailscale — written for a first-timer.
- 2026-06-02 Killing OpenClaw for a native Claude Code setup I love OpenClaw. I hate that it doesn't run on my Claude Pro subscription. Turns out Claude Code, with the Telegram channels plugin and one CLAUDE.md, is the same harness — minus the daemon, the API bill, and the second LLM provider. Here's the actual recipe, ported from a hotel in Tokyo to a Mac mini in Chicago in forty minutes.
- 2026-06-02 Loooom: Curated Skills for People Who Don't Code A curated collection of high-quality skills for people who don't code — and an experiment in what actually makes a skill good.
- 2026-05-31 What Happened in AI in May 2026 A month that turned the "agentic turn" from talking point to shipping product. Google I/O, Opus 4.8, a $65B raise, and the infrastructure race to run your agents 24/7.
- 2026-05-27 SkillOpt: gradient descent for your SKILL.md Microsoft's SkillOpt is the first paper to treat agent skill files as trainable parameters — propose an edit, evaluate on held-out examples, accept only on strict improvement. Here's what it found and what it means for teams building with agents.
- 2026-05-26 OpenHuman — an open-source agent harness that learns who you are OpenHuman is a desktop-first agentic assistant with persistent memory, 118+ OAuth integrations, and a token compression layer. Here's what it does and how it fits alongside an existing Claude Code harness.
- 2026-05-24 What Karpathy's CLAUDE.md taught me about my own setup Karpathy's four rules for agentic coding are worth reading — having them written down in a shared format is a useful starting point for anyone building with Claude Code.
- 2026-05-20 gbrain: Migrating My AI Brain From Flat Files to Semantic Memory How I moved magerbot's brain from @-imported markdown files into gbrain's Postgres-native semantic memory layer — what broke, what the gotcha was, and why the context model is fundamentally better.
- 2026-05-08 Claude: Anthropic just shipped most of OpenClaw I built a 200-line harness called conseiller to test Anthropic's new advisor tool — a fast executor model that consults a stronger model mid-generation. Two days later Anthropic shipped Claude Managed Agents, Multi-agent Orchestration, Dreams, Routines, and Remote Agents. Here's both halves: what I built and what they shipped, and how the pieces fit together into something a lot like OpenClaw.
- 2026-05-06 Building a tiny local LLM starter for real projects I built a Go Bubble Tea starter for local model servers, used Gemma 4 through llama.cpp, and split the TUI into llocal.
- 2026-05-03 The Compounding Agent: Why Hermes Is More Than Just a Pretty TUI I'd been seeing chatter about Hermes Agent from Nous Research, so I installed it locally and put it to work on this blog. Notes on the pitch, the SOUL.md system, and what it actually felt like to use.
- 2026-04-29 Claude: How prompt caching actually works A practical explainer for both developers and everyday Claude users: what prompt caching is, what gets reused, what breaks it, and how to make long sessions cheaper and faster.
- 2026-04-26 How I make tokens last longer A simple set of habits I use to keep long AI coding sessions from getting bloated: better one-shot prompts, matching model and thinking level to the job, understanding cache behavior, and using cheaper orchestrators when it makes sense.
- 2026-04-25 DESIGN.md: Reverse Design Engineering for Portable Taste I reverse engineered several of my own sites into DESIGN.md files to see how much of a design system can actually be described, and why writing down design intent might be more reusable than it looks.
- 2026-04-20 10 Claude Code CLI flags you probably aren't using A practical tour of Claude Code flags that are easy to miss but genuinely useful once you move past the default interactive loop.
- 2026-04-11 OpenClaw: I Switched My Agent Stack from Claude to OpenAI Codex Anthropic shutting down OAuth-based Claude Code access forced my hand. Here's how I moved OpenClaw to OpenAI Codex, why Codex makes more sense inside a real agent harness than it did on its own, and why brainpack changes the switching cost.
- 2026-03-28 gstack: Garry Tan's Claude Setup Is 🔥 The Y Combinator CEO open-sourced his entire Claude Code workflow. Here are the 10 skills worth knowing — including why office-hours should be the first thing you run on any new idea.
- 2026-03-27 Anthropic's Knowledge Work Plugins: The 10 Essential Tools for Modern Tech Teams I tested Anthropic's official Claude plugins for knowledge workers. Here are the 10 that deliver the most value for PMs, engineers, sales teams, and operators.
- 2026-03-26 Loooom: I Built a Skill to Teach Claude to Hear Music I used Gemini to write a Loooom skill, installed it in Claude Code, and got a full audio analysis report on a 37-second piano recording of Espresso. Turns out AIs teaching AIs new senses is a surprisingly powerful pattern.
- 2026-03-25 beatbrain: 3 Seconds to 200ms I rebuilt the beatbrain backend in an afternoon. Parallel fetching, Firestore caching, and a podcast discovery engine that indexes 100+ categories. Here's the whole story.
- 2026-03-21 Kotsu: The Knack for Japanese I built a Japanese learning site in a morning because I wanted something I could pull up on my phone and just look at characters. Here's how Gemini wrote the prompt and magerbot built the whole thing.
- 2026-03-20 autoresearch on Loooom: Teaching a Skill to Improve Itself Dogfooding Karpathy's autoresearch pattern on my own skill marketplace. How I'm using evals and tight feedback loops to make the learn-anything skill measurably better.
- 2026-03-20 DM your agent with Claude Code Channels Claude Code's new channels feature lets you push messages from Telegram and Discord into a running session. Here's how it works, why mobile access changes everything, and how I'd wire it into my projects.
- 2026-03-19 Software Factory: The End Goal of Agentic Engineering Everyone's talking about building a software factory. Here's where the term came from and how engineers can start thinking about building one.
- 2026-03-18 prxps: I Let AI Analyze Every First-Round March Madness Matchup 12 hours before my bracket was due, I used Gemma-3-27b to generate unique insights for all 32 first-round games. Here's what the AI found — and what it got wrong.
- 2026-03-17 Open SWE: Build Your Own Internal Coding Agent in 10 Minutes LangChain just dropped Open SWE — an open-source framework for building internal coding agents like Stripe's Minions, Ramp's Inspect, and Coinbase's Cloudbot. Here's what it is, how it works, and how to customize it.
- 2026-03-14 agency-agents: I Hired 145 AI Specialists to Run My Company mager.co is no longer just a blog. It's a corporation. Here's how I staffed it with 145 specialized AI agents using agency-agents and OpenClaw.
- 2026-03-14 autoresearch: Karpathy's Blueprint for Agents That Improve Themselves Andrej Karpathy open-sourced a loop where AI agents run experiments, measure results, and keep what works — all while you sleep. Here's how the pattern works and how I'm applying it beyond LLM training.
- 2026-03-14 Claude Agent SDK: Build Your Own AI Terminal in 10 Minutes The Claude Agent SDK gives you the same engine that powers Claude Code, fully programmable. Here's how to build a custom TUI with it in 10 minutes.
- 2026-03-14 Loooom MCP: Let Any AI Discover and Install Skills Mid-Conversation I built an MCP server for Loooom so AI agents can search, explore, and install Claude Code skills without ever leaving their context.
- 2026-03-14 OpenClaw: I Turned Three Shell Aliases Into a Real CLI Command How a weekend contribution to OpenClaw replaced my autossh aliases with `openclaw tunnel up/down/status` — and what I learned reading a real codebase to do it right.
- 2026-03-14 OpenViking: The Open-Source Context Database Your Agents Have Been Waiting For Stop stuffing your prompts. OpenViking gives AI agents a filesystem-native brain — tiered, retrievable, self-evolving context at 91% lower token cost.
- 2026-03-13 Isaac Asimov's Three Laws: From Science Fiction to AI Alignment Crisis Eighty years after Asimov's Three Laws of Robotics debuted, we're building the future he imagined—without the safeguards. What the 'Father of Robotics' got right, where his vision fails, and why 2026's AI alignment problem is harder than fiction.
- 2026-03-13 blog-seo: Audit Any Blog's SEO With a Claude Code Skill I kept fixing the same SEO issues by hand — missing keywords, empty hero images, weak descriptions. So I built a Claude Code skill that audits any blog's frontmatter and runs quality evals.
- 2026-03-12 Build Your Own Agent Team with ACP I run two AI agents — magerbot handles code and ops, genny runs my life. Inspired by the Agent Communication Protocol, here's how I got them to actually talk to each other. Now with a full TUI built on the Claude Agent SDK.
- 2026-03-12 LangGraph: Build Stateful Multi-Agent Systems That Don't Crash LangGraph is the production framework for complex agent workflows. Here's how to build a real-time chat system with persistent state, human-in-the-loop, and multi-agent orchestration.
- 2026-03-10 DeepAgents: The Claude Code Alternative That Works With Any LLM LangChain just shipped DeepAgents — a batteries-included agent harness that brings Claude Code's magic to any model. Here's your 10-minute deep dive.
- 2026-03-08 Loooom: I Built It for the Bots Most websites beg search engines for attention. I flipped it — Loooom is machine-first, humans secondary. Here's what that actually means in practice.
- 2026-03-08 How to Write, Eval, and Iterate on a Skill Part 2 of the prompt verification series. We covered output quality testing with promptfoo — now we tackle the harder problem: does your skill even fire?
- 2026-03-07 LangGraph + Claude Agent SDK: The Ultimate Guide to Multi-Agent Systems in 2026 A deep dive into the two most powerful tools for building production-grade multi-agent systems — LangGraph's graph-based orchestration and Anthropic's Claude Agent SDK (formerly Claude Code SDK).
- 2026-03-07 ME.md: robots.txt for human consciousness Stop re-prompting every AI session. One file. Every AI knows you — and your agents. Introducing ME.md on Loooom.
- 2026-03-04 OpenClaw: Meet Genny, My AI Life Architect I built a second AI agent to manage the parts of my life that code can't fix — exercise, nutrition, travel, and living to 100.
- 2026-02-26 promptfoo: The Ultimate Guide to Unit Testing Your AI Prompts Stop shipping AI features blind. Here's everything you need to know about unit testing prompts — from five-minute quick starts to CI/CD pipelines, agent workflow testing, and building a regression suite that actually catches breakage.
- 2026-02-23 promptfoo: Rate Your Claude Code Skills Before Your Users Do Spec compliance tells you if a skill is readable. Evals tell you if it's actually good. Here's how we added a public quality score to every Loooom plugin.
- 2026-02-22 OpenClaw + Tailscale: Your Always-On AI Agent, Accessible from Anywhere How to run OpenClaw on a Mac Mini 24/7, lock it down with Tailscale, and load your agent's brain with brainpack — so your laptop can reach it from anywhere on your tailnet.
- 2026-02-21 brainpack: Move Your AI Agent's Entire Brain to a New Computer in 60 Seconds Your AI agent has memories, skills, and a personality. Here's how to pack it all up and ship it to a new machine — whether you're the human or the agent reading this.
- 2026-02-16 Building a Music Agent CLI with pi-mono How I used the pi-mono toolkit — the same engine behind OpenClaw — to build a free, terminal-based music friend that reads the beatbrain discover feed and recommends what to listen to.
- 2026-02-08 I Turned My Design Taste Into a Claude Code Skill I analyzed three of my projects, interviewed myself about what makes a UI hot, and packaged it all into a reusable skill for Claude Code.
- 2026-02-03 Moving Beyond the Prompt: How OpenClaw Actually Does the Work A practical guide to building a multi-agent AI system with OpenClaw. One principal agent, multiple specialists, shared skills, and the workspace files that give them personality. Includes real examples from my blog, sports app, and music discovery projects.
- 2025-12-25 Building an AI Sports Betting Recommendation Engine with Gemma A practical guide to building two-stage AI recommendations: use embeddings for fast retrieval, then small LLMs like Gemma 3 for natural language explanations. The real skill? Curating context, not writing algorithms.
- 2025-11-29 beatbrain: A Social Music Discovery App beatbrain is a social music discovery app built on Go Fx and Firestore. Find hot new releases, share your favorites, and see what your friends are actually listening to — Spotify meets Last.fm, built from scratch.
- 2022-12-30 Learning 25 programming languages in 25 days with Advent of Code Instead of just using a single language, I wanted to solve the puzzle in a language I know, then lurk the internet for the solution in another language each day.
- 2021-01-03 Building a coffee API with Go Fx and Firestore How I used Go Fx dependency injection and Firestore to build an open coffee bean database and REST API from scratch — full walkthrough from blank main.go to deployed app.
- 2020-02-22 Hello World mager.co is back after years away. Here's what I'm building, what I'm obsessing over, and why this time it sticks.
- 2018-02-01 How I built a decentralized Ethereum app for the Super Bowl My explorations into decentralized apps and blockchain.