ianlan.dev
Local-first developer tools.
Software that runs on infrastructure you control, keeps credentials under your control, and tells you plainly what it cannot do yet.
- Eleven projects
- Every one self-hosted
- Every doc set says what it is not
The Packet family
Five projects sharing a prefix and a design sensibility — rather less code than that suggests. How they fit together →
PacketBench
alpha Source privateAn independent startup developing a proprietary, local-first desktop workbench. Terminals, agent conversations, parallel worktrees, SSH remotes and project memory — in one native app.
PacketCode
alphaA keyboard-first coding agent that lives in the terminal. One Go binary holding the conversation, tool execution, permission approvals, background agents and MCP connections — speaking to eleven built-in providers, plus any OpenAI-compatible endpoint, rather than binding you to one.
PacketAgent
alphaA self-hosted control plane for Workers — long-running jobs woken by a schedule, a webhook or an alert, that keep going after whatever created them has closed. Each run carries explicit permissions, a budget and an audit trail.
PacketChat
alpha Source privateA private multi-user AI workspace for a small team: chats, projects, prompt libraries, knowledge bases and agents, all against admin-managed provider keys on your own infrastructure. Nobody holds their own key.
PacketRelay
early Source privateAn opaque WebSocket router in Rust. One-to-one bridges, one-to-many broadcast and authenticated multi-member rooms, with transport and session limits described in the protocol guide.
Other tools
The same sensibility, without the shared prefix and without any shared code.
Nodehouse
alphaA self-hosted community BBS reached by Telnet or a browser terminal. Both transports drive the same multi-node session engine for messages, mail, chat, files, administration and door games.
Syndicate
early Source privateA local-first control plane for AI coding agents. It launches a coding-agent CLI you already installed, gives each writable task its own locked Git worktree, records structured task events and supervises durable terminal sessions. Terminal replay is bounded and can disclose gaps. The listener binds to loopback and refuses any other address.
Sugar
alpha Source privateOne OpenAI-compatible endpoint in front of the several model providers a small team already pays for, deciding per request which family and which supplier serves it. A single Node process over a single SQLite file.
demarc
alpha Source privateA self-hosted AI phone receptionist for numbers bought from Telnyx. It transcribes the caller, asks a language model what to say, and streams the reply back as speech down the same socket — plus SMS and a dashboard with an attached CRM.
Blackbox AI
alpha Source privateA civic observatory and research workbench for Ridgeport, a persistent fictional world whose residents, institutions and ambient systems continue while the service runs. Observation is read-only by default; research is something you enter deliberately.
Midnight
MVP acceptance Source publicAn open-source platform-as-a-service control plane for one trusted Linux VM: deploy an app, route it, and keep it running, with deployment records, a hash-chained audit ledger and an embedded agent that can deploy, roll back and diagnose failures.