keep
Skill0 starsChanged 49 days agoMITView on GitHub
Use when the user wants a reply saved for later — "/keep", "push that to Obsidian", "save this response", "keep the last N replies" — or when a long answer is worth keeping in their notes.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- timpulver/openai-image-gentheir own version, first seen Nov 1, 2026
- shabash-dev/shabash-pluginstheir own version, first seen Oct 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- shabash-dev/shabash-plugins★ 0same name
- timpulver/openai-image-gen★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 26
Config: Use KEEP_VAULT / KEEP_FOLDER env vars if set.
- Distinctive: line 29
Append: Run (outside the sandbox if one is active — the vault is outside the project):
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
keep — append replies to this session's Obsidian note
One note per session, append-only. Every /keep adds the chosen reply under a headline the user can scan for later. Nothing already in the note is ever edited.
<skill dir> below means the directory containing this SKILL.md (e.g. ~/.claude/skills/keep).
Arguments
| Invocation | Meaning |
/keep | the last reply (the one just before this command) |
/keep 3, /keep last 3, /keep last-3 | the last 3 replies, appended oldest first |
/keep "Runbook for X" | the last reply, with that headline |
/keep 2 "Runbook for X" | last 2; the headline override applies only to a single reply, so it is ignored here |
/keep the runbook | free text: the most recent reply that matches it |
"Reply" means a full assistant message shown to the user; earlier /keep confirmations never count.
Steps
- Config. Use
KEEP_VAULT/KEEP_FOLDERenv vars if set; otherwise read<skill dir>/config.json({"vault": ..., "folder": ...}). If neither exists, ask the user for their vault path once, writeconfig.jsonfromconfig.example.json, and continue.folderdefaults toClaude Sessions. - Note path. Store it in
<state dir>/keep-note-path, where<state dir>is the session scratchpad directory if the system prompt lists one, else${TMPDIR:-/tmp}/claude-keep/<YYYY-MM-DD>-<cwd basename>. If the file exists, use that path. If not, choose<vault>/<folder>/<YYYY-MM-DD> <session title>.md— title is 3–6 words for what this session is about — and write it tokeep-note-path. - Body. For each selected reply, oldest first: write the reply verbatim to
<state dir>/keep-body.md(the markdown exactly as shown; no tool calls, no re-summarising). If the reply predates a context compaction and cannot be reproduced exactly, prepend_(reconstructed after context compaction; may differ from what was shown)_. - Append. Run (outside the sandbox if one is active — the vault is outside the project):
KEEP_TITLE="<title>" KEEP_SESSION="<session id or state dir basename>" KEEP_PROJECT="<cwd>" KEEP_FIRST_PROMPT="<first user prompt, ≤120 chars>" bash <skill dir>/scripts/keep.sh "<note path>" "<headline>" "<triggering prompt, first line, ≤120 chars>" <state dir>/keep-body.mdHeadline: 3–8 words naming what the reply is (e.g.Postgres index tuning walkthrough), unique within the note. The script skips a headline already present. - Confirm in one line: note name + headline(s) appended (or skipped). Nothing else.
Rules
- Append only. Never open the note to rewrite, reorder or dedupe by hand.
- Verbatim body. The user is saving what they read, not a summary of it.
- One note per session. A new note is created only when
keep-note-pathis missing. - Secrets already in the reply stay as the user saw them; do not add any.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

