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/erikvankempen/bukio-cli/agents-mdgit clone --depth 1 https://github.com/erikvankempen/bukio-cliWrote 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/erikvankempen/bukio-cli/agents-md)<a href="https://agentmods.dev/instructions/erikvankempen/bukio-cli/agents-md"><img src="https://agentmods.dev/badge/instructions/erikvankempen/bukio-cli/agents-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.24344 | $0.24344 |
| Opus 5 | $0.12172 | $0.12172 |
| Sonnet 5 | $0.04869 | $0.04869 |
| Haiku 4.5 | $0.02434 | $0.02434 |
Grade A, and why
bukio-cli AGENTS.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 3d 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 — 953 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md — bukio-cli Agent Manual
This file is the agent's manual for bukio-cli. Read it before driving the tool. It assumes you have shell access to the machine where bukio-cli is installed and that bukio is on PATH (or run node /path/to/bukio-cli/bin/bukio.js).
1. House rules (non-negotiable)
- Dry-run before you mutate. Every mutating command accepts
--dry-run. Run it, read the plan, then run without--dry-run. - Identify yourself. Every command requires a named actor:
--actor '<role>:<name>'or envBUKIO_ACTOR—agent:bartholomeusfor the agent,human:erikfor the owner. A barehuman/agentis rejected (ACTOR_REQUIRED/INVALID_ACTOR); anonymous actors would pollute the audit trail. - Parse
--json, never scrape text. Every command prints one JSON document with--json. Exit code 0 = success, 1 = failure. - Never touch the SQLite file directly. No sqlite3 CLI, no raw SQL. The engine + triggers exist to protect the books. If you need a capability that doesn't exist, say so instead of hacking the DB.
- Never delete posted entries. Correct mistakes with
entry reverse(which posts a contra-entry) and re-book. - Verify after every mutation. At minimum:
bukio report trial-balance --json→data.balancedmust betrue(when you've posted anything). - Money is integer cents.
amount_centsin JSON is the truth.amountstrings are for humans. No floats, ever. - Archive every source document. When booking an invoice (or any posted document — purchase invoice, credit note, bank proof), copy the original PDF/image/XML to
~/.bukio/invoices/next to the live DB before finishing, namedYYYY-MM-DD_<vendor-slug>_<invoice-number>.<ext>(see 6.17). The books then carry their paper trail. - Every source file carries the license header. New
.js/.mjsfiles start with the standard header — project name, copyright Erik van Kempen,SPDX-License-Identifier: Apache-2.0— copied verbatim from any existingsrc/file (shebang files keep the shebang on line 1, header after). Never drop, edit, or reorder it. - Signing is required once a company enforces it.
bukio actor enforce --onmakes a valid actor signature mandatory: unsigned or unverifiable commands are refused before anything is written. Never work around an enforced company — not with--dry-run(also refused), not with a different--actor(must be enrolled), not by disabling the gate. Only an enrolled actor can disable enforcement (actor enforce --offis refused for unenrolled/keyless actors) — and it is an audited act: ask first. Consequence accepted by design: if all enrolled keys are lost, the CLI is locked out on that company (recovery = restore a backup, or the owner edits the DB directly). - Enrol per company — and enrol before enforcing. An actor's key is enrolled per company DB (
bukio actor registerruns against the current--db). Register in every company the actor works in; a key valid in one company is not valid in another. First enrolment is operator-gated: underactor enforce on, registering a brand-new actor is refused (ACTOR_KEY_UNKNOWN) — an already-enrolled actor (the operator) must flipenforce --off(itself refused for unenrolled actors) →actor register→enforce --on, each an audited act. Rotation re-enrolment stays possible under enforce (the revoked actor'sactor registeris exempt — it is the only way back in). If a command is refused withACTOR_KEY_UNKNOWN/ACTOR_KEY_REVOKED, runbukio actor verifyand fix enrolment or rotate (actor keygen --force+actor register). - Human keys are passphrase-protected; use sessions.
human:keys are encrypted — runbukio actor unlockonce per session (default 12 h,--ttl-hoursto change) or setBUKIO_SIGNING_PASSPHRASE;actor lockclears the session. Never store a passphrase in a script next to the key; prefer the session for interactive work. - Cron/system actors sign from their key file.
system:/agent:keys are plain files — a cron job or agent that has the key file signs automatically. Give unattended jobs their own actor (system:backup,system:cron) with its own enrolled key, so the audit trail shows which system acted.--sign-key <path>overrides the key file; the resolution order is--sign-key→ session →BUKIO_SIGNING_PASSPHRASE→<config>/keys/<role>-<name>.key.
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.
- 3d ago First seen · 953 lines · 24,344 tokens per session scan A 18e4164a691e
bukio-cli AGENTS.md is an instructions file published in the GitHub repository erikvankempen/bukio-cli (1 stars, last pushed 10d ago), licensed Apache-2.0. It adds 24,344 tokens to every session, about $0.1217 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
noxctl CLAUDE.md
Instructions for Magnus-Gille/noxctl, covering claude.md — noxctl, what is this?, cli-first in claude code, reading data and dry run first.
ledger AGENTS.md
AGENTS.md instructions for eternal-roman/ledger, covering ledger, zero-skip, non-negotiable, output contract and commands (when the host loads this plugin).
ledger copilot-instructions.md
Copilot instructions for eternal-roman/ledger: Follow AGENTS.md and skills/ledger/SKILL.md.
counterpoise-ledger CLAUDE.md
Instructions for jeffjjohnston/counterpoise-ledger, covering claude.md, project overview, development commands, essential commands and testing.
lexware-office-mcp CLAUDE.md
Claude Code instructions for benethos-hub/lexware-office-mcp, covering working guidelines for claude, golden rules, environment, project layout and how to add or change a tool.
ledger CLAUDE.md
Claude Code instructions for eternal-roman/ledger: Kernel: AGENTS.md, skills/ledger/SKILL.md. Contribute: CONTRIBUTING.md. Protocol: docs/CORE-PROTOCOL.md.