Nido - VM Manager for AI Agents

io.github.JosepavesePublished by GitHub account Josepavesev4.10.5Updated Oct 29, 2026

Local QEMU VM manager with opt-in MCP event subscriptions for AI agents.

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Local QEMU VM manager that lets an AI agent create, provision, inspect and delete virtual machines on your own machine over stdio MCP.

What you can do
  • Create, inspect, configure, connect to and remove VMs, and manage forwarded ports
  • Browse and refresh the cloud-image catalog, pull and manage cached images
  • Save and manage reusable disk templates, and inspect or build image blueprints
  • Run diagnostics, read configuration, check accelerators and perform installation operations
  • Read fleet, catalog and system configuration through read-only resources, with opt-in event subscriptions
When to use it
Useful when you want an agent to work inside a disposable or isolated machine instead of your host, for example to provision dependencies, run tests and save output, then delete only that VM. Also fits reusing an expensive prepared setup through templates and linked clones.
Requirements
Runs as a local process over stdio; no separate service or authentication is declared. QEMU must be installed on the host, and hardware acceleration depends on what the host exposes. Install via the installer, npm package, Homebrew, Go, Scoop, Nix, APT/DNF repositories or a container image that needs a KVM-capable host. Run nido doctor to check prerequisites.
Before you install
MCP grants access to local VM and installation operations, including destructive ones, so connect only clients you trust. Deleting a VM removes its data, and VM data persists until deleted. Host mounts, forwarded ports and PCI passthrough cross the guest boundary, and the tool is not a complete security policy for arbitrary untrusted workloads. Disk usage grows with writes, logs and templates.

Installation

In SourceWeft

  1. Open Nido - VM Manager for AI Agents in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Nido

[Nido: a luminous egg in a retro workstation. Real VMs. Agent-ready.]

Real virtual machines for AI agents. One local engine, three ways to drive it: CLI, TUI and MCP.

[Release] [CI] [npm] [MCP Registry] [License: MIT]

Give an agent a machine it can provision, use and delete. Nido runs QEMU locally, clones cached images with copy-on-write disks, and exposes the same VM lifecycle to your terminal and your MCP client. Each VM has its own guest kernel.

Hatch your agents. Let them fly. Retro shell, practical machinery.

Get started · Connect an agent · Documentation · Wiki

Why Nido?

You want to...Nido gives you...
Test code away from your hostDisposable QEMU VMs with SSH access and cloud-init provisioning
Let an agent manage its own environmentA built-in stdio MCP server with compact tools, read-only resources and opt-in event subscriptions
Reuse an expensive setupTemplates and QCOW2 linked clones, with one shared base and a writable disk per VM
Switch between automation and hands-on workStructured CLI JSON, shell completion and an interactive terminal dashboard
Keep multiple dashboards and agents in syncShared local events, live TUI updates and selective MCP notifications
Choose the right starting pointAn automatically refreshed cloud-image catalog, local templates and buildable blueprints

AMD64 and ARM64 host/guest selection, requirements and data-preserving upgrades: Architecture guide. Omitted architecture selects native; use --arch on CLI, arch on MCP, or the TUI Arch selector for an explicit guest ISA.

Press start

QEMU is required to run VMs. Nido supports Linux, macOS and Windows hosts; hardware acceleration depends on what the host actually exposes. Start with nido doctor. See installation and host requirements.

Install

Linux / macOS

bash
curl -fsSL https://github.com/Josepavese/nido/releases/latest/download/install.sh | bash

Windows PowerShell

powershell
irm https://github.com/Josepavese/nido/releases/latest/download/install.ps1 | iex

Open a new terminal, then check nido version and nido doctor. The quick installers check prerequisites and offer QEMU setup where supported.

Prefer a package manager? npm works on Linux, macOS and Windows:

bash
npm install -g nido-mcp                # Linux / macOS / Windows launcherbrew install Josepavese/nido/nido       # macOS / Linuxgo install github.com/Josepavese/nido/v4/cmd/nido@latest
powershell
scoop bucket add nido https://github.com/Josepavese/scoop-nidoscoop install nido

Container (Docker/Podman, bundles QEMU; needs a KVM-capable host):

bash
docker run -i --rm --device /dev/kvm \  --group-add "$(stat -c %g /dev/kvm)" \  -v nido-home:/home/nido/.nido \  ghcr.io/josepavese/nido mcp

Images are rebuilt on every release at ghcr.io/josepavese/nido (:{version}, :{minor}, :latest) and speak MCP on stdio; pass --group-add so the non-root user can open /dev/kvm.

Debian / Ubuntu (APT) and Fedora / RHEL (DNF) repositories are rebuilt on every release and served from GitHub Pages:

bash
# Debian / Ubuntusudo install -d -m 0755 /etc/apt/keyringssudo curl -fsSL https://josepavese.github.io/nido/nido-archive-keyring.asc -o /etc/apt/keyrings/nido.ascecho "deb [signed-by=/etc/apt/keyrings/nido.asc] https://josepavese.github.io/nido/apt/ stable main" | sudo tee /etc/apt/sources.list.d/nido.listsudo apt-get update && sudo apt-get install nido
# Fedora / RHELsudo curl -fsSL https://josepavese.github.io/nido/rpm/nido.repo -o /etc/yum.repos.d/nido.reposudo dnf install nido

Install QEMU first (qemu-system-x86 qemu-utils / qemu-kvm qemu-img), then run nido doctor. Both repositories are GPG-signed by the Nido package archive key (DBB87CB63A94ABA50B33C7B919C6A95C9D280B64); see the installers guide.

Nix: nix run github:Josepavese/nido builds the current source and brings its own QEMU; see the installers guide.

WinGet: Josepavese.Nido is awaiting Microsoft review. See availability and commands.

For MCP clients, use npx -y nido-mcp mcp, discover io.github.Josepavese/nido in the Official MCP Registry, browse the Glama directory for local installation instructions, or import the MCPB bundle. MCP catalogs and client installation.

All install options · Distribution channel status

Hatch your first VM

bash
nido images updatenido images info ubuntu:ltsnido images pull ubuntu:ltsnido spawn agent-lab --image ubuntu:lts --memory 2048 --cpus 2nido info agent-lab --json
# Once the guest has finished booting and SSH is ready:nido ssh agent-lab

The first pull downloads the base image. Later VMs can reuse it. ubuntu:lts follows the catalog's supported LTS selection; use a numbered tag from nido images list when you need a specific OS release. Guest boot and cloud-init take additional time; creating the overlay is only one part of startup.

When you have saved the work you need, shut down inside the guest and remove only your disposable VM:

bash
nido ssh agent-lab sudo poweroff# After shutdown, confirm its state:nido info agent-labnido delete agent-lab

nido stop terminates the managed QEMU process and waits for exit. Use guest poweroff for a clean OS shutdown. VM data persists until you delete it.

Provisioning, ports, templates and cleanup

Watch core changes in another terminal with nido events or nido events --json. TUI sessions update from the shared stream; agents explicitly subscribe only to the resources they need. See event delivery and mute controls.

A little room to roost

Run nido gui for a keyboard and mouse dashboard. The shared TUI kit adapts from a split Fleet view to compact lists and scrollable dialogs, keeping your work in place as you resize. Below its usable size, the interface rests until you give it more room.

[Nido Fleet at 80x24, with VM details and visible keyboard shortcuts]

Even at 40x10, confirmation and cancellation stay within reach:

[Create Template dialog at 40x10, with Confirm and Cancel visible]

These are native terminal captures with private demonstration metadata. No VM was started for the screenshots. Themes · Reusable TUI kit

Connect your agent

Nido's MCP server runs locally over stdio. No separate service is required. Use an installed binary:

json
{  "mcpServers": {    "nido": {      "command": "nido",      "args": ["mcp"]    }  }}

Use the absolute executable path if your client does not inherit your terminal's PATH. nido register prints a registration block; your client owns where it is saved. Clients that launch npm packages can instead use command: "npx" with args: ["-y", "nido-mcp", "mcp"].

ToolResponsibility
nido_vmCreate, inspect, configure, connect and remove VMs; manage forwarded ports
nido_imageBrowse and refresh the catalog; pull and manage cached images
nido_templateSave and manage reusable disk templates
nido_blueprintInspect and build image recipes
nido_systemDiagnostics, configuration, accelerators and installation operations

Read-only resources include nido://fleet/vms, nido://catalog/images and nido://system/config. Use nido mcp-help for the machine-readable tool/action guide, or nido mcp --help in your terminal.

An example task for your agent:

Create a disposable Ubuntu LTS VM named test-lab, provision the dependencies, run my tests and save their output. Delete only that VM when finished. Preserve other VMs and shared images.

MCP grants access to local VM and installation operations, including destructive ones. Connect clients you trust. MCP guide · Optional VM-testing skill

One base. Separate machines.

[Nido workflow: CLI, TUI and MCP use one VM engine. A cached base feeds separate writable VM disks; save useful output before deleting a VM.]

With linked clones enabled, the cached base stays shared while each VM records its own disk changes. Space usage grows with those writes, logs and templates; it is not constant as you add VMs. Nido checks backing-image dependencies before cache removal. Keep bases in place while dependent VM disks exist.

VMs provide a separate guest kernel, but host mounts, forwarded ports and PCI passthrough deliberately cross that boundary. Nido is not a complete security policy for arbitrary untrusted workloads. See operations and isolation.

Pick your starting point

  • Cloud image: pull from the catalog and provision through cloud-init. Ubuntu, Debian, Alpine, Kali, CirrOS and openSUSE discovery follows the policies in registry/sources.yaml. Catalog and integrity
  • Template: save a prepared VM disk and reuse it for repeated tasks. Template workflow
  • Blueprint: build an image from a recipe and installer media, including Windows evaluation editions. Windows guide

The scheduled catalog job discovers new supported upstream releases. Refresh your local copy with nido images update; it does not update an existing guest OS.

Prefer hands-on control? Run nido gui for the Fleet, Hatchery, Registry and System views. Use --gui on spawn/start when you want the VM's display; that flag and the terminal dashboard are separate features.

Go further

TaskGuide
Provision a guest, forward ports, adjust resources, share filesEveryday workflows
Write scripts against NidoCLI JSON contract
Install, upgrade or choose a package channelInstallers · Distribution
Change the terminal paletteThemes
Understand runtime and hardware boundariesArchitecture
Contribute or validate a changeContributing · Testing

Documentation index · Changelog · Issues · MIT license

Source: README.md at commit 23c2d86

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

11
  1. v4.10.5LatestOct 29, 2026
  2. v4.10.3Oct 26, 2026
  3. v4.10.2Oct 26, 2026
  4. v4.9.0Oct 25, 2026
  5. v4.8.7Oct 25, 2026
  6. v4.8.6Oct 24, 2026
  7. v4.8.1Oct 24, 2026
  8. v4.7.0Oct 21, 2026
  9. v4.6.0Oct 19, 2026
  10. v4.5.28Oct 19, 2026
  11. v4.5.27Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts