{"slug": "mkosi", "name": "mkosi", "category": "os", "category_name": "Operating systems and desktop", "description": "", "recommenders": 4, "commenters": 8, "warners": 0, "score": 4.683, "rising": -1.31, "first": "2025-12-30", "latest": "2026-09-30", "why": "is quickly becoming _the_ way to build custom images too", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 4, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "is quickly becoming _the_ way to build custom images too", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/systemd/mkosi", "official_url": "https://github.com/systemd/mkosi", "pricing": "", "aliases": ["mkosi"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 782294496, "item_id": 48893406, "url": "https://news.ycombinator.com/item?id=48893406", "by": "felooboolooomba", "date": "2026-07-13", "version": null, "stance": "recommend", "quote": "But apart from that, it's brilliant.", "excerpt": "I use mkosi: https://github.com/systemd/mkosi Which is just a front for systemd-nspawn. It's annoying you have to edit the config.nspawn to mount a directory if you start it with the \"shell\" command, instead of booting. But apart from that, it's brilliant.", "context": "", "use_case": "sandboxed containers for agents", "switched_from": "", "story": "Show HN: Clawk \u2013 Give coding agents a disposable Linux VM, not your laptop"}, {"id": 777825521, "item_id": 48614095, "url": "https://news.ycombinator.com/item?id=48614095", "by": "jauntywundrkind", "date": "2026-06-20", "version": null, "stance": "recommend", "quote": "assembly tools also homed in the systemd cinematic universe, mkosi, https://github.com/systemd/mkosi", "excerpt": "Excellent super slept on distro using excellent super slept on distro assembly tools also homed in the systemd cinematic universe, mkosi, https://github.com/systemd/mkosi", "context": "", "use_case": "", "switched_from": "", "story": "Systemd 261 released with systemd-sysinstall, IMDSD, and storagectl"}, {"id": 756646864, "item_id": 47290429, "url": "https://news.ycombinator.com/item?id=47290429", "by": "miladyincontrol", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "Personally I love using mkosi", "excerpt": "The lack of docker registry-like solutions really does seem to be the chokepoint for many alternatives. Personally I love using mkosi and while it has all the composability and deployment options I'd care for, its clear not everyone wants to build starting only with a blank set of OS templates.", "context": "", "use_case": "building OS images", "switched_from": "", "story": "A Decade of Docker Containers"}, {"id": 755079028, "item_id": 47192439, "url": "https://news.ycombinator.com/item?id=47192439", "by": "pojntfx", "date": "2026-02-28", "version": null, "stance": "recommend", "quote": "is quickly becoming _the_ way to build custom images too", "excerpt": "bootc and OSTree are both very neat, but the bleeding edge of immutable Linux distros (GNOME OS, KDE Linux) is currently converging on a different proposal by systemd developers that's standardized by the UAPI Group (https://uapi-group.org/specifications/). It fixes quite a few of the complexities with OSTree (updates are handled by `systemd-sysupdate`/`updatectl` and are just files served via HTTP) and is quite a bi", "context": "", "use_case": "", "switched_from": "", "story": "Bootc and OSTree: Modernizing Linux System Deployment"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["building os images", "sandboxed containers for agents", "building home nas images"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49894351", "title": "Show HN: NSL \u2013 WSL for Linux", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48892859", "title": "Show HN: Clawk \u2013 Give coding agents a disposable Linux VM, not your laptop", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48827325", "title": "How to Build a Minimal ZFS NAS Without Synology, QNAP, TrueNAS", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48613328", "title": "Systemd 261 released with systemd-sysinstall, IMDSD, and storagectl", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47289311", "title": "A Decade of Docker Containers", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47189625", "title": "Bootc and OSTree: Modernizing Linux System Deployment", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1}, "2026-01": {}, "2026-02": {"recommend": 1}, "2026-03": {"recommend": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 1}, "2026-07": {"neutral": 1, "recommend": 1}, "2026-08": {}, "2026-09": {"neutral": 2}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 798535057, "item_id": 49908441, "url": "https://news.ycombinator.com/item?id=49908441", "by": "bketelsen", "date": "2026-09-30", "version": null, "stance": "neutral", "quote": "build out of a single mkosi repo", "excerpt": "that repo is retired, now all the Frostyard atomic images build out of a single mkosi repo at https://github.com/frostyard/snosi. the website is https://frostyard.org - I'll take down the older snowlinux.org or redirect it. Thanks!", "context": "", "use_case": "Building OS images", "switched_from": "", "story": "Show HN: NSL \u2013 WSL for Linux"}, {"id": 798371377, "item_id": 49898211, "url": "https://news.ycombinator.com/item?id=49898211", "by": "bita_nidir", "date": "2026-09-29", "version": null, "stance": "neutral", "quote": "It makes an image and runs it in separate namespace.", "excerpt": "I'll give this one a try, thanks for sharing! FWIW, I'm currently using systemd-nspawn via mkosi: https://github.com/systemd/mkosi It makes an image and runs it in separate namespace. It can start at bash or init. It's very fast but there seem to be a problem creating an Ubuntu image on Debian and vice versa.", "context": "", "use_case": "building OS images", "switched_from": "", "story": "Show HN: NSL \u2013 WSL for Linux"}, {"id": 782294496, "item_id": 48893406, "url": "https://news.ycombinator.com/item?id=48893406", "by": "felooboolooomba", "date": "2026-07-13", "version": null, "stance": "recommend", "quote": "But apart from that, it's brilliant.", "excerpt": "I use mkosi: https://github.com/systemd/mkosi Which is just a front for systemd-nspawn. It's annoying you have to edit the config.nspawn to mount a directory if you start it with the \"shell\" command, instead of booting. But apart from that, it's brilliant.", "context": "", "use_case": "sandboxed containers for agents", "switched_from": "", "story": "Show HN: Clawk \u2013 Give coding agents a disposable Linux VM, not your laptop"}, {"id": 781380208, "item_id": 48836263, "url": "https://news.ycombinator.com/item?id=48836263", "by": "tomasff", "date": "2026-07-08", "version": null, "stance": "neutral", "quote": "I've been looking at setting something up with mkosi/systemd for my home server/NAS", "excerpt": "> So now I have a large script which debootstraps a Debian based NAS into being. Is part of this publicly available? After seeing, - https://words.filippo.io/frood/ - https://0pointer.net/blog/fitting-everything-together.html I've been looking at setting something up with mkosi/systemd for my home server/NAS - it's interesting seeing how different setups are solving the problem for inspiration.", "context": "", "use_case": "building home NAS images", "switched_from": "", "story": "How to Build a Minimal ZFS NAS Without Synology, QNAP, TrueNAS"}, {"id": 777825521, "item_id": 48614095, "url": "https://news.ycombinator.com/item?id=48614095", "by": "jauntywundrkind", "date": "2026-06-20", "version": null, "stance": "recommend", "quote": "assembly tools also homed in the systemd cinematic universe, mkosi, https://github.com/systemd/mkosi", "excerpt": "Excellent super slept on distro using excellent super slept on distro assembly tools also homed in the systemd cinematic universe, mkosi, https://github.com/systemd/mkosi", "context": "", "use_case": "", "switched_from": "", "story": "Systemd 261 released with systemd-sysinstall, IMDSD, and storagectl"}, {"id": 756646864, "item_id": 47290429, "url": "https://news.ycombinator.com/item?id=47290429", "by": "miladyincontrol", "date": "2026-03-07", "version": null, "stance": "recommend", "quote": "Personally I love using mkosi", "excerpt": "The lack of docker registry-like solutions really does seem to be the chokepoint for many alternatives. Personally I love using mkosi and while it has all the composability and deployment options I'd care for, its clear not everyone wants to build starting only with a blank set of OS templates.", "context": "", "use_case": "building OS images", "switched_from": "", "story": "A Decade of Docker Containers"}, {"id": 755079028, "item_id": 47192439, "url": "https://news.ycombinator.com/item?id=47192439", "by": "pojntfx", "date": "2026-02-28", "version": null, "stance": "recommend", "quote": "is quickly becoming _the_ way to build custom images too", "excerpt": "bootc and OSTree are both very neat, but the bleeding edge of immutable Linux distros (GNOME OS, KDE Linux) is currently converging on a different proposal by systemd developers that's standardized by the UAPI Group (https://uapi-group.org/specifications/). It fixes quite a few of the complexities with OSTree (updates are handled by `systemd-sysupdate`/`updatectl` and are just files served via HTTP) and is quite a bi", "context": "", "use_case": "", "switched_from": "", "story": "Bootc and OSTree: Modernizing Linux System Deployment"}, {"id": 743038355, "item_id": 46439897, "url": "https://news.ycombinator.com/item?id=46439897", "by": "YorickPeterse", "date": "2025-12-30", "version": null, "stance": "neutral", "quote": "using mkosi [1] (for reasons unrelated to this discussion)", "excerpt": "For Linux this will vary between distributions and configurations. For example, based on some testing I did today using mkosi [1] (for reasons unrelated to this discussion), a bare-bones Fedora 43 installation uses about 130 MiB of RAM, while a Debian installation uses a little more than 100 MiB. IIRC last time I tried a bare-bones FreeBSD installation it used about the same amount of memory, maybe a little more base", "context": "", "use_case": "", "switched_from": "", "story": "FediMeteo: A \u20ac4 FreeBSD VPS Became a Global Weather Service"}]}