Loading...
Loading...
Persistent per-project memory for Claude Code. Auto-loads project context on session start, tracks sessions with git activity, and writes to native memory. Commands run deterministic Node.js scripts — behavior is consistent across model versions.
npx skill4agent add affaan-m/everything-claude-code ck/ck:*~/.claude/skills/ck/commands/~$HOME~/.claude/ck/
├── projects.json ← path → {name, contextDir, lastUpdated}
└── contexts/<name>/
├── context.json ← SOURCE OF TRUTH (structured JSON, v2)
└── CONTEXT.md ← generated view — do not hand-edit/ck:initnode "$HOME/.claude/skills/ck/commands/init.mjs"Here's what I found — confirm or edit anything:
Project: <name>
Description: <description>
Stack: <stack>
Goal: <goal>
Do-nots: <constraints or "None">
Repo: <repo or "none">echo '<confirmed-json>' | node "$HOME/.claude/skills/ck/commands/save.mjs" --init{"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }/ck:savesummaryleftOffnextStepsdecisions{what, why}blockersgoal"Session: '<summary>' — save this? (yes / edit)"echo '<json>' | node "$HOME/.claude/skills/ck/commands/save.mjs"{"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]}/ck:resume [name|number]node "$HOME/.claude/skills/ck/commands/resume.mjs" [arg]/ck:save/ck:info [name|number]node "$HOME/.claude/skills/ck/commands/info.mjs" [arg]/ck:listnode "$HOME/.claude/skills/ck/commands/list.mjs"/ck:resume/ck:forget [name|number]/ck:list"This will permanently delete context for '<name>'. Are you sure? (yes/no)"node "$HOME/.claude/skills/ck/commands/forget.mjs" [name]/ck:migratenode "$HOME/.claude/skills/ck/commands/migrate.mjs"node "$HOME/.claude/skills/ck/commands/migrate.mjs" --dry-runmeta.json.v1-backup~/.claude/skills/ck/hooks/session-start.mjs~/.claude/settings.json{
"hooks": {
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "node \"~/.claude/skills/ck/hooks/session-start.mjs\"" }] }
]
}
}~$HOME/CK:SAVE/ck:save/Ck:Savecontext.jsonCONTEXT.mdprojects.json{}