Skip to main content
Glama

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 host

Disposable QEMU VMs with SSH access and cloud-init provisioning

Let an agent manage its own environment

A built-in stdio MCP server with compact tools, read-only resources and opt-in event subscriptions

Reuse an expensive setup

Templates and QCOW2 linked clones, with one shared base and a writable disk per VM

Switch between automation and hands-on work

Structured CLI JSON, shell completion and an interactive terminal dashboard

Keep multiple dashboards and agents in sync

Shared local events, live TUI updates and selective MCP notifications

Choose the right starting point

An 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.

Related MCP server: proxmox-mcp

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

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

Windows 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:

npm install -g nido-mcp                # Linux / macOS / Windows launcher
brew install Josepavese/nido/nido       # macOS / Linux
go install github.com/Josepavese/nido/v4/cmd/nido@latest
scoop bucket add nido https://github.com/Josepavese/scoop-nido
scoop install nido

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

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:

# Debian / Ubuntu
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://josepavese.github.io/nido/nido-archive-keyring.asc -o /etc/apt/keyrings/nido.asc
echo "deb [signed-by=/etc/apt/keyrings/nido.asc] https://josepavese.github.io/nido/apt/ stable main" | sudo tee /etc/apt/sources.list.d/nido.list
sudo apt-get update && sudo apt-get install nido

# Fedora / RHEL
sudo curl -fsSL https://josepavese.github.io/nido/rpm/nido.repo -o /etc/yum.repos.d/nido.repo
sudo 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

nido images update
nido images info ubuntu:lts
nido images pull ubuntu:lts
nido spawn agent-lab --image ubuntu:lts --memory 2048 --cpus 2
nido 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:

nido ssh agent-lab sudo poweroff
# After shutdown, confirm its state:
nido info agent-lab
nido 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:

{
  "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"].

Tool

Responsibility

nido_vm

Create, inspect, configure, connect and remove VMs; manage forwarded ports

nido_image

Browse and refresh the catalog; pull and manage cached images

nido_template

Save and manage reusable disk templates

nido_blueprint

Inspect and build image recipes

nido_system

Diagnostics, 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

Task

Guide

Provision a guest, forward ports, adjust resources, share files

Everyday workflows

Write scripts against Nido

CLI JSON contract

Install, upgrade or choose a package channel

Installers · Distribution

Change the terminal palette

Themes

Understand runtime and hardware boundaries

Architecture

Contribute or validate a change

Contributing · Testing

Documentation index · Changelog · Issues · MIT license

Available Tools

6 tools
nido_blueprintB

Manage buildable image blueprints. Supported actions are list, info, and build. Prefer nido://catalog/blueprints and nido://blueprint/{name} for read-only inspection.

Inputs: action (required), name, blueprint_name.

nido_eventsA

Control this MCP session's opt-in Nido event subscriptions. Subscribe to a VM URI or core resource; mute/unmute keeps filters, unsubscribe removes them. No notifications by default. Read nido://system/events for stream health and recent subscribed events. Notifications contain only an invalidated URI.

Inputs: action (required), uri, kinds.

nido_imageA

Manage the image catalog and cache through one namespaced tool. Supported actions are list, info, pull, remove, refresh_catalog, cache_list, cache_info, cache_remove, and cache_prune. Prefer resources like nido://catalog/images, nido://image/{tag}, and nido://storage/cache for inspection to reduce token usage.

Inputs: action (required), image, unused_only.

nido_systemC

Access system-wide Nido operations that are not tied to one VM. Supported actions are doctor, version, update_check, update, config_get, config_set, accel_list, register, completion, build_image, and uninstall. Use read-only resources when possible.

Inputs: action (required), key, force, shell, +2 more.

nido_templateB

Manage reusable VM templates with a single tool. Supported actions are list, create, and delete. Use nido://fleet/templates when you only need to inspect template names.

Inputs: action (required), name, vm_name, template_name.

nido_vmB

Operate the VM fleet through a single high-power tool. Use actions such as list, info, create, start, stop, delete, ssh, prune, config_update, port_forward, port_unforward, and port_list. Prefer resources like nido://fleet/vms or nido://vm/{name} for inspection when your client supports resources; use this tool for mutations or as a universal fallback.

Inputs: action (required), ftp, gui, web, +16 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 6 tools

    Disambiguation4/5

    The six tools map cleanly to distinct domains: events, VMs, templates, images, blueprints, and system operations. Minor potential overlap exists around image building, where nido_system build_image, nido_image pull, and nido_blueprint build could require an agent to reason about which layer is intended.

    Naming Consistency4/5

    All tools use a consistent nido_ namespace followed by a domain noun, making the set predictable. The only minor deviation is nido_events being plural while the other domain names are singular.

    Tool Count5/5

    Six tools is well within the appropriate range and each corresponds to a meaningful resource domain. The set is compact even though several tools expose many actions internally.

    Completeness4/5

    VM, image, system, and event operations are broadly covered, including lifecycle and port-forwarding actions. There are some minor gaps, such as template update/info operations and blueprint create/delete lifecycle operations, though resources may cover read-only inspection.

    Maintenance

    ActivityActive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables LLM agents to monitor and manage a Proxmox VE cluster, including cluster status, VM/container lifecycle, and node actions via MCP tools.
      8
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to operate disposable Linux computers via MCP, providing tools for shell, file read/write, directory listing, and port exposure. It also supports browser automation and integration with any MCP-compatible client.
      Apache 2.0