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.
npx agentmods add instructions/dustintrap/kvm-pilot/claude-mdgit clone --depth 1 https://github.com/DustinTrap/kvm-pilotWrote 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.
[](https://agentmods.dev/instructions/dustintrap/kvm-pilot/claude-md)<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>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.
| Model | Per session | Once 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 |
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.
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.mdfirst, 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.mdis 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-pilotships everything the user needs. Every user-facing surface — the CLI, the bundled Claude skill, the MCP server, and anything added going forward — must live undersrc/kvm_pilot/so it lands in the wheel, and a surface's runtime dependency is a base dependency inpyproject[project].dependencieswith a console script (kvm-pilot,kvm-pilot-mcp). Don't hide a user-facing surface behind an opt-in extra. (devtooling 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 (mcpfor the server,pyotp/wsfor a feature) is imported lazily inside its own subpackage/function (seehttp.py:_totp_now,client.py:watch_events/_connect_event_ws), never at core import. The distribution depends onmcp(the bundled server) andwebsocket-client— that's deliberate; see [batteries-included rule above and issue #109].websocket-clientbecame a base dependency once headless GLsnapshotneeded 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 forcalibrate-mouse(#244) — a user-facing CLI/MCP surface cannot depend on an extra.totpremains an opt-in extra;wsandcalibrateare 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 aclaude-*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_OPSinsrc/kvm_pilot/safety.pyand routed throughself.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 bareinfo/snapshotas 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). Seedocs/architecture.md.
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.
- 5d ago First seen · 150 lines · 2,625 tokens per session scan A bddc200969fa
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.
Other instructions, from other repositories
micropython-stubs copilot-instructions.md
Copilot instructions for Josverl/micropython-stubs, covering micropython-stubs repository guide, project overview, repository structure, key concepts and stub types (half-products).
pypylon AGENTS.md
Instructions for basler/pypylon, covering agents.md, repository map, environment, common commands and or, to (re)build in place after changing bindings.
robots AGENTS.md
AGENTS.md instructions for strands-labs/robots, covering agents.md - strands-labs/robots, project dashboard, repository structure, development and install with all optional deps.
uiprotect AGENTS.md
AGENTS.md instructions for uilibs/uiprotect, covering notes for llm contributors, what this project is, code style, commit / pr conventions and running tests.
iaqualink-py CLAUDE.md
Claude Code instructions for flz/iaqualink-py, covering claude.md, confidentiality, project overview, development commands and architecture.
pymobiledevice3 CLAUDE.md
Claude Code instructions for doronz88/pymobiledevice3, a project described as: Pure python3 implementation for working with iDevices (iPhone, etc...).