kvm-pilot: Instructions file for Claude Code

CLAUDE.md

kvm-pilot CLAUDE.md is an instructions file for Claude Code from DustinTrap/kvm-pilot. It costs 2,657 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 for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: reads .claude/ paths; mentions CLAUDE.md.

This is DustinTrap/kvm-pilot's own configuration. It tells Claude Code how to work on kvm-pilot itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything kvm-pilot configures →

Reuse

Borrowing it

Nothing to install: this file belongs to DustinTrap/kvm-pilot. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/DustinTrap/kvm-pilot/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/DustinTrap/kvm-pilot

Made for: Claude Code.

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/github.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/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for kvm-pilot CLAUDE.md

Your own site · 80×15
<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="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,657 This file is loaded in full into every session.
When invoked 2,657 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.02657 $0.02657
Opus 5.5 $0.01063 $0.01063
Sonnet 5.5 $0.00531 $0.00531
Haiku 4.5 $0.00266 $0.00266

Measured 22d ago against content hash 346d5545ee5c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, 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 22d 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 · 151 lines

How it starts

The opening of the file, as written. The whole thing — 151 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. 1.0, GA (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 · 151 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. 22d ago Changed · +1 lines · +30 tokens per session 346d5545ee5c
  2. 23d ago Changed · +2 tokens per session 805fe8528464
  3. 2mo 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 (16 stars, last pushed 8d ago), licensed Apache-2.0. It adds 2,657 tokens to every session, about $0.0106 per session on Opus 5.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.

Related

kvm-pilot CLAUDE.md compared with instructions from other repositories

kvm-pilot CLAUDE.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
kvm-pilot CLAUDE.mdDustinTrap/kvm-pilotInstructions file168d agoApache-2.0A2,657Claude Code
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143kyesterdayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode