Open a shell
limactl shell --workdir=. nixden
nixden does not mount $HOME, so always hand Lima a guest path.
nixden boots a prebuilt Lima image for local development. Your macOS home directory stays outside the VM — mount only what you need.
/tmp/lima-nixdenInstall
Requires Lima — brew install lima on macOS, or see the
installer guide.
$curl -fsSL https://juspay.github.io/nixden/start | sh -
Usage
limactl shell --workdir=. nixden
nixden does not mount $HOME, so always hand Lima a guest path.
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.
Any SSH-aware editor connects via ~/.lima/nixden/ssh.config. VS Code Remote-SSH shown below.
~/.lima/nixden/ssh.config.lima-nixden.Notes
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.
Use /tmp/lima-nixden intentionally from either side. Clone repos inside the VM — the macOS home directory is not mounted.
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.
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.
nixden targets macOS first, but the same starter and just flow run on Linux hosts wherever Lima is supported — see the Lima installer guide.