kvm-pilot CLAUDE.md

kvm-pilot CLAUDE.md is an instructions file for coding agents from DustinTrap/kvm-pilot. It costs 2,625 tokens per session, scanned A, original, Apache-2.0.

Repository guidance for kvm-pilot, a Python command-line client for IP-KVM devices. An IP-KVM lets you control and view a computer remotely, and this project uses AI to classify what stage that computer is in from a screenshot.

In plain words
What is it for?
Use it when modifying the Python client, command-line tools, device integrations, screenshot classification, health checks, logs, or project workflow.
Why use it?
It gives agents the current project rules, device-support boundaries, and session-resume process needed for safe changes.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/dustintrap/kvm-pilot/claude-md
Clone the repo
git clone --depth 1 https://github.com/DustinTrap/kvm-pilot

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for kvm-pilot CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/dustintrap/kvm-pilot/claude-md.svg)](https://agentmods.dev/instructions/dustintrap/kvm-pilot/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/dustintrap/kvm-pilot/claude-md"><img src="https://agentmods.dev/badge/instructions/dustintrap/kvm-pilot/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 2,625 This file is loaded in full into every session.
When invoked 2,625 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.02625 $0.02625
Opus 5 $0.01313 $0.01313
Sonnet 5 $0.00525 $0.00525
Haiku 4.5 $0.00263 $0.00263

Measured 5d ago against content hash bddc200969fa, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

kvm-pilot CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 150 lines

How it starts

The opening of the file, as written. The whole thing — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

Guidance for AI agents (and humans) working in this repo.

Starting a session? Read RESUME.md first, if present — the current working state, what's in flight, and next steps. It is a local, untracked scratch file (gitignored since #209: it carries fleet/opsec details that must not publish; a fresh clone won't have one — fall back to open issues + the CHANGELOG). It's refreshed by /checkpoint (.claude/skills/checkpoint/) at the end of each session, and never committed. This file is the standing doctrine; RESUME.md is where we are right now.

What this is

kvm-pilot — a stdlib-only Python client + CLI for IP-KVM devices (PiKVM, the GL.iNet GLKVM fork, BliKVM) with a pluggable LLM vision subsystem that classifies a KVM screenshot into a boot/run phase. Beta (current version: src/kvm_pilot/__about__.py — don't restate it here, it drifts). Hardware validation is tracked per device + firmware + capability in the support matrix (#96) and the community Hardware-Compatibility list — that page is the source of truth for what has actually been exercised. GL-RM1PE units have been run live (read/healthcheck/logs on firmware V1.5.1 release2 and V1.9.1 release1; snapshot verified on V1.9.1 only — on V1.5.1 it fails with an undecodable H.264 frame, #107/#151; the remote firmware-flash is a known no-op there, #94/#95), and a Dell iDRAC6 has exercised the IPMI driver live end-to-end (power/boot-device/sensors/SEL/SOL, 2026-07-14), but most device+capability combos remain unverified / mock-only — be honest about that in any docs or messaging: don't claim a feature is "tested" or "beta" beyond what the matrix shows; point readers to it for current truth.

Non-negotiable conventions

  • Consult + update GitHub issues before any meaningful change. This repo is issue-per-finding — an issue is the unit of record. Before editing code for a non-trivial change: search existing issues for one that covers it; if none, open one describing the problem, the decision, and the plan; reference it in the commit/PR and post material findings or scope changes back to the issue. Do not make meaningful changes with no tracked issue.
  • pip install kvm-pilot ships everything the user needs. Every user-facing surface — the CLI, the bundled Claude skill, the MCP server, and anything added going forward — must live under src/kvm_pilot/ so it lands in the wheel, and a surface's runtime dependency is a base dependency in pyproject [project].dependencies with a console script (kvm-pilot, kvm-pilot-mcp). Don't hide a user-facing surface behind an opt-in extra. (dev tooling stays an extra.)
  • Client/driver code is stdlib-only at import time. The library modules (client.py, drivers/, http.py, vision/) import only the standard library; a third-party need (mcp for the server, pyotp/ws for a feature) is imported lazily inside its own subpackage/function (see http.py:_totp_now, client.py:watch_events/_connect_event_ws), never at core import. The distribution depends on mcp (the bundled server) and websocket-client — that's deliberate; see [batteries-included rule above and issue #109]. websocket-client became a base dependency once headless GL snapshot needed it to start GL's on-demand streamer (#142) — a core user-facing surface can't hide behind an extra. Pillow joined base the same way for calibrate-mouse (#244) — a user-facing CLI/MCP surface cannot depend on an extra. totp remains an opt-in extra; ws and calibrate are no-op back-compat aliases.
  • No hard-coded model versions. The Anthropic vision backend resolves the newest model at runtime (src/kvm_pilot/vision/anthropic.py); never bake a claude-* version string into the code.
  • Destructive operations are gated. Any op that can change a target's running state (power, reset, virtual media, GPIO, Redfish reset) must be added to DESTRUCTIVE_OPS in src/kvm_pilot/safety.py and routed through self.safety.guard(op, description). A vision classification must never trigger a destructive action on its own.
  • Preflight before trust (issue #80). Bringing a device into use — first connection, adding a managed profile, or ahead of any destructive/multi-step flow — runs through the device healthcheck (src/kvm_pilot/health.py; run_healthcheck). It is the intake gate, and #80's intent is that it auto-runs on first connection, not only before destructive ops. Today only the destructive-subcommand path auto-gates (cli.py _preflight_gate) and the MCP server does not auto-run it at all — until that gap is closed, the operating procedure (src/kvm_pilot/skill/SKILL.md, src/kvm_pilot/mcp/README.md) requires running it explicitly on first contact. Don't treat a bare info/snapshot as vetting.
  • Capabilities, not a monolith. New device support = a driver implementing the relevant capability protocols in src/kvm_pilot/drivers/base.py (Power, HID, Video, VirtualMedia, GPIO, Events, SystemInfo). See docs/architecture.md.

Read the full file on GitHub · 150 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 150 lines · 2,625 tokens per session scan A bddc200969fa

Subscribe to this mod's changes

kvm-pilot CLAUDE.md is an instructions file published in the GitHub repository DustinTrap/kvm-pilot (5 stars, last pushed 5d ago), licensed Apache-2.0. It adds 2,625 tokens to every session, about $0.0131 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.