capture

capture is a command for coding agents from sk-lim19f/Hypomnema. It costs 72 tokens per session (1,430 once invoked), scanned B, original, MIT.

A capture command copies locally created Claude Code commands, agents, skills, or registered hooks into a Hypomnema wiki. The wiki is a version-controlled collection of project notes and extensions that can sync across machines.

In plain words
What is it for?
It is for capturing slash commands, agents, skills, and eligible hooks while preserving their original names and contents.
Why use it?
It backs up local add-ons in one place and lets the existing sync process install them on other machines.

Command

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the hypo plugin — 1 skill, 16 commands, 9 hooks shipped together

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 commands/sk-lim19f/hypomnema/capture
Clone the repo
git clone --depth 1 https://github.com/sk-lim19f/Hypomnema

Or install hypo, the plugin that ships this one along with the rest of its 1 skill, 16 commands, 9 hooks.

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 capture

README.md
[![agentmods](https://agentmods.dev/badge/commands/sk-lim19f/hypomnema/capture.svg)](https://agentmods.dev/commands/sk-lim19f/hypomnema/capture)
Your own site
<a href="https://agentmods.dev/commands/sk-lim19f/hypomnema/capture"><img src="https://agentmods.dev/badge/commands/sk-lim19f/hypomnema/capture.svg" alt="Measured on agentmods" height="20"></a>
Per session 72 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,430 The whole file, excluding the scripts and references it only reads on demand.
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.1 $0.00072 $0.01430
Opus 5 $0.00036 $0.00715
Sonnet 5 $0.00014 $0.00286
Haiku 4.5 $0.00007 $0.00143

Measured yesterday against content hash 8f58dbbea4d9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade B, and why

capture 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 yesterday.

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.

description: Pull extensions you made the normal way under ~/.claude/{commands,agents,skills}, or a canonical hook registered in ~/.claude/settings.json, into the wiki so they sync to your other machines. Use when the us
commands/capture.md · 43 lines

How it starts

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

You are running /hypo:capture. Bring a command, agent, or skill that the user created the normal way (directly under ~/.claude/commands/, ~/.claude/agents/, or ~/.claude/skills/), or a hook they registered in ~/.claude/settings.json, into the wiki extensions/ tree so the existing forward-sync propagates it to their other machines under its original name.

Scope: commands, agents, skills, and hooks. Commands and agents are enumerated from ~/.claude/{commands,agents}/; a skill is a whole directory (~/.claude/skills/<name>/SKILL.md plus its subtree); hooks are read from the ~/.claude/settings.json registration.

Hooks and skills are captured only when they round-trip losslessly, because what lands in the wiki is exactly what the far machine installs. A hook qualifies when its command is the canonical node $HOME/.claude/hooks/<name>.mjs form and its event, matcher, and timeout are preserved. A skill is refused whole (never captured as a partial subset) when its subtree holds anything that cannot survive the trip: a symlink, a hardlink, an empty directory (git cannot carry one), a VCS control directory, or more than 500 files / 5 MiB. That ceiling is what keeps a vendored skill with its own node_modules out of the vault. Content is reproduced byte for byte, and a newly captured executable script keeps its executable bit through the wiki and onto every install. A skill captured before this behavior shipped has its wiki copy recorded non-executable, and there is no automatic fix once that has happened: it is already managed by the wiki, so it never shows up as a capture candidate again, and forward-sync's own heal only adds a missing exec bit while the install's content still matches the wiki record byte for byte. If the wiki content changes later for an unrelated reason, the install picks up whatever mode the new wiki bytes carry, exec bit included, so the mode can move in either direction at that point, not just up. The only working fix for an already-committed non-executable script is chmod +x directly on the wiki file; since that is a mode-only change with the content untouched, forward-sync's heal then carries the bit to every install from there.

Step 1: Resolve the package root

Bundled scripts here run via ${CLAUDE_PLUGIN_ROOT}/scripts/. To resolve that package root: if ${CLAUDE_PLUGIN_ROOT} is already an absolute path, use it; otherwise read pkgRoot from ~/.claude/hypo-pkg.json (only when non-empty and the target script exists under it); otherwise use the hypo@hypomnema (or legacy hypomnema@hypomnema) installPath in ~/.claude/plugins/installed_plugins.json; if none resolve, stop and tell the user to run hypomnema capture or reinstall instead of guessing the cache layout.

If the user specified a Hypomnema directory, pass it as --hypo-dir="<path>". Otherwise omit the flag.

Read the full file on GitHub · 43 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. yesterday Changed 8f58dbbea4d9
  2. 5d ago First seen · 43 lines · 72 tokens per session scan B a7897f88738b

Subscribe to this mod's changes

capture is a command published in the GitHub repository sk-lim19f/Hypomnema (10 stars, last pushed yesterday), licensed MIT. It adds 72 tokens to every session and 1,430 once invoked, about $0.0004 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.