codemem AGENTS.md

Project instructions for codemem, covering repository structure, where code runs, useful pnpm commands, build and test checks, and files that must stay out of version control.

In plain words
What is it for?
Use them when modifying codemem to locate the CLI, core, viewer, or plugin code, run installation/build/test commands, and follow repository-specific safety rules.
Why use it?
They help contributors work in the correct package, run the expected checks, and avoid committing private or generated files.

Instructions file for CodexOpenCode

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/kunickiaj/codemem/agents-md
Clone the repo
git clone --depth 1 https://github.com/kunickiaj/codemem

Made for: Codex, OpenCode.

Per session 972 This file is loaded in full into every session.
When invoked 972 The same file — it is already loaded in full.
Security scan A 0 findings. 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.00972 $0.00972
Opus 5 $0.00486 $0.00486
Sonnet 5 $0.00194 $0.00194
Haiku 4.5 $0.00097 $0.00097

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

Security

Grade A, and why

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

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 · 48 lines

How it starts

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

codemem

  • Public repo: never add secrets, internal hostnames, private identifiers, or local artifact paths. Keep .tmp/, .venv/, *.sqlite, packages/*/dist/, packages/viewer-server/static/, and .opencode/package-lock.json out of git.
  • Default to the TypeScript toolchain: this repo is a pnpm workspace on Node 24 / pnpm 10.33.0.

What runs where

  • CLI entrypoint: packages/cli/src/index.ts (pnpm run codemem ...).
  • Shared store/search/sync logic and exported version: packages/core/src/index.ts.
  • Viewer HTTP API + SPA host: packages/viewer-server/src/index.ts.
  • Viewer UI source: packages/ui/src/.
  • OpenCode plugin source of truth: packages/opencode-plugin/.opencode/plugins/codemem.js.
  • packages/cli/.opencode/plugins/codemem.js and repo-root .opencode/plugins/codemem.js are wrappers/re-exports, not the main implementation.
  • packages/cloudflare-coordinator-worker/ is its own worker package with separate tests.

Commands worth using

  • Install: pnpm install
  • Full local gate / CI order: pnpm run tsc && pnpm run lint && pnpm run test (pnpm run check)
  • Build everything: pnpm run build
  • Run CLI from source: pnpm run codemem --help
  • Run one vitest file: pnpm exec vitest run packages/cli/src/commands/serve.test.ts
  • Run one package script: pnpm --filter codemem test, pnpm --filter @codemem/ui build, pnpm --filter @codemem/cloudflare-coordinator-worker test:worker
  • E2E smoke: CODEMEM_E2E_BUILD=1 CODEMEM_E2E_JSON=1 pnpm run e2e:smoke -- --json (artifacts land in .tmp/e2e-artifacts)

Gotchas agents usually miss

  • pnpm run lint only checks files included by biome.json (mostly packages/** TS/TSX/JS/JSON and root TS config). Docs like AGENTS.md are outside Biome.
  • pnpm run test is workspace vitest; root vitest.config.ts points at packages/*/vite.config.ts.
  • The viewer server throws if packages/viewer-server/static/index.html is missing. If you change UI or viewer assets, run pnpm build or at least pnpm --filter @codemem/ui build.
  • packages/viewer-server/static/ is generated and ignored. Do not hand-edit it. UI build stages packages/ui/static/ there alongside the built app.js bundle.
  • Plugin smoke tests rely on nested .opencode runtime deps. CI installs @opencode-ai/plugin inside packages/cli/.opencode and packages/opencode-plugin/.opencode before running smoke tests.
  • CLI work should follow docs/cli-design-conventions.md: max 2 nesting levels, noun-based groups, shared --db-path / --config / --json helpers, and no uncaught throws from command handlers.
  • The repo is TS-first; trust package.json, package scripts, and CI over older migration-era docs/checklists.
  • .github/PULL_REQUEST_TEMPLATE.md is TS-first now; use pnpm run tsc, pnpm run lint, and pnpm run test for normal changes.

Read the full file on GitHub · 48 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 · 48 lines · 972 tokens per session scan A a9f913a1b52c

Subscribe to this mod's changes

codemem AGENTS.md is an instructions file published in the GitHub repository kunickiaj/codemem (62 stars, last pushed 3d ago), licensed MIT. It adds 972 tokens to every session, about $0.0049 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-30.