Development
niso provides fast development workflows with watch mode, dev run (without systemd), and cross-platform VM support.
Dev run#
Run your application with niso isolation but without creating a systemd service. Useful for quick testing:
# Run with isolation in the foreground$ niso dev run ./target/release/my-api --port 8080:8080# Mount your source directory for live editing$ niso dev run ./my-api --mount ./config:/config -- --config /config/dev.toml# Run with environment variables$ niso dev run ./my-api -e DATABASE_URL=postgres://localhost/mydbniso dev run applies namespaces directly (not through systemd). On macOS, it runs the process natively without isolation.Watch mode#
Watch for file changes, rebuild, and restart automatically:
$ niso dev watch \ --build "cargo build --release" \ --run "target/release/my-api" Watching for changes... [src/main.rs changed] Building... ✓ Build complete (2.1s) ✓ Restarted my-apiQuick deploy cycle#
Pack, install, activate, and tail logs in one command:
$ niso dev deploy ✓ Packed my-api-1.0.0-x86_64.niso (8.2 MB) ✓ Installed my-api 1.0.0 ✓ Activated my-api Following logs...# With a local registry$ niso dev deploy --registry localLocal registry#
niso includes a file-based local registry at ~/.niso/local-registry/ for development. Push and pull without running a registry server:
# Push to local registry$ niso push my-api-1.0.0-x86_64.niso --registry local# Pull from local registry$ niso pull my-api --registry localCross-platform development#
niso commands work on macOS and Windows. Commands that don't require Linux kernel features run natively. Isolation commands use a lightweight VM:
| Command | macOS native | Needs VM |
|---|---|---|
niso pack | ✓ | |
niso push / pull | ✓ | |
niso inspect / verify | ✓ | |
niso search | ✓ | |
niso fleet deploy | ✓ | |
niso activate / run | ✓ | |
niso stack up | ✓ | |
niso net / volume | ✓ | |
niso logs / status | ✓ |
VM management#
The development VM is lightweight and fast-booting:
# Start the VM$ niso machine start Starting niso VM... ready in 1.2s# Configure resources$ niso machine config --cpus 4 --memory 4G --disk 20G# Check status$ niso machine status Status: running CPUs: 4 Memory: 4 GB Disk: 20 GB (3.2 GB used)# Stop the VM$ niso machine stop# Update VM kernel/tools$ niso machine update# Reset to clean state$ niso machine resetVM backends
niso selects the best VM backend for your platform:
- macOS — Apple Virtualization Framework (fastest, hardware-accelerated)
- Windows (non-WSL) — Hyper-V
- WSL2 — runs natively, no VM needed
- Fallback — QEMU (works everywhere, slower)
Project initialization#
Scaffold a project with language-specific templates:
# From template$ niso init --template rust$ niso init --template node$ niso init --template python$ niso init --template go# From existing systemd service$ niso init --from-systemd /etc/systemd/system/my-app.service.nisoignore#
Exclude files from packages. Same syntax as .gitignore:
# Build artifactstarget/node_modules/__pycache__/*.pyc# Version control.git/# IDE.vscode/.idea/# Environment.env.env.local# Logs*.log