-
Notifications
You must be signed in to change notification settings - Fork 0
getting started
This is the fastest path from zero to "my agent is operating a remote machine through its KVM." It targets the agent + MCP workflow (Claude Code, Claude Desktop, or any MCP host). For the Python library and CLI, see the README.
⚠️ Beta. The core read paths are live-verified on GL-RM1PE (the Hardware-Compatibility list shows what's actually been exercised); treat anything not on that list as unverified, and confirm destructive steps (power, media, keystrokes) before running them.
pip install --pre kvm-pilotkvm-pilot is a pre-release, so --pre is required — a bare pip install kvm-pilot deliberately installs nothing. One install brings the kvm-pilot CLI,
the kvm-pilot-mcp server, and the bundled Claude skill.
The skill ships inside the package; to have Claude Code discover it, copy it into your skills directory:
kvm-pilot install-skill # → ~/.claude/skills/kvm-pilot (re-run after upgrading)then restart the Claude Code session so it loads (--dry-run previews,
--uninstall removes it).
The pip install above provides the kvm-pilot-mcp launcher; your agent still
has to be told to load it. You can just ask your agent — e.g. "load the kvm-pilot
MCP server that pip installed and walk me through enabling it" — or register it
yourself. On Claude Code:
claude mcp add kvm-pilot -s user \
-e KVM_PILOT_PROFILE=<profile> -e KVM_PILOT_MCP_READ_ONLY=1 -- \
kvm-pilot-mcp-
-s user(not-s local) makes it available no matter which directory you launch the agent from — a-s localregistration only loads in the current project's directory. -
KVM_PILOT_MCP_READ_ONLY=1is the safest first rung: destructive tools aren't registered at all, so the agent can run status reports, healthchecks, and snapshots but cannot touch power, keyboard, or media. Climb the trust ladder as your hardware gets verified: swap it forKVM_PILOT_MCP_DRY_RUN=1to rehearse destructive flows (calls logged, not sent), then open the per-effectKVM_PILOT_MCP_ALLOW_*gates one at a time (see the MCP server README).
Then restart your agent session. MCP servers load at session start, so on Claude Code you must exit your current session and start a new one for the tools to appear. On relaunch you may get a prompt asking you to activate the kvm-pilot MCP interface — accept it.
Verify it's live:
claude mcp list # expect: kvm-pilot ... ✔ Connectedor ask the agent to list its tools and look for mcp__kvm-pilot__* (e.g.
mcp__kvm-pilot__snapshot).
For a quick test, set the KVM's password in your agent's environment — most agents accept a plain instruction like:
set KVM_PILOT_PASSWD=<your-kvm-password>
(and KVM_PILOT_HOST / KVM_PILOT_USER if you aren't using a profile). This is
per-session and stored in plaintext in the agent's environment — fine for a
first run, not for anything lasting.
For anything persistent, put a profile in
~/.config/kvm-pilot/config.toml and reference it with KVM_PILOT_PROFILE, so the
password lives in a chmod 600 file rather than the agent/host config. See
Configuration for the file format, every KVM_PILOT_*
variable, and precedence.
GLKVM (GL.iNet) devices: the PiKVM REST API is disabled by default on GL firmware. Enable it in
/etc/kvmd/nginx-kvmd.confon the device first, or every call returns 404 — and note a firmware upgrade can revert it.
This trips up almost every first run. There are two machines:
- The KVM appliance (PiKVM / GL-RM1PE / BliKVM) — it has its own IP, e.g.
10.0.1.11. That's the address you give kvm-pilot. - The connected server — the machine the KVM plugs into and controls. It's a separate host with its own IP, OS, and SSH.
kvm-pilot acts on the connected server through the KVM (power, screen,
keyboard). Rebooting the KVM appliance itself is a different, separately
gated action (the appliance_reboot tool, or SSH to the appliance). So phrase
prompts about the server behind the KVM, e.g. "on 10.0.1.11's connected
server," to avoid ambiguity.
Use kvm-pilot for a status report on 10.0.1.11's connected server
Use kvm-pilot to reboot 10.0.1.11's connected server
Use kvm-pilot to install Red Hat Enterprise Linux on 10.0.1.11's connected server
Use kvm-pilot to troubleshoot 10.0.1.11's connected server — it's <describe the problem>
Start with the status report — it's read-only and runs the healthcheck, so it's the safe way to confirm everything's wired up before you touch power or media.
A healthy status report reads roughly like this (abridged):
Status Report — 10.0.1.11
KVM Device
Driver PiKVM
Model v3 (Rockchip RV1126B)
Firmware (KVMD) 4.82
Connected Server
Power On (video signal detected)
Screen Black / blank (display may be asleep or at a dark console)
ATX Control Not wired — no remote power/reset capability
Virtual Media Available, no image attached
Health Summary
API Reachable OK
Video Signal OK
Recovery Path CRITICAL — no ATX cable, can't remotely power-cycle a hung server
TLS Verification WARNING — disabled (self-signed cert, MITM risk on LAN)
Two things to internalise from that example:
-
Read the
Recovery Pathfinding.CRITICALhere means there's no out-of-band reset — if the server hangs you can't power-cycle it through the KVM. Wire the ATX cable to the server's front-panel header to fix it. -
"Power: On" is not always the truth. On devices where power readings aren't
trustworthy (no ATX board), a live "power on" can come from an HDMI handshake
while the server is actually off or asleep — which is why the screen is black.
Don't take
powered_on: trueas proof the OS is up; confirm with the screen and, if you can reach it, an SSH check to the server.
A short list that saves most new users their first few mistakes:
-
Start read-only. A status report and the healthcheck change nothing — run them first to confirm the wiring and surface risks (like a missing ATX cable) before you touch power or media.
-
Keep dry-run on at first. With
KVM_PILOT_MCP_DRY_RUN=1, destructive tool calls are logged instead of sent. Drop it per-flow once you trust it. -
Run the healthcheck before anything destructive. It's the intake gate; a
CRITICALfinding (e.g. no recovery path) is your cue to stop and wire hardware or line up a remote fallback before committing to a remote power/boot/install. -
Use a profile, not an env password, for anything you'll reuse — it keeps the credential in a
chmod 600file, out of shell history and agent config. -
Name the machine you mean — "the connected server behind the KVM at
<ip>" vs. "the KVM appliance itself" (see §4). Ambiguity here causes wrong-target ops. -
Installing an OS? Decide whose locale wins. The installer's language / keyboard-layout / timezone prompts describe the target server, not your laptop. Your agent should ask whether your local settings apply — answer deliberately for a machine in another region instead of accepting your own locale by default.
-
Parallelize read-only work — ask for
healthcheck+info+logsat once; never parallelize destructive steps. -
Once the server's OS is on the network, prefer SSH to it for in-band work — it's faster and more reliable than typing through the KVM's keyboard. Have the server's IP / hostname / FQDN ready (it's not the KVM's address).
-
A black screen isn't necessarily "off." See §6 — confirm with the screen and an SSH reachability check, not the power reading alone.
-
Close the loop — this beta runs on community evidence. After a good first run,
kvm-pilot test-report --profile <p>probes your device (read-only by default) and appends an evidence row you can paste into a two-minute hardware report. Success or failure both count — a failure report on your device+firmware is exactly what moves the Hardware-Compatibility matrix, and the hourly ingest does the rest automatically.
New to this? Your agent can also just walk you through it — ask it to "get me started with kvm-pilot" and it will point you back here and offer the safe first steps.
- Claude skill — how the agent chooses the best interface per action, and its safety rules.
-
MCP server
— the full operator guide (tools, env vars, dry-run, the
powergate). -
Configuration — profiles and every
KVM_PILOT_*variable.
- CLI reference
- Configuration
- Driver features
- Architecture
- Redfish reference
- Intel AMT vPro reference
- Firmware registry
- Claude skill
- Skill playbook: interfaces
- Skill playbook: recovery
- Skill playbook: setup & gates
- Skill playbook: Linux installs
- Skill playbook: target context
- Skill playbook: Python library
- MCP server
- Hardware compatibility