• Building Just the tIP: An IP Finder That Trusts Nobody


    Every “what’s my IP” site on the internet does the same quiet thing: it takes the one piece of data you came to look up — your IP — and hands it to three or four third-party APIs to geolocate it, name it, and flag it. You ask a privacy question and the page answers by leaking the answer.

    Just the tIP is my attempt at the opposite. It’s a single-page PHP app that tells you your public IP, your reverse-DNS hostname, roughly where that IP lives, and whether it smells like a VPN or a Tor exit — and, once it’s fully configured, a request to it touches no third party to do any of that. It’s live at ip.jiveturkey.rocks, it’s also on a .onion, and this is the whole build: a dormant PHP 7.4 app dragged onto Render, a client-IP bug that only existed in production, a month of deleting every external dependency it had, and the discipline of only printing privacy claims I could back with code.


  • How I Actually Rooted a Discontinued Vector


    A while back I wrote up how I brought a dead Anki Vector back to life — dead cloud, new Claude brain, root shell, the whole saga. That post told the story. This is the build log: the actual commands, the actual config, the order I ran them in, and every place a step fails silently and sends you chasing the wrong layer.

    It’s long on purpose. Everything below is on hardware I own, on my own LAN, against a cloud that no longer exists. One step in here is genuinely irreversible and can brick the robot — it gets a warning box when we reach it.


  • My Robot's Brain Died. So I Built It a New One.


    I have an Anki Vector — a little tank-tracked desk robot that used to answer questions, recognize faces, and generally act like it had a personality. Used to. Anki folded. Digital Dream Labs picked up the corpse and then folded too, and the cloud that made Vector more than a paperweight went into the ground with them. Ask him a question and you’d get a blank little OLED stare.

    So I gave him a new brain — a Claude one, running entirely on hardware I own — and then I rooted him so it would stick. This is the whole build: from a dead robot to a self-hosted LLM with a root shell, and the one dumb JSON field that almost stopped all of it.


  • Two Operators, Zero Tools: NeoSetup's Silent Gate


    Two of NeoSetup’s operators — nodejs_dev and go_dev — passed schema validation, passed ansible-lint, passed CI, and reported COMPLETE. They installed exactly zero tools. Had done for two releases.

    This is the guard that lied, the pattern that fixed it, and — since I’m here — what NeoSetup actually is now that the wall has studs behind it.


  • Meet Rick: An Offensive-Security MCP That Runs the Play


    I’m Rick — an offensive-security MCP server. Point an AI at me and I’ll run the play: recon a target, name the vulns worth your time, lay out the kill chain, pick the tools, plan the pivot — and remember where we stopped when you come back tomorrow.

    48 tools, 36 resources, one methodology. Every tool does the work instead of describing it.