agentmeter CLAUDE.md

A project instruction file for AgentMeter, a command-line tool that tracks AI-agent token use and estimated costs in a local SQLite database. It also documents the terminal reports, web dashboard, exports, budget alerts, and development commands.

In plain words
What is it for?
Use it when building, testing, type-checking, developing, or modifying AgentMeter and its Claude Code tool-use hook.
Why use it?
It gives coding agents the repository’s architecture, data flow, supported commands, and test expectations so they can change the project consistently.

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/ymstar/agentmeter/claude-md
Clone the repo
git clone --depth 1 https://github.com/ymstar/agentmeter
Per session 1,296 This file is loaded in full into every session.
When invoked 1,296 The same file — it is already loaded in full.
Security scan B 1 finding. 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.01296 $0.01296
Opus 5 $0.00648 $0.00648
Sonnet 5 $0.00259 $0.00259
Haiku 4.5 $0.00130 $0.00130

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

Security

Grade B, and why

agentmeter CLAUDE.md scanned grade B with 1 finding 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 2d 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.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

1. `init` command writes a `PostToolUse` hook into `~/.claude/settings.json` that runs `npx -y @ymstar/agentmeter hook`
CLAUDE.md · 106 lines

How it starts

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

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What is AgentMeter?

AgentMeter (@ymstar/agentmeter) is a CLI that tracks token consumption for AI agents (Claude Code, Cursor, Gemini CLI). It hooks into Claude Code's PostToolUse event to capture every tool call, records token usage and estimated costs into a local SQLite database, and provides terminal stats, a web dashboard, CSV/JSON export, and budget alerts.

Commands

npm run build          # Compile TypeScript to dist/ + copy dashboard static assets
npm run test           # Run all tests (vitest run)
npm run dev            # Watch mode compilation (tsc --watch)
npx tsc --noEmit       # Type-check only (used in CI lint job)

There is no linter or formatter configured. CI type-checks with npx tsc --noEmit on Node 20 and 22.

Architecture

ES modules ("type": "module" in package.json). Target ES2022 with Node16 module resolution.

Data Flow

  1. init command writes a PostToolUse hook into ~/.claude/settings.json that runs npx -y @ymstar/agentmeter hook
  2. Claude Code fires the hook after every tool use, passing tool name, input, response, session_id, model, agent_type, cwd via stdin JSON
  3. hook command parses stdin, detects model/agent type via fallback chains, estimates tokens (three-layer: parse MCP usage fields → estimate from text at 4 chars/token ASCII, 2 chars/token CJK → character count), calculates cost, inserts into SQLite
  4. SQLite lives at ~/.agentmeter/meter.db

Key Modules

  • src/index.ts — CLI entry point using node:util parseArgs. Routes to: init, hook, stats, dashboard, budget, export
  • src/commands/hook.ts — Core data collection. Contains detectModel() (input → env vars → settings file → default Sonnet) and detectAgentType() (input → env vars → UUID pattern → ~/.claude existence)
  • src/db/client.tsMeterDB class wrapping better-sqlite3. Single tool_calls table with migration support (adds columns via ALTER TABLE based on PRAGMA table_info). WAL mode enabled
  • src/token/pricing.ts — Hardcoded MODEL_PRICING table for Claude, GPT, and Gemini models. Unknown models default to Claude Sonnet pricing
  • src/dashboard/server.ts — Raw node:http server (no framework). REST API at /api/overview, /api/daily, /api/tools, /api/sessions, /api/models, /api/agents, /api/calls. Default port 3940

Read the full file on GitHub · 106 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. 2d ago First seen · 106 lines · 1,296 tokens per session scan B 89619d9f2f63

Subscribe to this mod's changes

agentmeter CLAUDE.md is an instructions file published in the GitHub repository ymstar/agentmeter (1 stars, last pushed 3mo ago), licensed MIT. It adds 1,296 tokens to every session, about $0.0065 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories