Agent skill

Minimega

by sandia-minimega in sandia-minimega/minimega

This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API…

GPL-3.0-onlyAuto-check passedDevOps & Cloud

Install Minimega

skills CLI
$ npx skills add sandia-minimega/minimega --skill minimega -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sandia-minimega/minimega minimega --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sandia-minimega/minimega.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/minimega .claude/skills/minimega && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
minimega
GitHub stars
160
Token cost
~3.2k tokens
SKILL.md length
1,402 words
Files
3 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
GPL-3.0-only

At a glance

This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API…

  • Asks how to configure
  • SKILL.md covers Execution modes, Configuration and CLI help, Core concepts and Command usage and integration, plus 3 more sections
  • Calls docker
  • Troubleshoot minimega (VMs

What it does

Minimega is an agent skill from sandia-minimega/minimega. This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API, Docker or systemd deployment, phēnix or FIREWHEEL integration), or when changing code that defines minimega startup flags, CLI commands, or other externally visible behavior. Example triggers: "run minimega in Docker", "why does vm launch leave the VM in BUILDING", "phenix mm fails", "add a minimega startup flag".

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/configuration.md`).

It sits in DevOps & Cloud, covering Linux administration and Containers. It works with Docker, Linux and Python. The licence is GPL-3.0-only.

When your agent uses it

  • Asks how to configure
  • Troubleshoot minimega (VMs
  • Systemd deployment
  • FIREWHEEL integration)

Example prompts

  • “run minimega in Docker”
  • “why does vm launch leave the VM in BUILDING”
  • “phenix mm fails”
  • “/minimega”

Requirements

  • Python 3
  • Docker

What it can do on your machine

Read from SKILL.md and the folder at commit 5e04099. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • docker

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • sandia-minimega.github.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Minimega loads about 3.2k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 130 tokens; SKILL.md has 1,402 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~130
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sandia-minimega/minimega at commit 5e04099, republished under its GPL-3.0-only licence (© sandia-minimega). 1,402 words, ~3,209 tokens.

Download SKILL.mdSave it as .claude/skills/minimega/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
minimega
description
This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API, Docker or systemd deployment, phēnix or FIREWHEEL integration), or when changing code that defines minimega startup flags, CLI commands, or other externally visible behavior. Example triggers: "run minimega in Docker", "why does vm launch leave the VM in BUILDING", "phenix mm fails", "add a minimega startup flag".
license
GPL-3.0-only

minimega operations and integration

minimega manages KVM virtual machines, Android emulators, and Linux containers on one host or across a mesh-connected cluster. This skill focuses on using minimega and preserving its operational contracts.

File paths in this skill are relative to the minimega repository root. The skill lives at skills/minimega/ inside that repository and may be installed through a symlink, so do not resolve repository paths relative to this file. Read AGENTS.md at the repository root before changing code, configuration, startup flags, deployment defaults, the Docker wrapper, service units, or tests.

Supporting files in this skill directory:

  • references/configuration.md: full detail on native flags and environment variables, the Docker wrapper, the systemd unit, precedence, and help output.
  • examples/minimal-kvm.mm: a complete, runnable command file.

Execution modes

Full operation requires Linux, root or equivalent device/network permissions, KVM, libpcap, and the external tools needed by the selected feature.

bash
minimega                         # interactive instance
minimega -nostdin &              # daemonized instance
minimega -attach                 # attach to existing instance
minimega -e vm info              # execute one command
minimega -base /path -e vm info  # target a non-default base

-attach and -e connect to <base>/minimega, under /tmp/minimega by default. For scripts and agents, prefer one-shot -e commands over an interactive prompt.

The repository container provides an mm wrapper that runs minimega -e:

bash
docker exec minimega mm vm info

Omit -it for non-interactive automation. The normal container deployment is privileged and mounts host devices; follow docker/README.md.

Configuration and CLI help

Keep every launcher aligned with the flags registered in cmd/minimega/main.go and pkg/minilog/minilog.go. The compiled minimega -h output is authoritative for flag names and defaults. references/configuration.md covers each mode in depth; the essentials are:

  • Sources. The native binary reads compiled defaults, MM_* environment variables (mapped in cmd/minimega/environment.go), and command-line flags, in that order of increasing precedence. It does not load YAML, JSON, TOML, or dotenv files. -e, -attach, and -pipe also read MM_BASE from /etc/minimega/minimega.conf when neither MM_BASE nor -base is set.
  • Flag syntax. Go flag syntax; parsing stops at the first non-flag argument or --, and the last repeated flag wins. Put -base and -namespace before the command following -e.
  • -force and -recover. With -recover=true, recovery runs after mesh initialization even if -force=true. The compiled -h text for -recover says "only if -force is not set"; the implementation disagrees, so treat that help string as stale.
  • No startup command file. Server startup ignores positional arguments. Apply runtime configuration afterwards with minimega -e read <file>; the check form validates syntax without executing. read stops at invalid syntax, continues past a command that returns an error, and rejects nested read. See examples/minimal-kvm.mm.
  • Docker. docker/start-minimega.sh generates flags from MM_* container environment variables, then /etc/default/minimega, then script defaults. MM_APPEND adds raw flags. Docker defaults differ from native defaults (MM_DEGREE=1, MM_LOGLEVEL=info, MM_FORCE=true, a log file).
  • systemd. misc/daemon/minimega.service maps /etc/minimega/minimega.conf to explicit ExecStart flags; MM_APPEND is not supported there.
  • Help. minimega -h for startup flags, minimega -e help [command] for runtime commands, minimega -cli for the runtime CLI as JSON. Pass the correct -base=<path> before -e when the daemon uses a non-default base.

Core concepts

Base directory, file path, and context
  • -base controls runtime state and the local command socket.
  • -filepath controls files served by iomeshage; relative VM image paths resolve beneath it. Use absolute paths when the file is elsewhere. When -base changes and -filepath keeps its default, the file path becomes <base>/files.
  • -context separates mesh discovery groups. -degree 0 disables automatic peer discovery; a positive degree maintains that many mesh connections.
  • -broadcast and UDP port 9000 control default mesh discovery.

Do not confuse a mesh context with a minimega namespace. Contexts isolate clusters at process startup; namespaces isolate and schedule experiment state inside a running cluster.

Namespaces

The active namespace scopes VMs, taps, captures, VLAN aliases, and other state. The default namespace is minimega.

text
namespace                         # list namespaces
namespace experiment-a            # create/select namespace
namespace experiment-a vm info    # run one command in a namespace
ns hosts                          # list active namespace hosts
clear namespace                   # return to default namespace
clear namespace experiment-a      # destroy namespace and its resources

A new clustered namespace normally contains mesh nodes except the local head node. With no mesh peers, it contains the local node. ns add-hosts only accepts hosts already present in the mesh.

VM configuration and lifecycle

minimega supports kvm, container, and android VM types. vm config is mutable namespace-local state copied into every subsequently launched VM; it does not retroactively change existing VMs.

text
vm config                         # inspect current defaults
vm config disk image.qcow2
vm config net LAN
vm launch kvm node1               # create VM in BUILDING state
vm start node1                    # start created VM
.columns name,state vm info
vm stop node1
vm kill node1
clear vm config                   # reset current VM configuration

KVM can boot from a disk, CD-ROM, or kernel/initrd pair. Bare-metal firmware and RTOS guests use KVM with vm config baremetal true. They require a kernel image and reject the miniccc backchannel, bidirectional copy and paste, virtio serial ports, disks, CD-ROMs, migrated VM state, and TPM devices, so clear those from vm config before launching. A bare-metal VM with any vm config net entry must also set vm config baremetal-network-driver <model>, because the board-integrated NIC is not exposed through QEMU device discovery; without the driver, launch fails. QMP lifecycle control, serial sockets, and tap networking remain available.

Containers require a filesystem containing their init executable. Android VMs require an AVD name, KVM, and discoverable emulator and adb tools; android-sdk and android-avd-dir are optional overrides. Disk snapshot mode defaults to true, so writes normally do not modify the source image.

When ns queueing true is active, vm launch <type> <name> queues VMs. Run vm launch with no additional arguments to flush the queue and invoke the scheduler.

Show full SKILL.md (586 more words)Show less

Command usage and integration

  • Run help for command groups and help <command> for exact syntax. Treat generated help and the implementation as authoritative.
  • Commands entered at the prompt, through -e, over the command socket, or over meshage use the same command set.
  • Output modifiers such as .columns, .filter, and .annotate false precede the command and produce stable, narrow output for automation.
  • Use pkg/miniclient for Go integrations instead of implementing the socket framing again.
  • lib/minimega.py is not checked in; lib/ is ignored by git and the file only exists after scripts/build.bash generates it with pyapigen from the built binary. Never edit it directly, and do not report it missing from a fresh checkout.
  • Use phenix mm <minimega command...> when debugging through a phēnix deployment.
  • Reproduce FIREWHEEL-generated commands directly in minimega when debugging model component or experiment-control failures.

Common command areas include:

text
check                              # report external dependency availability
host name                          # inspect local host
mesh status                        # inspect cluster connectivity
vm info                            # inspect VMs
vlans                              # inspect allocated VLANs
file list                          # inspect iomeshage files
cc clients                         # inspect miniccc clients
capture                            # inspect active captures

Consult command help before mutating state; subcommand requirements evolve.

Gotchas

  • Do not use -force casually. It repopulates a base directory that appears occupied; first confirm no live instance owns it.
  • A daemon needs -nostdin. Closing stdin otherwise causes minimega to exit.
  • Use disconnect, not quit, from -attach. quit stops the daemon.
  • Match -base for -e and -attach. The wrong base targets a different socket or reports no running instance.
  • Relocating MM_BASE in Docker. The mm wrapper and Compose health check honor MM_BASE from the container environment, but not a value set only in /etc/default/minimega; pass -base=<path> in that case and update the /tmp/minimega volume mount if the host needs the socket or files.
  • vm launch does not mean running. Without namespace queueing it creates a VM, then vm start starts it; with queueing it only enqueues until flushed.
  • vm config persists. Clear or explicitly replace prior values before launching a different VM class; bare-metal launches reject leftover disks.
  • Relative images use -filepath. A path valid in the shell may not resolve as expected inside minimega or its container.
  • Android capacity is finite. Emulator console/ADB port allocation currently limits each host to 64 active Android VMs, or fewer when ports are occupied.
  • Namespace deletion is destructive. It kills VMs and removes namespace captures, VLAN aliases, and taps.
  • Most functional operations alter the host. Use an isolated Linux system for privileged tests involving KVM, Open vSwitch, taps, mounts, or cgroups.
  • Do not parse default tables by column position. Select columns explicitly because command output is also consumed by phēnix, FIREWHEEL, and scripts.

Troubleshooting

SymptomLikely cause or fix
Existing instance not foundPass the same -base used to start it and verify <base>/minimega exists.
Startup warns about missing toolsRun check; install only dependencies required by the intended VM/network operation.
VM remains BUILDING or enters ERRORInspect vm info, minimega logs, QEMU/KVM availability, image paths, and Open vSwitch state.
Cluster peers are absentConfirm matching -context, broadcast domain, port, and nonzero -degree; use mesh commands for manual links when broadcast is unavailable.
VM image is not foundCheck -filepath, container mounts, iomeshage availability, and whether the command used a relative path.
phēnix operation fails in minimegaRun the equivalent raw command with phenix mm, then inspect namespace, VM, file, and miniccc state.
FIREWHEEL operation fails in minimegaCapture the generated minimega command, reproduce it directly, then inspect host, namespace, VM, network, and miniccc state.

References

Repository paths, relative to the minimega repository root:

  • doc/content/articles/usage.md: startup, scripts, command socket, mesh operation, and logging.
  • doc/content/articles/namespaces.md: namespace scheduling.
  • doc/content/articles/vmtypes.md: KVM and container behavior.
  • docker/README.md: container operation and configuration.

External:

© sandia-minimega, GPL-3.0-only. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/minimega of sandia-minimega/minimega.

  • SKILL.md
  • examples/minimal-kvm.mm
  • references/configuration.md

Open the folder on GitHubat commit 5e04099

Compare with similar skills

Minimega next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Minimega compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Minimega this skillsandia-minimega/minimega160—~3.2kAutomated safety check: PassGPL-3.0-only
Setup Cpu Proxy Serverdrawthingsai/draw-things-community584—~3.8kAutomated safety check: PassGPL-3.0
Alibabacloud Ecs Sec Userspacealiyun/alibabacloud-ecs-troubleshoot-skills148—~2.6kAutomated safety check: NotesApache-2.0
Podmansickn33/agentic-awesome-skills47k1 repos~2.2kAutomated safety check: NotesMIT
Sshepherdsickn33/agentic-awesome-skills47k1 repos~1.6kAutomated safety check: WarnMIT
PodmanBagelHole/DevOps-Security-Agent-Skills1.2k—~1.9kAutomated safety check: NotesMIT

Similar skills

  • Setup Cpu Proxy Server

    drawthingsai/draw-things-community

    Set up and verify a new Draw Things CPU proxy and Envoy server using the scripts in Scripts/ServerManagement/CPUScript.

    584 GitHub stars~3.8k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Alibabacloud Ecs Sec Userspace

    aliyun/alibabacloud-ecs-troubleshoot-skills

    Linux 用户态安全入侵检测与取证工具,专为 AI Agent 设计。自动判断服务器是否被入侵, 提供完整证据链和可执行修复建议。51 个安全分析器覆盖进程/网络/认证/持久化/Rootkit/ 恶意软件/内存取证/容器逃逸等 12 类检测维度,10 个数据采集器全面采集系统状态, 映射 103+ MITRE ATT&CK 技术,支持 standalone/docker/k8s 三种部署模式。

    148 GitHub stars~2.6k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes
  • Podman

    sickn33/agentic-awesome-skills

    Manage containers using Podman, the daemonless container engine.

    47k GitHub starsUsed in 1 repo~2.2k tokens
    DevOps & CloudAuto-check: notes
  • Sshepherd

    sickn33/agentic-awesome-skills

    Zero-knowledge SSH ops CLI — server health checks, docker/systemd control, log tailing, Postgres introspection, and declarative deploys, without ever exposing credentials to the agent.

    47k GitHub starsUsed in 1 repo~1.6k tokens
    DevOps & CloudAuto-check: warnings
  • Podman

    BagelHole/DevOps-Security-Agent-Skills

    Manage containers using Podman, the daemonless container engine.

    1.2k GitHub stars~1.9k tokensUpdated 4 mo ago
    DevOps & CloudAuto-check: notes
  • Environment Setup Assistant

    ArabelaTso/Skills-4-SE

    Generate setup scripts and instructions for development environments across platforms.

    253 GitHub stars~3k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check: notes

Categories

Questions about Minimega

What does Minimega do?

This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API…. Minimega is an agent skill from sandia-minimega/minimega. This skill should be used when the user asks how to configure, run, automate, integrate, or troubleshoot minimega (VMs, namespaces, VLANs, clusters, miniccc, miniweb, command socket or Python API, Docker or systemd deployment, phēnix or FIREWHEEL integration), or when changing code that defines minimega startup flags, CLI commands, or other externally visible behavior.

When should I use Minimega?

Minimega fits situations like: asks how to configure; troubleshoot minimega (VMs; systemd deployment; FIREWHEEL integration).

How do I install Minimega in Claude Code?

Run `npx skills add sandia-minimega/minimega --skill minimega -a claude-code`. Or copy the skill folder (skills/minimega in sandia-minimega/minimega) into .claude/skills/minimega in your project. Claude Code loads it when a task matches its description.

How do I install Minimega in Codex?

Run `npx skills add sandia-minimega/minimega --skill minimega -a codex`. Or copy the skill folder (skills/minimega in sandia-minimega/minimega) into .agents/skills/minimega in your project. Codex loads it when a task matches its description.

Can I use Minimega in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sandia-minimega/minimega --skill minimega -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/minimega, .gemini/skills/minimega, .github/skills/minimega and .opencode/skills/minimega in your project.

What does Minimega need to run?

Going by SKILL.md and its folder, Minimega needs the command-line tools its instructions call (docker). Our summary lists: Python 3; Docker.

Does Minimega access the network?

SKILL.md names 2 domains. As links in the text: github.com and sandia-minimega.github.io. This is read from the text; nothing was executed.

Is Minimega safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Minimega use?

Minimega is published under the GPL-3.0-only licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Minimega use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Minimega?

Skills that share tags, products or a category with Minimega: Setup Cpu Proxy Server (drawthingsai/draw-things-community, 584 stars), Alibabacloud Ecs Sec Userspace (aliyun/alibabacloud-ecs-troubleshoot-skills, 148 stars), Podman (sickn33/agentic-awesome-skills, 47k stars) and Sshepherd (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Minimega?

sandia-minimega (a GitHub organization) maintains it in sandia-minimega/minimega, which has 160 GitHub stars. The repository was last updated on October 6, 2026.

Source: sandia-minimega/minimega on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.