Show HN: Davit, a Apple Containers UI

387 points
1/21/1970
3 days ago
by xinit

Comments


_doctor_love

My current power move in the age of AI: do nothing.

I had an idea like this and thought I could vibe code it, but then I figured someone else would care more and do it first. I was right!

This looks like a great app and I'm excited to try it out.

Free idea: I would like to be able to "jail" an agent inside a VM and send instructions to the harness from outside the VM to agent(s) installed inside. Ideally there is no Codex/Claude/etc. installed on the host.

More awesome: let me provision multiple user accounts inside the VM and restrict filesystem / network policy by user. Then I can have a dev agent, QA agent, etc. each with its own view of the work. That would be a powerful base layer for further automation.

Of course I should be able to provision various resources "attached" to the VM that agents can use on a permissioned basis; e.g., DB, queue, external volume, and so forth.

3 days ago

mkagenius

> Free idea: I would like to be able to "jail" an agent inside a VM and send instructions to the harness from outside the VM to agent(s) installed inside. Ideally there is no Codex/Claude/etc. installed on the host.

You can do exactly that with coderunner

https://GitHub.com/instavm/coderunner

3 days ago

_doctor_love

Nice! I will be sure to check it out. IMHO it's a good thing if there's a bit of competition.

2 days ago

topgrain2

> My current power move in the age of AI: do nothing.

This was also my strategy before AI. At some point in my late 20s or early 30s I all but completely stopped doing any development in my free time, because I was entirely over any fun I derived from coding per se (in truth, I'd never been that into it, I'd just been really bad at guessing what would or would not be worth spending time on) and, as they say, the "juice wasn't worth the squeeze" for almost anything that popped into my head that might be a nice program or script to have (like that xkcd chart about the payoff time for developing programs that save X minutes per week or whatever) or else it was something that wasn't necessary but might just be interesting or fun to have, but nowhere near worth the many hours it'd take to make it happen. If someone made what I wanted and released it, awesome! If not, oh well.

The big change with LLMs is now I can shit out little scripts and such in a few minutes and for pennies, maybe a couple dollars. I'm dragging old extremely-niche ideas out of mothballs because what would have been several weekends of work (most of these ideas would require lots of poking around unfamiliar APIs and documentation, not just immediately writing the thing I want) can now be done in a half-hour or less—or, at least, I can find out if something's going to be unworkable or too fiddly to screw with after all and should be completely and permanently abandoned, in minutes rather than hours.

2 days ago

mikemcquaid

Sandbox and separate user instead of VM but sandvault is good for this and does auto install (full disclosure: have made some PRs to it).

https://github.com/webcoyote/sandvault

2 days ago

rao-v

I threw something like this together w a simple browser front end, mostly because I like running mid to large open models but can’t trust them to not go insane. Will share at some point soon

3 days ago

_doctor_love

Look forward to seeing it!

2 days ago

RossBencina

> Free idea: ...

I have been thinking about this too. Is it not as simple as installing Claude in the VM and connecting via an SSH terminal, or if you want a GUI use VSCode with the Remote SSH extension, which will give you the file browser UI etc. Presumably you can extensions in the VSCode Claude/whatever chat extensions in the VM too.

3 days ago

Willamin

> as simple as installing Claude in the VM and connecting via an SSH terminal

I've done exactly this, and it works pretty well!

1. I setup a VM in UTM (but this could be any kind of containerization thing). I don't even bother with a non-root account in there (the agent has free rein to install packages, write files, etc). 2. I SSH into the container. 3. I install Claude or whatever there. 4. I setup git things in a way where I can push/pull to move code between the container and my host machine.

Upsides: the agent is isolated from the rest of my host system, only being able to read/write what I've explicitly handed to it. Downsides: the agent is isolated from the rest of my host system, so it's more limited in capability.

2 days ago

_doctor_love

UTM is undefeated for me, especially in combination with Vagrant. What I'm hoping for is a polished turn-key solution version of all this.

tart is also an option I like a lot, but it's macOS only.

2 days ago

simonw

This looks like a really solid app. I like that it's 17 MB and uses the ContainerAPIClient library directly.

28 commits in 3 days, 5,015 lines of Swift, every commit "Co-Authored-By: Claude Fable 5".

Also neat that it's signed/notarized. I installed it and it downloaded the necessary container platform stuff on first launch.

Suggestion: add a getting started tutorial to the site which suggests an image to try out and has screenshots (or a silent video) showing you how to get that image up and running and what you can do with it.

The create image dialog suggests "nginx:latest" but that's not a great starting demo.

3 days ago

thefourthchime

The AI-Maxing copy on the website kind of gave it away. Doesn't mean is not a great app though!

3 days ago

satvikpendem

The description of this submission that literally says "Mostly vibe-coded" didn't give it away?

3 days ago

Hamuko

You don't see the submission description when you open the link from the front page.

2 days ago

throwitaway222

I think we're past the point where agentic coding is a given now.

3 days ago

danpalmer

Coding yes, copywriting, design, identity, no. Using AI doesn't mean giving up on quality, unless you don't care about quality. Most of these issues come from folks who don't really care about quality and ship the first slop that comes out.

3 days ago

Klonoar

> Using AI doesn't mean giving up on quality

Look, I'm as anti-AI as the next guy but their homepage is good. They didn't compromise on quality.

Call a spade a spade.

3 days ago

tomgp

I think the issue is that the prose on the homepage gives off AI marketing BS "Everything you'd expect. Nothing you don't." "Native down to the pixels" etc. in an age where the web is stuffed full of low value llm generated content this is a strong negative signal for me (and i suspect others). No reflection on the app itself which I've yet to try but seems like a great idea

3 days ago

RossBencina

> Most of these issues come from folks who don't really care about quality and ship the first slop that comes out.

Brings to mind The Show's "ugly MySpace" episode: https://archive.org/details/zefrank-theshow-083

It would be nice if everyone prioritised, and was capable of, shipping polished products. But more likely the apps you're bemoaning come from folks who are not product designers. Even prior to genAI there were plenty of developers (myself included) who had patchy competence in some subset of {copywriting, documentation information architecture, visual design, identity, UI/UX, ...}. I know good developers for whom UI coherence is "not their problem," although they know well enough that it needs to be someone's problem. "Programmer art" is also a thing. I would argue that the non-coding parts of many open-source projects are what lets them down, and when it is good it is usually documentation that impresses me the most. But I think Ze Frank's view might be that, given the sudden drop in barriers to entry, it is amazing that everyone is having a go and trying to express themselves.

3 days ago

throwitaway222

Agreed

3 days ago

amelius

Can't someone vibe-code a MacOS that runs on Linux?

3 days ago

mmmlinux

Have at it.

2 days ago

xinit

Great suggestion. Coming up.

3 days ago

joka88xj

A tutorial with a slightly more realistic example would help a lot here. nginx:latest shows the plumbing works, but it doesn’t really show where Apple Containers feels different from Docker Desktop or OrbStack.

Something like a tiny app with a volume, port mapping, and a simple rebuild loop would make the value much easier to see.

3 days ago

joohwan

What stood out to me more than this particular project is the visible acceleration of a phenomenon many of us could foresee, especially over the last year or so: people can build a version of the same idea faster than ever.

After like 10 minutes of searching I found multiple similar swift projects (most of them are just a couple of weeks or months old):

https://github.com/tdeverx/contained-app https://github.com/nico81/iContainer https://github.com/wouterdebie/davit https://github.com/Augani/dory https://github.com/tofa84/berth https://github.com/erdaltoprak/ContainerUtility https://github.com/andrew-waters/orchard

There were more if you include ones with fewer GitHub stars, CLI-only, non-Swift etc. but you get the idea.

People will increasingly be able to build their own version of the software they want. As that happens the value of someone else's decreases. The era of hyper-personal software is coming.

2 days ago

jayd16

Would you say these are all of equivalent, top notch, quality? I can't say I know that for certain.

Used to be you could use website polish and a few other surface level things to gauge the amount of effort that went into these types of things. Now that is easily finished LLMs. In a similar way, one of the biggest impacts of kick-starter now that the smoke has cleared is the aggressive evolution and refinement of the 3 minute pitch video.

Whether that actually translates into well thought through implementations and road-maps, and real momentum, I can't say.

2 days ago

NSUserDefaults

Not on iOS unless you also pay annual membership to put it on the AppStore OR rebuild & reinstall the personal-account build every 30 or so days.

2 days ago

iAMkenough

I’ll just vibe code a tool that rebuilds and reinstalls every 30 or so days. :)

2 days ago

bbg2401

Other recent vibe-coded projects providing similar interfaces:

- https://github.com/tdeverx/contained-app

- https://github.com/tofa84/berth

3 days ago

bluejedi

and https://github.com/andrew-waters/orchard but without vibe coding

3 days ago

roger_

Hmm… how does one even pick between multiple vibe coded options?

I like to vet my options before committing to new software but who knows if the authors are gonna support these in a month? I don’t want to waste Fable tokens to fix bugs myself when they crop up.

3 days ago

esafak

Look at the tests, commit and issue activity, number of committers...

3 days ago

BergaDev

Ask fable to explore each project and pick the best one lmao

Vibes all the way down

3 days ago

computerdork

Funny!

3 days ago

kylemclaren

Ha! Looks like we built the same thing: https://container-ui.fly.dev/

Now I wish I hadn't burned all those tokens!

3 days ago

andrew-waters

Oh hi there - I just noticed you have a comparison to Orchard - that's me. Look slick we're all building the same thing ><

3 days ago

kylemclaren

Indeed, though slightly different implementations: I decided to lean on shelling out to the CLI

3 days ago

dllrr

I've been a fan of Orbstack for make 2 years or so. Worth the cost for me because it's so well integrated and fast and docker command compatible.

I'll give this a try though.

3 days ago

ttul

I’m guessing the OrbStack team will probably support MacOS native containers soon enough, with all their management goodness on top.

3 days ago

TimTheTinker

It appears macOS native containers runs a separate Linux VM per container.

OrbStack's claim to fame is that all containers run in a single Linux VM, with lots of optimizations on both sides of the VM boundary (including use of a sparse image file for disk storage, which saves a lot of space on the macOS side).

If you run more than 4-5 containers on macOS, the performance and resource usage savings of OrbStack really starts to add up quickly.

2 days ago

internet2000

Really nice. Worked perfectly downloading the runtime and running nginx:latest.

It's getting to the point that scrolling down on Github and seeing Claude as a contributor is a signal the app will be good (Native feeling, no Electron, etc)

3 days ago

ozarkerD

Man I wish Apple would add docker api compatibility to Apple containers

3 days ago

cpuguy83

This is focused on builds, so running either buildkitd or dockerd in an Apple containerization container. No port forwarding or host volume stuff (really its focused on running buildkit on mac) BUT complete integration with docker CLI and buildx.

https://github.com/cpuguy83/crucible

3 days ago

jaffa2

Yeah. I don't quite understand this. Can I use this instead of docker desktop, to run docker containers on my mac 'natively' ? Or this is completely separate from docker ?

2 days ago

hirvi74

I am not sure what you mean by "completely separate from docker." I have been using Container for some time now, and oddly enough, it was my first real exposure to using containers. I can say this much though:

1. I do not have docker anything installed anywhere on my mac. I run LLMs CLI tools out of containers with mounted directories. Absolutely zero issues in my workflow for me.

2. I can pull images from docker hub and run them with no issue, if that is what you want. x86 arch'ed containers will require Rosetta, so I only use AArch64 compatible containers.

3. Be warned, Container has some weird incompatibilities with macOS's mDNSResponder, so you might have to finagle things a bit if you need to run a VPN that uses port 53 while running a container via Container, for example.

2 days ago

jaffa2

My experience of docker is running docker-compose, which uses docker desktop on Windows . I can use apple containers instead of docker to achieve the same thing? it's sounds like it.

2 days ago

mfro

Yes, this is a separate runtime. Docker handles containerization differently with more overhead. OCI is a 'standard' way of constructing container images and both are compatible with OCI.

a day ago

reassess_blind

How does this compare to OrbStack? Do Apple Containers offer anything in the dev experience that I would notice? OrbStack’s implementation already feels lightning fast for my usage.

3 days ago

lelandfe

Unrelated. I noticed that the settings window (Cmd-,) text inputs all type from the right instead of the left like older macOS inputs (or web inputs[0])

Is that a thing macOS is moving to? I'm sure I've seen Apple use these too.

[0] https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...

3 days ago

xinit

Good catch, that was a bug; the value fields were trailing-aligned which makes SwiftUI insert like RTL. Fixed in 0.1.9.

2 days ago

linux2647

Yeah it’s an unfortunate SwiftUI thing

3 days ago

mark_l_watson

Nice, I like the functionality and that it is a tiny native SwiftUI app. I recently wrote a blog [1] on using Apple containers for agentic coding; I just updated it to mention Davit. I so much prefer using Apple containers to using Docker on my two home Macs for personal projects.

[1] https://open.substack.com/pub/marklwatson/p/running-opencode...

2 days ago

erdaltoprak

Posted my own take of that here without any traction a few days ago

It supports containers, machines, registries with a menu bar app if anyone is interested by it

https://news.ycombinator.com/item?id=48789503

https://github.com/erdaltoprak/ContainerUtility

3 days ago

neodymiumphish

contained-app includes a Files feature to allow in-container filesystem browsing. Is there any plan to implement this in Davit as well?

Looks like great work, will try it soon!

3 days ago

xinit

Great suggestion! I'll add this!

3 days ago

xinit

Added this in the latest release.

3 days ago

pjmlp

> No Electron, no web views, no background agents of its own.

Sweet, regardless of the AI help.

If anything even more so, no excuses for lazy Electron, with AI helping hand.

Kudos.

3 days ago

MoonWalk

I don't know a lot about containers. Would containers created for/with this also work in Docker?

Good name for this app, BTW.

3 days ago

natebc

It claims to be backed by (and require) apple/containers(1) which "consumes and produces OCI-compatible container images" so if all that is true .... yes!

1) https://github.com/apple/container

3 days ago

VerifiedReports

Why would someone downvote this perfectly relevant question?

Pathetic.

3 days ago

Groxx

Kinda interestingly: it zips to 17MB, but the binary looks to be 56MB (davit.app/contents/macos/davit). That seems like a surprising amount of compression for a binary - embedded assets maybe? Possibly this is normal for mac apps though?

3 days ago

Lalabadie

A lot of Mac apps compress like this. Not so long ago, it was pretty common to download a 3-400mb dmg file that decompresses to a 1.5gb app package, for example.

3 days ago

Groxx

A lot of the time that happened, when I checked it was because a lot of the assets were relatively uncompressed, so DMG-compression shrank them considerably. I haven't noticed the binaries themselves being this compressible.

But that's just "noticed", I definitely haven't paid much attention. And don't have a mac nowadays, so I can't go check my hard drive now.

3 days ago

Lalabadie

I'd lean the same way as you (just a hypothesis from me too). A .app on MacOS is just a special kind of directory, so the compression covers the normal file types inside of it.

Localization files compress well, compiled code compresses well, repeating assets (@1x, 2x, 3x) and the pair of binaries in a universal app (x86_64 + arm64) do too, etc.

Ah, and dmg compression is just LZFSE, zlib or bzip2, so pretty standard stuff as far as I understand it.

3 days ago

keremimo

Looks good, Apple Containers is neat except it is just another set of commands we gotta memorize.

I like it! I would like it even more if we could choose which terminal app the containers open in. Is that doable?

3 days ago

xinit

Doable and done; added in 0.1.9. Settings -> General lets you pick Terminal/iTerm2/Ghostty/WezTerm/kitty/Alacritty/Warp (whatever's installed).

2 days ago

ballislife30

Docker desktop is a memory hog. What's the memory usage of Davit?

3 days ago

xinit

With nothing running, the platform's background services idle at roughly 25 MB. Docker desktop starts a single VM to host all containers and will reserve memory to do so. Davit itself is about 25mb and then each container will use the memory up to what you allocate for it.

3 days ago

ballislife30

Thanks. This is amazing.

2 days ago

david_p

I will give this a try!

Docker desktop on mac does not work well (uses lots of resources) and my current alternative is OrbStack (very slick, uses far less resources, but freemium).

3 days ago

scosman

What's the best "run your coding agent in apple containers" setup folks have?

2 days ago

jon_adler

Looks nice. Great work. FYI, the gist link 404s under “Can I reach a container by name from my Mac?”.

3 days ago

nvahalik

I really want to use this but am stuck (right now) having to use Caddy's docker tags integration for name resolution.

3 days ago

dofm

Can you not use Avahi in the guest and get zeroconf?

Oh! Do you mean the issue is adding extra name resolution to a VM?

Have you tried this avahi alias trick?

https://gist.github.com/tomslominski/9d507acd4036952d65b2364...

Works like a charm, bit odd that you have a persistent avahi client process broadcasting per alias, but it's lightweight.

3 days ago

nvahalik

Interesting! I will look into this.

3 days ago

siquick

Very nice - would love to see the ability to open a Dockerfile directly in the UI to build/run it.

3 days ago

xinit

Shipped in 0.1.8; Images -> Build Image (context dir, tag, build args). It drives Apple's buildkit shim directly over vsock, no docker needed. brew upgrade davit or the in-app updater will get it.

2 days ago

siquick

amazing thanks

17 hours ago

xinit

Working on this..

3 days ago

mrbnprck

Looks great, does it also come with a menubar integration?

3 days ago

xinit

It does, doesn't it?

3 days ago

sails

Is this possibly a replacement for Orbstack?

3 days ago

oulipo2

How does it compare to something like OrbStack?

3 days ago

LoganDark

OrbStack has its own virtualization layer designed to simulate Docker. Containerization has different primitives even though it supports the same OCI images

3 days ago

oulipo2

Okay, so it allows to run the same image, but is not CLI-compatible with docker that's what you mean? But is it more / less / equivalently efficient ?

3 days ago

xinit

Docker Desktop/Obstack start a single VM that runs all your containers. This means that you'll have to scale it accordingly. Davit uses Apple Containers that runs a very thin VM for each container you spin up. Depending on your use case it's more, less or equivalently effcient.

3 days ago

Aejkatappaja

Looks nice!

Will give it a try, you won a star

3 days ago

nf-x

Looks neat, need to give it a spin

3 days ago

piosin

Any hosting requirements?

3 days ago

armanj

can someone tldr me why choose apple container (and its ui) over docker (and orbstack)

3 days ago

samgranieri

I can’t speak about orbstack, but I’ve worked with docker desktop and podman desktop for years on macOS. Those programs start up a virtual machine that consistently eats ram regardless of whether or not you are running containers in it. Apple container looks lighter weight. In the age of ridiculous ram costs, you gotta save resources.

3 days ago

routelastresort

In addition to memory saver that another person replied about, Docker Desktop also has an MCP server functionality and marketplace (almost all free) and huge AI focus. You can hardly compare it to the others at this point.

I was doing the following at the same time on my MBP this week:

* running a bunch of containers + MCP servers for Claude and Codex on Docker Desktop

* heavily using Claude Code with Fable and packer to build cloud marketplace images

* having Codex write some tests and git flows and reviewing the work in vscode

* automating a character in a Wine-based 1st party RPG in the background running at full resolution

* watching anime on Plex in between Claude Code prompts

It's all about your machine. Docker Desktop is not my worry and if you're a Dev you should have a nice laptop with 32-64GB or more, Apple Silicon Max CPU, etc. This goes for Fusion or UTM also if you want to run a Linux Desktop.

I use docker CE with all container/tui interfaces on all of my Linux systems, but Docker Desktop is nice for macOS or Windows. I almost forgot about Docker Desktop's Gordon, and the AI assistant will do things like analyze your Dockerfile or compose.yml. Super handy.

3 days ago

ClikeX

> if you're a Dev you should have a nice laptop with 32-64GB or more, Apple Silicon Max CPU, etc.

Really depends on what you're building, to be honest.

3 days ago

watermelon0

Docker Desktop's memory saver shuts down VM when containers are not running.

Additionally, Docker/Podman/Orbstack start a single VM, where memory is shared between containers.

On the other hand, Apple Containers create a separate VM for each container, which results in higher memory usage due to Linux kernel overhead, as well as the fact that kernel will try to use most of the available memory for file caching.

3 days ago

dom96

ooh nice

3 days ago

3836293648

> Tiny. A single ~17 MB app

Oh goodness what have we come to? I know we're comparing to electron monstrosities, but still

3 days ago

gfiorav

complaining about 17mb in 2026 has to be virtue signaling of some sort...

yes I know we went to the moon with a few kb but are we going to hang on to that for ever?

3 days ago

nophunphil

How would this be virtue signaling?

Anyway, I think we should want to build efficient things. Dismissing this doesn’t seem terribly productive.

3 days ago

3836293648

I am not complaining about it being 17MB. I am complaining about someone considering it tiny.

2 days ago

osjdjsjdjwjd

Sigh. Found the Electron developer.

Yes, yes we fucking are.

3 days ago