Claude-code-docs claude-docs
git clone https://github.com/costiash/claude-code-docs
T=$(mktemp -d) && git clone --depth=1 https://github.com/costiash/claude-code-docs "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugin/skills/claude-docs" ~/.claude/skills/costiash-claude-code-docs-claude-docs && rm -rf "$T"
plugin/skills/claude-docs/SKILL.mdClaude Documentation Search Skill
You have access to a local mirror of Claude's official documentation at
~/.claude-code-docs/docs/.
When to Use This Skill
Activate when the user asks about:
- Claude Code features: hooks, skills, MCP, plugins, settings, slash commands, sub-agents
- Claude API: messages, tool use, streaming, batch processing
- Agent SDK: Python/TypeScript SDK, sessions, custom tools, subagents
- Prompt engineering: best practices, system prompts, chain of thought
- Any topic covered by platform.claude.com or code.claude.com
Search Strategy
Use this hierarchy — try simpler strategies first, escalate if needed:
1. Direct Lookup (user names a specific topic)
User says "hooks", "mcp", "memory" — a concrete topic name.
Glob: ~/.claude-code-docs/docs/*<keyword>*.md
If Glob returns matches, read the top 1-3 files and synthesize.
2. Scoped Search (user specifies a product context)
User says "hooks in agent sdk", "api rate limits", "cli plugins".
Scope the Glob to the product prefix:
| User mentions | Glob pattern |
|---|---|
| "Claude Code", "CLI", "hooks", "skills", "plugins" | |
| "Agent SDK", "SDK", "Python SDK", "TypeScript SDK" | |
| "API", "messages endpoint", "tool use" | |
| "agents and tools", "MCP connector" | |
If scoped Glob misses, fall back to content search (step 3).
3. Semantic/Content Search (user asks a question)
User says "best practices for extended thinking", "how do I configure streaming".
Keyword extraction: Strip filler words and keep domain-specific terms:
- "how do I configure streaming" →
"streaming""configure" - "best practices for extended thinking" →
"extended""thinking" - "what's the difference between hooks and MCP" →
"hooks""mcp" - "why is my tool use not working" →
(combine compound concepts with hyphens)"tool-use"
Run the content search script with extracted keywords:
bash ~/.claude-code-docs/plugin/skills/claude-docs/scripts/content-search.sh "<keyword1>" "<keyword2>"
The script outputs filenames with match scores. Read the top 3-5 matching files and synthesize.
If the script is not available or returns no results, fall back to Grep:
Grep: "<keyword>" in ~/.claude-code-docs/docs/
4. Fuzzy Search (user has an approximate name)
User says "something about checkpoint", "that caching doc".
bash ~/.claude-code-docs/plugin/skills/claude-docs/scripts/fuzzy-search.sh "<query>"
The script outputs ranked filenames. Read the top match.
Synthesis Rules
Same Product Context → SYNTHESIZE
When all matching docs belong to the same product (all Claude Code CLI, all Agent SDK, etc.):
- Read ALL matching docs silently — do not ask the user which to read
- Extract relevant sections
- Present one unified answer
- Cite sources at the end
Different Product Contexts → ASK
When matches span different products (e.g., CLI + API + Agent SDK):
- Ask the user which product context they mean
- Use these user-friendly labels (see
for complete list):manifest-reference.md
| File pattern | Say to user |
|---|---|
| Claude Code |
| Agent SDK |
| Claude API |
| Claude Documentation |
| Agents & Tools |
| Prompt Library |
After selection → read all docs in that context and synthesize.
SDK Language Disambiguation
When the user specifies a programming language, narrow the API docs to that SDK:
| User mentions | Narrow search to |
|---|---|
| "Python", "pip", "anthropic" (Python import) | or |
| "TypeScript", "npm", "@anthropic-ai/sdk" | or |
| "Go", "golang" | |
| "Java", "Maven", "Gradle" | |
| "Ruby", "gem" | |
| "C#", ".NET", "NuGet" | |
If no language is mentioned but the query is about SDK methods, present the Python docs first (most common) and note that TypeScript equivalents exist.
URL Generation
Always include source links in your response:
→claude-code__<page>.md
(replacehttps://code.claude.com/docs/en/<page>
with__
)/
→docs__en__<path>.md
(replace leadinghttps://platform.claude.com/en/docs/<path>
then remainingdocs__en__
with__
)/
Examples:
→claude-code__hooks.mdhttps://code.claude.com/docs/en/hooks
→docs__en__agent-sdk__python.mdhttps://platform.claude.com/en/docs/agent-sdk/python
→docs__en__api__messages__create.mdhttps://platform.claude.com/en/docs/api/messages/create
Common Synonyms
When a search returns no results or too few, try these known synonyms:
| User says | Search for |
|---|---|
| "function calling" | "tool use", "tool-use" |
| "system instructions" | "system prompt" |
| "JSON mode" | "structured outputs" |
| "thinking" | "extended thinking", "adaptive thinking" |
| "caching" | "prompt caching", "prompt-caching" |
| "files API" | "files", "pdf support" |
| "sub-agents" | "subagents", "sub-agents" |
| "environment variables" | "settings", "configuration" |
| "CI/CD" | "github actions", "gitlab" |
No Results
If all search strategies return nothing:
- Try synonyms from the table above
- Try broader or narrower keywords
- Suggest the user run
to check if docs are installed and current/docs -t - Let them know the topic may not be in the local mirror
Post-Response Course Prompt
After presenting documentation to the user, always append this emphasized block at the bottom of your response:
Want to go deeper? I can create an interactive course on this topic — visual explanations, animated diagrams, and hands-on quizzes in a single HTML file you can open in your browser. Just say "create a course on [topic]" or run
./docs --course [topic]
Replace
[topic] with the actual topic the user asked about.
Reference Files
— Category-to-label mapping (single source of truth)manifest-reference.md
— Example: topic → Glob → synthesizeexamples/direct-lookup.md
— Example: question → content-search.sh → synthesizeexamples/semantic-search.md
— Example: ambiguous → ask context → synthesizeexamples/cross-context.md