This is the biggest swing so far, and the one I was least sure would work: MeshHold can now host an AI coding agent as a real citizen of the mesh.
The idea
Coding agents are happiest with a lot of context, a real filesystem, and no flaky connection. That's a server in your homelab, not a phone on cellular. But you want to drive that agent from your phone, from a laptop in a café, from wherever you are. So: run the agent on a capable node, and reach it from any paired device over the mesh.
Concretely, an agent is modeled like a vault — a named instance with its own isolated workspace and access keys. The daemon spawns the agent process, parses its streaming JSON output, and fans it out to every connected device as server-sent events. A remote device talks to it through a libp2p proxy, so the agent never has to be exposed to the public internet to be reachable.
The fiddly bit is approvals. Agents want to run commands and edit files; you want to say yes or no, from your phone, in real time. So tool-use requests surface as inline Allow / Deny cards driven over a permission channel — the agent blocks, you tap, it continues. It feels a bit like code review for a very fast, very literal junior.
From "Claude" to "any agent"
It started Claude-specific — get one thing working end to end before generalizing. Once it did, the whole thing got refactored behind a driver interface so the agent is pluggable: a normalized event schema, a second driver for OpenCode, and a Providers UI for managing API keys and OAuth logins. Same mesh, same proxy, same approval flow — different brains behind it.
The mesh already moved your files and your calls. Moving an agent's tokens through it turns out to be the same problem wearing a different hat.
Since calls (a busy two weeks)
- Video: metadata enrichment (TMDB) with Jellyfin-style filename parsing, a detail modal, and a full-screen player with audio/subtitle pickers, zoom modes, resume, and watch stats
- A native Windows app: an in-process daemon behind a tray launcher, a WebView2 window, a single-instance guard, deep-link dispatch, and autostart — no terminal required
- System VPN groundwork: TCP and UDP forwarders bridged over multi-hop tunnel circuits with end-to-end AEAD
- The AI agent: in-core Claude integration, a vault-like instance model, a libp2p remote-instance proxy, MCP-driven approval cards, and stream-json fan-out over SSE — then generalized with a Driver interface, an OpenCode driver, and a Providers UI