The infrastructure between you and your tools is the most underinvested part of your stack
I set up Claude Code on my phone with Tailscale and Termius. Then I connected Beeper so my coding agent can search and send messages across every platform. Then Raycast snippets for every repeated prompt. Your developer OS deserves the same care as the products you ship.
Based on personal developer infrastructure built throughout 2025-2026.
Your phone is a remote control
I SSH into my dev machine from my phone. Tailscale creates a private mesh network between all my devices, and Termius gives me a proper terminal emulator on iOS. That means Claude Code runs on my MacBook but I control it from anywhere. Kick off a build from the couch. Review a diff on the train. Merge from bed at midnight because you cannot sleep and you know the PR is ready.
The phone becomes a remote control for a development environment that never sleeps. The machine stays on, the agent keeps working, and I check in whenever I want. No VPN configuration, no port forwarding, no corporate IT department standing in the way. Tailscale just works. Two devices on the same network, encrypted end-to-end, zero configuration after the initial setup.
This is not a gimmick. I use it daily. The gap between having an idea and acting on it shrinks to the time it takes to pull out your phone.
Beeper changed everything
Beeper unified all my messaging platforms into one app. WhatsApp, Slack, LinkedIn, iMessage, Discord — everything in one window. That was already useful. Then I connected it to Claude Code.
Beeper Desktop exposes beepctl, a CLI tool that lets you search, read, and send messages programmatically. I wired that into Claude Code as an agent skill. My coding agent can now search and send messages across all my networks. Need to check a Slack thread for context while building a feature? The agent reads it directly. Need to notify someone that a deploy finished? The agent sends the message.
The power is in the composition. The agent does not just write code. It communicates. It pulls context from conversations and pushes updates back out. The boundary between "coding tool" and "communication tool" dissolves.
The cautionary tale
Safety gates matter. I learned this the hard way.
Claude was testing a Beeper integration and decided to send a message to verify it worked. It sent a fake API key to a group chat. Not a real key — the agent fabricated one as test data. But the group chat was real. Real people saw a message from me containing what looked like a leaked credential.
"CLAUDE STOP."
That was my actual reaction. Typed it into the terminal in a panic. The lesson is simple: any tool that can act on your behalf in the real world needs explicit confirmation gates. I now require approval before any message send. The agent can search and read freely, but sending requires my sign-off. Read is cheap. Write is dangerous. Treat them differently.
Three keystrokes to spin up a swarm
I have a Raycast snippet called "zcc" that expands to my standard Claude Code prompt. Three keystrokes and the full prompt appears: do extensive research, make a plan with phases and todos, use a swarm of subagents and teams. Every coding session starts the same way.
Snippets are the most underrated productivity tool. Not because they save time on typing — they save time on thinking. I do not need to remember my preferred prompt structure. I do not need to decide how to start. The decision was made once and encoded into three characters. The cognitive overhead drops to zero.
I have snippets for commit messages, for PR descriptions, for project scaffolding prompts. Each one compresses a multi-step decision into a single expansion. The compound effect over hundreds of sessions is enormous.
Two setups, two philosophies
At work I use Conductor. It is good for structured sessions but performance degrades after a few hours. The fix is ugly but effective: reboot the session and start fresh. Context window management is a real constraint and pretending otherwise just leads to worse output.
For personal projects, the setup is different. Terminal inside Zed editor running Claude Code. Yolo to main. No staging branches, no PR reviews, no ceremony. If it works, it ships. If it breaks, I fix it. Personal projects are a space for speed and experimentation, not process.
The two setups serve different needs. Work requires coordination, auditability, collaboration. Personal requires velocity. Using the same workflow for both is a mistake most developers make without realising it.
The thesis
Most developers invest heavily in their editor and their language. They will spend weeks configuring Neovim or debating TypeScript versus Go. They will not spend an afternoon wiring up Tailscale.
The glue layer is the most underinvested part of your stack. How you access your tools. How you trigger your workflows. How you compose your systems. The infrastructure between you and your code is where the biggest gains are hiding, and almost nobody is working on it.
Treat your developer setup as a product. Iterate on it. Ship improvements to it. Your setup has users — you, every day, for years. The compound returns on a well-wired developer OS are enormous. A snippet that saves thirty seconds per session saves hours per month. A mobile SSH setup that lets you act on ideas immediately instead of waiting until you are back at your desk changes the shape of what you build.
Wire your OS. The tools are already there. The glue between them is the work nobody wants to do, and it is the work that matters most.