Attempting to rebuild Ramp's background agent system in a weekend (on a Mac VM)
Like many people, I was blown away by Ramp’s article on background agents. They use a setup where agents:
run on remote VMs (so you can close your laptop)
spawn on-demand before you finish typing your prompt (so you can try any idea quickly)
have access to all of Ramp’s tools (Sentry, Datadog)
can spawn sub-agents (in a new VM) and are multiplayer (other humans can view the agent’s work)
are multi-interface: Slack, web UI, voice
If you follow Steve Yegge’s (Gas Town’s author) classification, Ramp’s developers are at the final level of agent building:

Over the weekend, I attempted to rebuild Ramp’s system by wiring open-source tools. For this first version, I reduced the scope: no multiplayer, can’t spawn new VMs. But I added a twist: I wanted to test features in our iOS app, therefore I needed to run macOS.
Last night, I asked Claude to benchmark our iOS app’s build time. It researched optimizations, measured the impact of each option and gave me a shiny report. By the time I woke up I ended up with a magic flag that resulted in a +10% speedup.
The setup leverages Tart to manage the macOS VM, Cloudflare Tunnels to connect to services running inside the VM with no hassle, OpenCode for the agent and the beautiful OpenCode Portal to interact with it.
I also use the native Mac Screen Sharing app to connect to the UI. I’m not planning on relying on it much, but it’s very handy to debug issues.
A few gotchas: make sure you run your Mac VM on the instance’s local SSD (but be careful it’s ephemeral), AWS has a 24-hour minimum for Mac Instances (hence a ~$30 minimum charge), Cloudflare Tunnels will expose your agent web UI to the public internet if you’re not careful.
So what’s missing? To reach Ramp’s level we’re missing a few key elements: multiplayer, per-user accounts / isolation and spawning new VMs instantly. That last one might be tricky since Apple enforces the 24h billing rule.
This setup may seem a tad complex, but boy does it feel good to wake up after my agents waited for Xcode to build, not me.


