Early release
Linux dev machines, declared in one file on your Mac
LimaNix runs NixOS virtual machines. Pick a shell, toolchains and services in limanix.toml, and LimaNix builds the machine and keeps it that way.
limanix.toml
- name = "my-vm"
- [shell]
- preset = "terminal"
- [toolchains]
- go = "1.27"
- python = "3.15"
- [nixos]
- modules = ["lmx:docker", "lmx:postgres"]
- packages = ["kubectl"]
- [[mounts]]
- source = "."
- target = "/workspace"
Everything a project needs, nothing it does not
A few lines of limanix.toml turn into tools you use every day.
[shell]preset = "terminal"prompt = "pure"editor = "astronvim"multiplexer = "tmux"[toolchains]go = "1.27"rust = "stable"python = "3.15"nodejs = "26"java = "21"gradle = "9"[nixos]modules = ["lmx:docker", "lmx:postgres"]packages = ["kubectl", "unstable:helix"][[mounts]]source = "." # this projecttarget = "/workspace"[[mounts]]source = "../fixtures"target = "/mnt/fixtures"mode = "ro" # read-only in the VM[shell]dotfiles = "~/dotfiles"# ~/dotfiles/.gitconfig → ~/.gitconfig# ~/dotfiles/.zshrc → ~/.zshrc# ~/dotfiles/.config/nvim → ~/.config/nvim$ lmx status # how the VM is doing$ lmx doctor # what is wrong, and the fix$ lmx help docker # commands and tasks of a module[shell]preset = "terminal"prompt = "pure"editor = "astronvim"multiplexer = "tmux"A catalog that fits together
Shell components, toolchains and services share one theme and know about each other. Anything else comes from nixpkgs.
Pick a module to see what it works with.
From a file to a running machine
limanix is the only thing you install on the Mac.
Download
One binary for Apple Silicon and Intel Macs on macOS 26 or newer.
Download for macOSCreate
Describe the machine in
limanix.tomland build it.limanix create --config limanix.tomlWork in it
Open a shell, or connect VS Code, Cursor, Zed or JetBrains over SSH.
limanix shell my-vm
Change the file later and run limanix update. The VM keeps running while the new system builds, and restarts into it only if the build succeeds.
Frequently asked questions
Yes. LimaNix is open source under the Apache License 2.0.
No. limanix.toml covers the shell, toolchains, modules and packages. When you need more, a NixOS module of your own plugs into the same VM.
LimaNix runs its VMs with Lima, built into the limanix binary. On top it adds a NixOS system built from your file, a catalog of modules that work together, and updates that build before the VM restarts.
They run containers well. LimaNix describes the whole development machine in limanix.toml: the shell, languages, services and packages, built the same way on every Mac. Containers run inside it too: add lmx:docker for Docker Engine with Compose.
Devcontainers run a project in a container and need a container runtime on the Mac. nix-darwin and devenv install Nix and your tools on macOS itself. LimaNix keeps all of it in a Linux VM, where Linux tools and services run as they do on a server, and the Mac needs only limanix.
Apple Silicon and Intel Macs with macOS 26 or newer.
Project folders stay on your Mac and are shared into the VM. Your home in the VM is stored on the Mac too: it survives updates and stays when you delete the VM.