-
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.
⚠️ Early alpha, largely unverified — treat every result 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 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_DRY_RUN=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_DRY_RUN=1is a safe default: destructive tool calls are logged, not sent. Drop it once you trust a flow.
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, out-of-band
action (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. -
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.
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.
- Home
- Getting started
- Architecture
- CLI reference
- Configuration
- Design decisions
- Reflexes (RFC)
- Redfish reference
- Firmware registry
- Remote firmware update
- Claude skill
- MCP server
- Contributing
- Security policy
- Analysis: 2026-07-01 deep review
- Analysis: 2026-07-03 RM1PE firmware + encoder
- Hardware compatibility