nixden
Vol. 01 · Prebuilt NixOS Runtime · Lima Edition · 2026
§ 01 Prebuilt NixOS on Lima

A NixOS VM,
ready to run.

nixden boots a prebuilt Lima image for local development. Your macOS home directory stays outside the VM — mount only what you need.

  • ImagePrebuilt NixOS release
  • Stackflakes · direnv · gh · just
  • Mount/tmp/lima-nixden
§ 02

One
command.

Install

Requires Lima — brew install lima on macOS, or see the installer guide.

~ / nixden / start
$curl -fsSL https://juspay.github.io/nixden/start | sh -
§ 03

Work
inside.

Usage

I.

Open a shell

limactl shell --workdir=. nixden

nixden does not mount $HOME, so always hand Lima a guest path.

II.

Clone, then activate

git clone … && cd repo && direnv allow

The VM is a clean slate — nothing from macOS is shared, so clone inside the guest. direnv allow drops you into the flake's dev shell; nix develop works too.

III.

Attach your editor

Any SSH-aware editor connects via ~/.lima/nixden/ssh.config. VS Code Remote-SSH shown below.

  1. ⌘⇧P → Remote-SSH: Settings. Set Config File to ~/.lima/nixden/ssh.config.
  2. ⌘⇧P → Remote-SSH: Connect to Host… Pick lima-nixden.
§ 04

Fine
print.

Notes

Why a VM, not just Nix on macOS?

nixden quarantines your dev toolchain. On macOS, every nix run, npm install, or direnv allow has your $HOME, SSH keys, and keychain in reach. Inside the VM a compromised dependency stays in the guest — and when things get weird you throw the VM away.

Moving files between Mac and VM

Use /tmp/lima-nixden intentionally from either side. Clone repos inside the VM — the macOS home directory is not mounted.

Customise CPU, memory, disk, or release tag

By default the starter grabs the latest release, auto-sizes CPU, memory, and disk from the host, reuses a running VM, and starts a stopped one. For overrides, pipe --help: curl -fsSL https://juspay.github.io/nixden/start | sh -s -- --help.

Running x86_64 binaries on Apple Silicon

Rosetta is on by default, so the aarch64 guest runs x86_64 Linux binaries at near-native speed via binfmt_misc — just ./some-x86-binary and it works. Requires macOS 13+ on Apple Silicon and the vz driver.

Linux hosts

nixden targets macOS first, but the same starter and just flow run on Linux hosts wherever Lima is supported — see the Lima installer guide.