The main concepts#
Limanix connects three things: a configuration file on your Mac, a Linux virtual machine, and a set of NixOS modules that describe its tools and services.
Mac and VM are separate systems#
Term |
Meaning |
What you do there |
|---|---|---|
Host |
Your Mac, running macOS |
Edit files and run |
Guest |
The Linux system inside the VM |
Compile, test, and run Linux programs |
VM |
The virtual machine containing the guest |
Give it CPU, memory, a disk, and a name |
Mount |
A host directory made visible at a guest path |
Work on the same project files from both systems |
A mount does not copy your project. If you mount the project at /workspace,
your editor on macOS and a compiler in Linux see the same files. With a read-write
mount, deleting a file from the guest also deletes the host file.
flowchart TD
subgraph Mac["Mac · host"]
Editor["Editor and project files"]
CLI["Limanix CLI"]
TOML["limanix.toml"]
end
subgraph VM["VM · Linux guest"]
Workspace["/workspace"]
Tools["Tools and services"]
NixOS["NixOS system"]
end
Editor <-->|"shared mount"| Workspace
TOML --> CLI
CLI -->|"create or update"| NixOS
NixOS --> Tools
Throughout these guides, Mac means your normal terminal. VM means the
shell opened by limanix shell NAME. Use exit to return to the Mac.
What Lima and NixOS do#
Component |
Job |
|---|---|
Limanix |
Reads TOML, manages VM operations, and prepares the guest configuration |
Lima |
Runs the Linux VM, connects to it, and shares directories |
NixOS |
Configures the Linux system from declarations |
Nix |
Evaluates those declarations and builds or obtains their dependencies |
Nixpkgs |
Supplies packages and NixOS options used by modules |
NixOS module |
A Nix file that contributes packages, services, or other system settings |
Lima is integrated into the client. You do not need a separate Lima or Nix installation on macOS. The installation guide covers the additional host requirements when the guest uses a different CPU architecture.
Describe the result, then apply it#
For example, this selection asks the guest to include Git and Node.js:
[nixos]
modules = ["lmx:git", "lmx:nodejs"]
It is a fragment of a configuration, not a complete first-run file. Use the getting-started example for a complete environment.
Limanix combines the selected modules with its base NixOS configuration. The base handles guest integration, the development user, mounts, environment, and firewall settings. A module adds to that system; it does not replace the base.
The configuration is declarative: it states which tools and settings should be present. Editing the file alone does not change a running guest. On your Mac, apply the new declaration:
limanix update --config limanix.toml
This rebuilds the guest configuration and restarts the VM. It does not run on every shell connection. See Work with VMs for the exact lifecycle and what happens when an operation fails.
Three kinds of input#
Input |
Owns |
Example |
|---|---|---|
Project TOML |
VM resources, module selection, mounts, guest environment, ports |
|
Bundled catalog |
Modules shipped inside this client binary |
|
Imported module directory |
Your own guest configuration |
|
The client copies imported modules into a local registry. A VM receives a new snapshot of the selected modules during creation or update. Editing an original module directory does not change either copy automatically.
The client also embeds the base NixOS flake and its lock file. You select or import modules through the CLI; there is no TOML field for replacing the entire flake. Start with Choose and manage modules when you need custom guest behavior.
Configuration is not your data#
The VM disk holds the Linux system and guest-only files. The development user's home is a separate directory on your Mac. Project mounts point to other host directories you chose.
These locations behave differently on deletion:
Location |
Default |
|---|---|
VM disk |
Removed |
Managed development home |
Preserved |
Mounted project directories |
Left in place |
Keeping TOML and modules in Git helps recreate the declared environment. It does not back up a database, a VM disk, or files in your home. Continue with Getting started, then read Storage and recovery before removing a VM.