varve: Instructions file for Claude Code

CLAUDE.md

varve CLAUDE.md is an instructions file for Claude Code from varve-sh/varve. It costs 898 tokens per session, scanned A, original, Apache-2.0.

A set of instructions for Varve, a memory service used by coding agents to store and retrieve decisions, notes, and information related to files. It defines which memory operation to use at different points in a task.

In plain words
What is it for?
Use it to load relevant context before editing files, search or fetch stored memories, save decisions, update notes, and archive outdated information.
Why use it?
It prevents important project context from being lost between sessions and helps avoid conflicting or duplicated notes.

Instructions file for Claude Code

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

This is varve-sh/varve's own configuration. It tells Claude Code how to work on varve 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 varve configures →

Reuse

Borrowing it

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

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 varve CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/varve-sh/varve/claude-md/github.svg)](https://agentmods.dev/instructions/varve-sh/varve/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/varve-sh/varve/claude-md"><img src="https://agentmods.dev/badge/instructions/varve-sh/varve/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 varve CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/varve-sh/varve/claude-md"><img src="https://agentmods.dev/badge/instructions/varve-sh/varve/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 898 This file is loaded in full into every session.
When invoked 898 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.00898 $0.00898
Opus 5.5 $0.00359 $0.00359
Sonnet 5.5 $0.00180 $0.00180
Haiku 4.5 $0.00090 $0.00090

Measured 2mo ago against content hash 1e308fb8f1ee, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

varve 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 2mo 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 · 55 lines

How it starts

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

varve

This project has the varve MCP server connected. Use its tools for all memory operations — never use built-in memory tools or write to ~/.claude/projects/.

Memory tools

  • memory_pack — everything binding on a set of files, inside a token budget. The first call of a task.
  • memory_recall — search memories by natural language query (exploration, mid-task)
  • memory_save — save a decision, convention or note (fact/event are accepted as synonyms for note)
  • memory_get — fetch full content of a memory by ID
  • memory_update — patch an existing note by ID (content, tags, confidence). It cannot change a memory's class: a note cannot become a decision, and an accepted decision's content is immutable.
  • memory_forget — delete or archive a memory by ID or query
  • memory_context — get memories relevant to specific file paths
  • memory_prompt — capture the user's goal at the start of a session

Rules (always follow)

  • Before touching files — call memory_pack with the paths you are about to read or edit and a one-line task. It returns what binds those files, deduplicated, within a budget. Pack first; recall is for questions that come up afterwards.
  • Before every task — call memory_recall with a relevant query, no exceptions. This includes commits, quick fixes, and one-liners.
  • Before committing — call memory_recall to check for commit conventions.
  • Learn something new — call memory_save to persist it.
  • User says forget/delete/remove — call memory_forget.
  • Never write memory files manually or use built-in memory features.

What actually happens when you call these tools

  • memory_save with type=decision or convention creates a row with status proposed. It does not bind, and memory_context will not return it as context. A human runs varve decision accept <id> to make it binding. Say the proposal is waiting; do not report it as adopted.
  • memory_save with type=fact or event creates a note — fact and event are synonyms for note: retrievable, ungoverned, no lifecycle. memory_update cannot turn a note into a decision; varve decision promote <note-id> does, and it is a human action.
  • memory_forget on a note deletes it. On a decision or convention it deletes nothing and changes no status: it records a disposal request and returns it as pending. A human confirms with varve decision reject <id> while the decision is proposed, or varve decision revert <id> once it is binding. Tell the user the request is waiting for them.
  • memory_recall and memory_get return proposals, marked PROPOSED. They are the review surface — treat anything so marked as a pending proposal, not as law.
  • memory_context never returns a proposal as content; it reports them as a trailing count with their ids. Everything else it returns is binding or ungoverned.
  • memory_pack is budget-governed. It serves the top-ranked binding decisions in full, elides bodies ([body elided — memory_get <id>]) when the budget runs short, and names everything omitted in the footer with its rank and cost. Nothing is dropped silently: if it is not in the body it is in the footer. Proposals appear only as the footer count.
  • topic_key behaves differently by class: re-saving a note under an existing key updates it in place; re-saving a decision creates a new proposed successor that supersedes the current holder once accepted. The two namespaces are separate — a note and a decision may hold the same key.

Read the full file on GitHub · 55 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. 2mo ago First seen · 55 lines · 898 tokens per session scan A 1e308fb8f1ee

Subscribe to this mod's changes

varve CLAUDE.md is an instructions file published in the GitHub repository varve-sh/varve (9 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 898 tokens to every session, about $0.0036 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