memo CLAUDE.md

memo CLAUDE.md is an instructions file for coding agents from jagoff/memo. It costs 9,483 tokens per session, scanned B, original, MIT.

A set of coding instructions for memo, an offline personal memory tool that stores and searches information using a local database and machine-learning embeddings.

In plain words
What is it for?
Use it when developing memo's command-line tool, memory search, database, or MCP server.
Why use it?
It gives contributors the commands and project rules needed to install dependencies, run tests, check types, and format code correctly.

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/jagoff/memo/claude-md
Clone the repo
git clone --depth 1 https://github.com/jagoff/memo

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

README.md
[![agentmods](https://agentmods.dev/badge/instructions/jagoff/memo/claude-md.svg)](https://agentmods.dev/instructions/jagoff/memo/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/jagoff/memo/claude-md"><img src="https://agentmods.dev/badge/instructions/jagoff/memo/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 9,483 This file is loaded in full into every session.
When invoked 9,483 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.09483 $0.09483
Opus 5 $0.04741 $0.04741
Sonnet 5 $0.01897 $0.01897
Haiku 4.5 $0.00948 $0.00948

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

Security

Grade B, and why

memo 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 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.

Reads agent configuration directoriesmediumAgent snooping

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

entry into `~/.claude/settings.json` — NOT `hooks/hooks.json`, which owns the
CLAUDE.md · 583 lines

How it starts

The opening of the file, as written. The whole thing — 583 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.

memo is a local-first semantic memory: MLX embeddings + sqlite-vec hybrid (vec + BM25) search, reranking, a knowledge graph, temporal reasoning, an MCP server, and a CLI. Single-user, runs offline. PyPI distribution name is mlx-memo; CLI binary is memo; MCP server binary is memo-mcp.

Dev commands

# One-time setup (fresh clone/worktree — pytest is an optional-dependency
# extra, not a base dep, so plain `uv sync` alone leaves pytest missing)
uv sync --extra dev          # pytest, ruff, mypy, hypothesis, etc.
uv sync --all-extras         # + http/tantivy/multimodal/ocr, needed for those test modules

# Tests (no MLX needed — MLX tests skip automatically on non-Apple Silicon)
uv run --no-sync pytest tests/                          # full suite
uv run --no-sync pytest tests/test_foo.py::test_bar -v  # single test
uv run --no-sync pytest tests/ -m "not slow"             # skip real-MLX-load tests (>1s each)

# Type checking
uv run --no-sync mypy src/memo/

# Lint + format
uv run --no-sync ruff check src/ && uv run --no-sync ruff format src/

# Run the CLI
uv run --no-sync memo <cmd>

# Validate MEMO_* flags (typos, unknown vars)
uv run --no-sync memo config validate

If memo doctor warns memo Python package loaded from .../src/memo/..., outside the isolated runtime, a stray PYTHONPATH=src (relative to a ~/repos/memo cwd) is shadowing the isolated uv tool install with this working tree's source — memo --version looks right while the code that actually runs is stale. unset PYTHONPATH before verifying a fix against the real installed binary.

Working tree is shared (read before any git op)

This repo is frequently worked on by concurrent agent sessions sharing one working tree and HEAD. Their commits land on whatever branch is checked out, master advances underneath you, and a git checkout in another session moves your HEAD too. So:

Read the full file on GitHub · 583 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. 5d ago First seen · 583 lines · 9,483 tokens per session scan B 179a53dfa43c

Subscribe to this mod's changes

memo CLAUDE.md is an instructions file published in the GitHub repository jagoff/memo (17 stars, last pushed today), licensed MIT. It adds 9,483 tokens to every session, about $0.0474 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-30.