Skip to content
Blog

My Development Environment

How I built a focused dev setup using a homelab Ubuntu VM and Pi Agent.

3 min read
My Development Environment

When building software, you inevitably start rethinking your development environment.

For a long time, I tried configuring various local tools on my machines. But as the number of devices grew and new AI tools emerged daily, traditional local setups began showing clear limits.

Today, my core workflow centers around an Ubuntu VM on my homelab and herdr/pi (Pi Agent) as an agent harness. Here is a brief look at the problems I faced and how I solved them.

The Problems I Faced

I ran into two main friction points:

1. Windows vs. Mac: Fragmented Workflow

At my desk, I use a Windows desktop; on the go, I use a MacBook. Switching between them kept breaking my momentum:

  • Differing installation paths and shell script incompatibilities across OSes
  • Context lost whenever I left my desk with uncommitted local work
  • Heavy development packages and background services eating up laptop resources

2. Fast-Shifting AI Models and Tool Lock-in

I rely heavily on AI coding agents. Beyond Claude and OpenAI, capable models like DeepSeek, Qwen, and GLM release on a near-weekly basis.

The issue was that relying on vendor-specific tools (like Claude Code) forced me to overhaul my muscle memory and workflow every time I wanted to try a different model.

How I Solved It

To tackle these problems, I established two core pillars: a central dev server and an agent harness.

1. Homelab Ubuntu VM: Seamless Continuity Anywhere

I decoupled the development environment from physical devices and moved it to my homelab. My laptops and desktops simply act as SSH terminals.

  • Work Continuity: Whether stepping away from my desktop or opening a laptop in a café, connecting via SSH brings back the exact same open files and terminal state.
  • Unified Configuration: Toolchains and language runtimes are configured once on the server, benefiting all client machines.
  • Lightweight Clients: With heavy containers running on the server, local laptops stay cool and quiet with great battery life.

2. Pi Agent: Models Change, Tools Stay Constant

For AI coding, I chose herdr/pi (Pi Agent), an agent harness decoupled from any single model vendor.

Under a harness architecture, models don’t dictate the workflow; models become plug-and-play components.

  • Flexible Model Switching: Switch from frontier models for deep reasoning to cost-effective open-weight models for large codebase scans without altering the CLI workflow.
  • Powerful Extension System: One of Pi’s standout strengths is its flexible extension architecture. Whether inspecting homelab server health or managing project builds, I can build extensions, custom tools, and sub-agents to seamlessly weave my own workflow directly into the agent.

Summary

  • The Homelab VM provides a consistent development environment across different machines and locations.
  • The Pi Agent enables flexible model switching while keeping the familiar CLI workflow and custom tools intact.