David Pinkerton

Systems thinking applied to servers, sats, and sets.

Building an AI Agent on White Noise with marmot-cli

I run an AI familiar called Klaw — spirit of a rooster, built on a friend’s VPS, and until recently only reachable via Telegram. Telegram works. It’s user-friendly. But I’ve never been fully comfortable with it. Telegram messages aren’t end-to-end encrypted by default. Group chats are never encrypted. Metadata is visible to Telegram’s servers. For an AI agent that I want to trust with personal context and semantic memory, that’s not ideal. ...

March 15, 2026 · 6 min

You Don't Need a VPN App

Your Linux machine already has everything it needs to run a VPN — no app required. WireGuard is built into the kernel, and setup takes five minutes.

March 11, 2026 · 6 min

Don't snap install Bitcoin Core

I asked Claude Code to fix a broken systemd service for Bitcoin Core. It migrated me from the snap to a tarball install, then ran snap remove bitcoin-core --purge — which deleted 750 GB of blockchain data that was still stored under ~/snap/. Nothing was permanently lost, but the blockchain has to be downloaded and validated again from scratch. My Lightning node is offline for a few days while that happens. ...

March 9, 2026 · 5 min

A Guide for SMSF Auditors: How to Verify Bitcoin Holdings Without Being a Cryptographer

This is the fifth and final post in a series about SMSF Bitcoin audit evidence. The first post covered what auditors need to verify. The second compared evidence standards. The third covered the regulatory pressure making this urgent. The fourth explained why auditors need the wallet descriptor. You’ve received a CertainKey report in an audit file. Maybe the trustee sent it unprompted. Maybe their accountant attached it. Either way, you’re looking at a document full of terms like “wallet descriptor,” “block height,” and “BIP-322 message signature” — and you need to decide whether it’s sufficient evidence. ...

March 8, 2026 · 9 min

Talk Into Your Phone, Get a Blog Post: Building a Voice-to-Post Pipeline

A self-hosted pipeline that turns Telegram voice messages into draft blog posts — Whisper for transcription, Claude for writing, GitHub for commits, all wired together in n8n.

March 8, 2026 · 7 min

The IPTV Setting That Has Nothing to Do With My TV

If you’ve just spent an hour and a half on the phone with TPG support trying to get a new router working on HFC broadband, and nobody has yet mentioned the IPTV setting — this post is for you. How We Got Here Our previous router, the VX220-G2v TPG supplied when we moved to HFC, had developed an annoying habit of dropping WiFi to certain devices a few times a week. Not catastrophic, just the kind of persistent low-grade friction that eventually tips you into replacing the hardware. So I picked up a TP-Link AX4200. ...

March 7, 2026 · 3 min

Multisig for Your SMSF — How to Prove Multiple Key Holders Control the Fund

This is the fourth post in a series about SMSF Bitcoin audit evidence. The first post covered what auditors need to verify. The second post compared evidence standards. The third post covered the regulatory pressure making all of this urgent. This post covers multisig — why it’s best practice for SMSF custody, and why it creates a new audit evidence challenge. If you’re holding Bitcoin in your SMSF with a single key, you have a single point of failure. One lost seed phrase, one compromised device, and the fund’s assets are gone. No insurance, no recovery, no phone number to call. ...

March 6, 2026 · 6 min

I Installed 39 Custom Agents and Removed Them All

Early in my time with Claude Code, before I had any real sense of how I’d use it day to day, I found a repository of custom sub-agents called Contains Studio Agents. It promised 39 specialized agents — a backend architect, a TikTok strategist, a “whimsy injector,” a joker for dad jokes. The install instructions were simple: clone the repo, copy the files to ~/.claude/agents/, restart Claude Code. So I did. ...

March 5, 2026 · 4 min

Building a Self-Hosted Memory Layer for Claude Code

Most AI tools have some form of memory now — Claude Code has its CLAUDE.md files, ChatGPT remembers things between sessions, Cursor has rules files. But these memory systems are siloed to one tool, stored as flat text, and not searchable by meaning. You can’t query “what did I decide about authentication last month?” and get a useful answer. Your context doesn’t travel between tools, and there’s no structure beyond what you manually write. ...

March 4, 2026 · 8 min

Why Your SMSF Auditor Needs Your Wallet Descriptor

An SMSF auditor recently reviewed a CertainKey report — the standard version, which includes a cryptographic proof of holdings but withholds the wallet descriptor for privacy. Their response was instructive: Is this product audited? I doubt it. If it doesn’t have the equivalent of a GS007 audit report then GS009 says, I cannot rely on it alone without a Part A qualification or sourcing additional evidence. If I can independently verify the holding balances using information that is either publicly available or can be obtained from the blockchain, which appears to be possible based on this report, then I should be able to rely on that. ...

March 3, 2026 · 7 min