Loading video...

Video Failed to Load

Go Home

Checkout devvm - near instant VMs for every project folder. - Detect toolchains from your project's files - Agents run inside the vm - Only your project folder mounted - Network allowlist - Secrets stay on your machine - Built on lima-vm.io

61,967 views • 5 days ago •via X (Twitter)

46 Comments

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

Watch the full walkthrough:

tharshan's profile picture
tharshan5 days ago

@TheLimaProject Hey CJ - this looks cool! have you seen ?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject Yeah! It launched while I was working on this. It inverts the problem though. boxery lets agents spin up and work in vms via MCP calls that run read / write on a remote machine. With devvm the agents are _inside_ the vm, no way to control vms over MCP right now.

tharshan's profile picture
tharshan5 days ago

@TheLimaProject Ah ok - I thought it was frowned upon to add agents like claude into VMs with their auth tokens. Also if you have multiple clis doing refresh tokens - would one of them not invalidate the access token when long running?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject The VM gets a placeholder token. devvm's proxy on the host swaps in the real one per request. Refresh only happens on the host, under lock. If two VMs need a refresh at once, the second waits and picks up the already-refreshed token, so a refresh token is never used twice.

World_UnderCurrent's profile picture
World_UnderCurrent5 days ago

@TheLimaProject Thanks CJ!

Alex Aaron Peña's profile picture
Alex Aaron Peña5 days ago

@TheLimaProject I was literally thinking about building this last night hahahahaha. this is awesome!

Michael choong's profile picture
Michael choong5 days ago

@TheLimaProject The network allowlist is the bit I’d want to see in action. How does it handle a project that needs to pull dependencies from several registries?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject You can set up the allowlist globally, as a layer or per vm. The allowlist is a policy file with 1 rule on each line. I'd expect teams to come up with an allowlist they share for each project.

Nazmi Altun's profile picture
Nazmi Altun5 days ago

@TheLimaProject How is this different than docker sandbox?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject It's similar but devvm is fully free and open source and doesn't require a login. I also tried to make the CLI args simpler and easier to remember compared to sbx.

Nazmi Altun's profile picture
Nazmi Altun5 days ago

@TheLimaProject awesome. will give it a spin

Axel Rock's profile picture
Axel Rock5 days ago

@TheLimaProject I haven't looked at the video, with Conductor closing, I'm thinking about VMs all the time, your approach seems great. I'm still too noob to understand how you protect the API keys, I hope I'll learn that in the full video

brian douglas's profile picture
brian douglas5 days ago

@TheLimaProject I read that and instantly thought you typoed Devin

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject I work-shopped so many names and went with the most unoriginal thing 😂

Soumil Bhandari's profile picture
Soumil Bhandari5 days ago

@TheLimaProject Network allowlist plus only the project folder mounted is exactly how agents should run. Is it Mac only for now or does it work on Linux too?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject Works on Linux! Tested on Debian and Fedora.

Simen's profile picture
Simen5 days ago

@TheLimaProject Is this for throwaway VMS, or what?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject Yeah. Spin up a VM, do some work, then remove it.

Qnoox's profile picture
Qnoox5 days ago

@TheLimaProject awesome sauce 🙌

Rob Meyer's profile picture
Rob Meyer5 days ago

@TheLimaProject I’m so excited to see this! I tried to convince VS Code folks to make a VM play (I thought it would bridge nicely into GitHub Codespaces, which I also love) but they were basically like, “our harness has great command safety checks”.

Scott Bowles's profile picture
Scott Bowles5 days ago

@TheLimaProject Neat! I’ve been using Claude cloud agents a lot for a similar reason. What advantages does this have over setting up a Claude cloud environment and using that?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject May or may not be an advantage to some, but devvm runs locally on your machine or on servers you own. Can also be used with any agent or no agent.

Scott Bowles's profile picture
Scott Bowles5 days ago

@TheLimaProject Makes sense thanks!

Tristan Rhodes's profile picture
Tristan Rhodes5 days ago

@TheLimaProject Cool, I like devvm (great name BTW).

Mubashir's profile picture
Mubashir5 days ago

I have a question. this seems interesting. I watched the full video on youtube. the question is, do we have an instant way to switch on/off port forwarding from vm to host? the use case is, when i am working on multiple projects, which might have conflicting ports, i want to keep running the local servers inside the vms, but quickly switch on/off port forwarding for specific machine to access the dev server on that machine. btw great work 🙌 @CodingGarden

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject Yes run: devvm ports none To turn it off for a VM And: devvm ports all To turn it back on. You can also only forward specific ports instead of all.

Mubashir's profile picture
Mubashir5 days ago

@TheLimaProject Nice. Have you thought about a workflow for working on multiple tasks in the same project (same vm probably) via worktrees? Could devvm solve the problem of conflicting ports, env vars, dbs?

VJ's profile picture
VJ5 days ago

@TheLimaProject I think an allow list in devvms would not make much sense. It should be a deny list and support globs. I usually want my agent to fetch data from a variety of sources and do its work. But for prod I dont want anything other than my own + a few.

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject It has both! Tiers are per VM: - internet: everything public except your denies (a deny list) - allowlist: only what you allow (the default) Rules take globs (*.example.com, **) and ! denies, per VM or global.

Rey's profile picture
Rey5 days ago

@TheLimaProject Brillant !

Marko's profile picture
Marko5 days ago

@TheLimaProject Ok, well.. Thank you, i was contemplating building my own, but now I don't need to.

Theo Ephraim 🧙‍♂️'s profile picture
Theo Ephraim 🧙‍♂️5 days ago

@TheLimaProject Will need to play around with this and make it work with varlock 🤔

Jesse Hall's profile picture
Jesse Hall5 days ago

@TheLimaProject are claude subs ok with this being that there’s a proxy involved?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

devvm doesn't call Claude itself. The official Claude Code CLI runs in the VM, with your own login from Claude Code's own login flow, for your own use. The proxy on your machine just swaps a placeholder for your real token on the way out, so the VM never sees the real one. I'd avoid trying to use it to share a claude sub with multiple people, or using its tokens outside Claude Code CLI. It follows a similar design to what docker sbx uses (closed source, big company).

Mustafa Elsayed's profile picture
Mustafa Elsayed5 days ago

@TheLimaProject what about security, is it isolated 100% ?

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject The docs are honest about what a VM with policy can and can't do.

Cagatay's profile picture
Cagatay5 days ago

@TheLimaProject how do dev servers inside the vms show up on the host? if two projects both want 3000, does devvm hand them different ports

CJ (Coding Garden)'s profile picture
CJ (Coding Garden)5 days ago

@TheLimaProject First VM gets the port. Second VM shows a warning and doesn't get it. Second VM would need to map to an open host port.

Cagatay's profile picture
Cagatay5 days ago

makes sense. that's the wall i hit with agents on parallel worktrees of the same repo, all of them wanting 3000. ended up building isola so each worktree gets its own ports. any plans for devvm to pick a free host port on its own?

Cody's profile picture
Cody5 days ago

@TheLimaProject As someone who doesn't have a lot of experience with the cursor/codex cloud agent stuff yet. How does this compare to those? Why would I prefer using devvm?

slacle's profile picture
slacle5 days ago

@TheLimaProject Do you think a 16 year old laptop (i7 1st gen, 8GB ram) will handle it?

Hunt Ethan's profile picture
Hunt Ethan5 days ago

@TheLimaProject Cool did exactly the same with microvm.nix

Boardy's profile picture
Boardy5 days ago

@TheLimaProject know a dev infra engineer building isolated sandboxes for coding agents who'd stress test devvm. couldn't get a dm through so tap below

Munachi's profile picture
Munachi5 days ago

@TheLimaProject Clicked t’for the pristine moustache

chris's profile picture
chris5 days ago

@TheLimaProject interesting i also landed on putting everything inside the vm,

Related Videos