← All skills
learn-codebase
80 / 100 · Low risk
Fine to try. Some of what it can do is expected: a coding skill usually runs build and test commands.
By thedotmack/claude-mem (GitHub) · coding · 116,045 stars · scanned at commit 22d148e
Prime a codebase by reading every source file in full. Use when starting work on a new or unfamiliar project, or when the user asks to "learn the codebase", "read the codebase", "prime", or "get up to speed".
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 4 places.
Show 1 more
Runs commands on your computer
The author does not mention this. It runs automatically when the plugin is installed. Expected for a coding skill.
Found in 38 places.
Show 17 more
- plugin/hooks/codex-hooks.json, line 9
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 11
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/codex-hooks.json, line 21
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 23
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/codex-hooks.json, line 34
"command": "/bin/sh -c 'if [ \"${CLAUDE_MEM_DISABLE_TOOL_HOOKS:-}\" = 1 ] || [ \"${CLAUDE_MEM_DISABLE_FILE_CONTEXT:-}\" = 1 ]; then exit 0; fi; _HP=$(printenv P - plugin/hooks/codex-hooks.json, line 36
"commandWindows": "node -e \"if(process.env.CLAUDE_MEM_DISABLE_TOOL_HOOKS==='1'||process.env.CLAUDE_MEM_DISABLE_FILE_CONTEXT==='1')process.exit(0);const fs=requ - plugin/hooks/codex-hooks.json, line 47
"command": "/bin/sh -c 'if [ \"${CLAUDE_MEM_DISABLE_TOOL_HOOKS:-}\" = 1 ] || [ \"${CLAUDE_MEM_DISABLE_OBSERVATION:-}\" = 1 ]; then exit 0; fi; _HP=$(printenv PA - plugin/hooks/codex-hooks.json, line 49
"commandWindows": "node -e \"if(process.env.CLAUDE_MEM_DISABLE_TOOL_HOOKS==='1'||process.env.CLAUDE_MEM_DISABLE_OBSERVATION==='1')process.exit(0);const fs=requi - plugin/hooks/codex-hooks.json, line 59
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 61
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/codex-hooks.json, line 71
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 73
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/codex-hooks.json, line 83
"command": "/bin/sh -c '_HP=$(printenv PATH 2>/dev/null || true); if [ -z \"$_HP\" ] && [ -n \"${SHELL:-}\" ]; then _HP=$(\"$SHELL\" -lc '\\''printf %s \"$PATH\ - plugin/hooks/codex-hooks.json, line 85
"commandWindows": "node -e \"const fs=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_ - plugin/hooks/hooks.json, line 14
"command": "/bin/sh -c 'export PATH=\"$HOME/.nvm/versions/node/v$(ls \"$HOME/.nvm/versions/node\" 2>/dev/null | sed '\\''s/^v//'\\'' | sort -t. -k1,1n -k2,2n -k - plugin/hooks/hooks.json, line 26
"command": "claude-mem", - plugin/hooks/hooks.json, line 40
"command": "claude-mem",
and 18 more places
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'learn-codebase' ] || [ -L ~/.agents/skills/'learn-codebase' ]; then echo 'A skill folder named learn-codebase already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/thedotmack/claude-mem' "$d" && git -C "$d" checkout --quiet '22d148ea6f34b86ea9a6e0911c7a7a0c71431b31' -- 'plugin/skills/learn-codebase' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugin/skills/learn-codebase' ~/.agents/skills/'learn-codebase' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'learn-codebase' ~/.claude/skills/'learn-codebase' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for thedotmack/claude-mem shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/thedotmack/claude-mem/)
Score history
| Date | Version | Score |
|---|
| 2026-11-11 | 22d148e | 80 |
| 2026-11-08 | 3ab6e1a | 80 |
| 2026-11-07 | 2d8c08c | 80 |