agent-odometer: Instructions file for Codex

AGENTS.md

agent-odometer AGENTS.md is an instructions file for Codex, OpenCode from ekalb81/agent-odometer. It costs 3,047 tokens per session, scanned A, original, MIT.

Repository instructions for Odometer, a desktop app that reads coding-agent session files and displays task, token, subagent, and cost information.

In plain words
What is it for?
Use them before editing Odometer to find the right documentation, run reproducible checks, preserve unrelated work, and create safe test data.
Why use it?
They give coding agents the project context and rules needed to make safe changes without exposing private sessions or breaking its Rust–Svelte design.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: reads $CODEX_HOME, but also the file is AGENTS.md. Also seen: reads .claude/ paths; mentions subagents; mentions Claude Code.

This is ekalb81/agent-odometer's own configuration. It tells Codex and OpenCode how to work on agent-odometer 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 agent-odometer configures →

Reuse

Borrowing it

Nothing to install: this file belongs to ekalb81/agent-odometer. 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/ekalb81/agent-odometer/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/ekalb81/agent-odometer

Made for: Codex, OpenCode.

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 agent-odometer AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/ekalb81/agent-odometer/agents-md/github.svg)](https://agentmods.dev/instructions/ekalb81/agent-odometer/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/ekalb81/agent-odometer/agents-md"><img src="https://agentmods.dev/badge/instructions/ekalb81/agent-odometer/agents-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 agent-odometer AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/ekalb81/agent-odometer/agents-md"><img src="https://agentmods.dev/badge/instructions/ekalb81/agent-odometer/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,047 This file is loaded in full into every session.
When invoked 3,047 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.03047 $0.03047
Opus 5.5 $0.01219 $0.01219
Sonnet 5.5 $0.00609 $0.00609
Haiku 4.5 $0.00305 $0.00305

Measured 24d ago against content hash 4aacc2fa429a, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

agent-odometer 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 24d 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.

AGENTS.md · 109 lines

How it starts

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

AGENTS.md

These instructions apply to the entire repository.

Project purpose

Odometer is a local Tauri companion to agent CLI harnesses: the ChatGPT desktop app's Codex experience and Claude Code. It reads each harness's session JSONL files and presents searchable task, turn, token, subagent, and estimated cost data in per-harness tabs. Rust owns filesystem access, parsing, persistence, pricing, and Tauri IPC; Svelte owns filtering, presentation, and aggregation of already-priced values.

Start with README.md for commands and docs/ARCHITECTURE.md for the data flow, contracts, invariants, and known limitations.

Before changing code

  • Run git status --short and preserve unrelated work. Do not normalize or rewrite existing files as a side effect.
  • Treat src-tauri/gen/schemas/ as generated. Do not hand-edit it; commit generated changes only when an intentional Tauri capability/configuration change requires them.
  • Both lockfiles are authoritative and should stay committed. Use npm ci and Cargo's --locked flag for reproducible validation.
  • Never commit real Codex sessions, prompts, local paths, credentials, or platform config. Parser fixtures must be synthetic or thoroughly redacted.

Architecture boundaries

  • Keep filesystem access and JSONL parsing in Rust. The frontend should receive typed data through Tauri commands/events, not read session files directly.
  • Keep pricing in the shared Rust query service (query.rs and query_desktop.rs). Frontend code may sum returned costs and use src/lib/currency.ts for presentation, but must not resolve rates or calculate token prices. Preserve the frozen bucket and detail pricing oracles; do not restore a duplicate TypeScript calculator in tests or browser mocks.
  • Saved rate-card replacements invalidate priced responses by object identity, even when RateCard.version is unchanged. Preserve raw totals, mark obsolete costs unavailable, and refetch batched prices; reject superseded successes and failures before updating caches or tray output.
  • Put Rust commands in src-tauri/src/commands.rs, register them in src-tauri/src/lib.rs, and expose typed frontend wrappers in src/lib/ipc.ts.
  • Keep Rust serialized structs and src/lib/types.ts synchronized. Add backward-compatible Serde defaults when persisted or historical data may omit a new field.
  • Event names are contracts: session-updated (payload: SessionSummary), session-removed, scan-progress (payload: ScanStatus), history-progress (payload: HistoryStatus), config-updated, and rates-updated. Update every producer and listener together. Full sessions travel only through get_session_details; keep SessionSummary free of turns/tokens_history — the split exists because full sessions measured ~200 MB across a real corpus.
  • history-progress (#116) mirrors scan-progress's contract for the durable-history archive: AppState starts in a third Pending state (distinct from an archive that is genuinely Unavailable) until commands::spawn_history_open resolves it on a background thread, emitting one event per migration step plus a terminal ready/unavailable event. The frontend calls get_history_status once on mount (events may have already fired) and then follows the event, matching scan-progress/get_scan_status. commands::sessions_in_ranges — the ledger accounting authority — checks AppState::history_readiness() directly and returns an explicit "still preparing" error while Pending, rather than falling back to a partial in-memory answer that would look complete.
  • Use the established Svelte 5 rune style ($state, $derived, $effect). Module-level rune state belongs in *.svelte.ts files.
  • Keep Tauri capabilities minimal. Do not add remote content, network access, shell execution, or broader capabilities without an explicit requirement and a security review. Current exceptions: updater:default and process:allow-restart exist solely for the in-app auto-updater.

Read the full file on GitHub · 109 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. 24d ago Changed 4aacc2fa429a
  2. 1mo ago Changed · +2 lines · +181 tokens per session b9fd3f42ad06
  3. 2mo ago First seen · 107 lines · 2,866 tokens per session scan A 685232fbd47e

Subscribe to this mod's changes

agent-odometer AGENTS.md is an instructions file published in the GitHub repository ekalb81/agent-odometer (2 stars, last pushed today), licensed MIT. It adds 3,047 tokens to every session, about $0.0122 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

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,715 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,461 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,750 tokens

deno copilot-instructions.md

Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.

denoland/deno · 3,077 tokens