Skip to content

mehmetbaykar/cc-docs

v2026.1104.2122

Unofficial: answers Claude Code questions from a local mirror of its documentation, refreshed every 3 hours.

Claude Code Docs Skill

An unofficial mirror of the Claude Code documentation, packaged as an Agent Skill so coding agents read the docs locally instead of searching the web. A GitHub Action refreshes the mirror every 3 hours.

The skill lives in skills/claude-code-docs/. The repository is also a plugin, cc-docs, for Claude Code, Codex, and Cursor.

Install

AgentInstall
Any agent that reads Agent Skillsnpx skills add mehmetbaykar/claude-code-docs-skill
Claude Code/plugin marketplace add mehmetbaykar/claude-code-docs-skill, then /plugin install cc-docs@claude-code-docs-skill
Codexcodex plugin marketplace add mehmetbaykar/claude-code-docs-skill, then codex plugin add cc-docs@claude-code-docs-skill
CursorIn Customize, choose From GitHub Repository and enter https://github.com/mehmetbaykar/claude-code-docs-skill, then install cc-docs

Use

Ask a Claude Code question and the agent picks up the skill on its own, or call it with a topic:

  • Claude Code and Cursor: /claude-code-docs hooks (as a Claude Code plugin, also /cc-docs:claude-code-docs hooks)
  • Codex: $claude-code-docs hooks

With no topic, the skill shows what the mirror covers. skills/claude-code-docs/SKILL.md holds the instructions the agent follows.

Update

Installed withUpdate
npx skillsnpx skills update claude-code-docs
Claude Code pluginclaude plugin marketplace update claude-code-docs-skill, then claude plugin update cc-docs@claude-code-docs-skill
Codex plugincodex plugin marketplace upgrade
Cursor pluginImport the repository again from Customize; team marketplaces can turn on Enable Auto Refresh

Every refresh sets the plugin version to the time of the mirror's last change (2026.1103.1534 is November 3, 15:34 UTC), so plugin managers see each update.

What's mirrored

The fetcher reads https://code.claude.com/docs/sitemap.xml and https://code.claude.com/docs/llms.txt and merges both lists, because neither is complete on its own. It mirrors every English page under /docs/en/ and leaves out other locales, other sites, and these subtrees: /docs/en/tool-use/, /docs/en/examples/, /docs/en/legacy/, /docs/en/api/, and /docs/en/reference/.

references/INDEX.md lists every page. references/docs_manifest.json records each page's upstream URL, content hash, and live or stale status.

Freshness guarantees

A refresh builds the whole mirror in memory and publishes it only when every check passes, so a failed run never leaves a half-written mirror. The run fails without publishing when:

  • discovery finds no pages, or fewer than 80% of the pages already mirrored
  • no page could be fetched live
  • more than 20% of pages are stale, have no usable Markdown, or fail cleaning
  • a page fails and has no earlier copy to fall back on

A page that fails while an earlier copy exists keeps that copy and is marked stale. When cleaning fails, the raw upstream source is kept under references/_raw/.

For maintainers

python3 -m venv .venv
.venv/bin/python -m pip install -r scripts/requirements-dev.txt
.venv/bin/python -m pytest -q
.venv/bin/python scripts/fetch_docs.py

scripts/fetch_docs.py holds the Claude Code settings. Everything else in scripts/, tests/, and .github/ is shared, byte for byte, with codex-docs-skill and cursor-docs-skill; SHARED_FILES in scripts/docs_mirror.py lists the files. Change shared files in all three repositories on branches with the same name: CI's drift check (python scripts/fetch_docs.py --check-drift) compares against that branch in the other repositories, or their main, and fails while the files differ.

.
├── plugin.json                          # Agent Plugins manifest (Codex, Cursor)
├── .claude-plugin/                      # Claude Code plugin and marketplace (Codex and npx skills read these too)
├── .cursor-plugin/                      # Cursor plugin and marketplace
├── skills/claude-code-docs/
│   ├── SKILL.md                         # instructions the agent follows
│   ├── agents/openai.yaml               # Codex and ChatGPT app metadata
│   └── references/                      # mirrored pages, INDEX.md, docs_manifest.json
├── scripts/
│   ├── fetch_docs.py                    # Claude Code settings
│   └── docs_mirror.py                   # shared engine
├── tests/                               # offline tests
└── .github/workflows/update-docs.yml    # tests, refresh every 3 hours, drift check, failure alerts

Troubleshooting

  • Docs look stale: check the latest run of Update docs mirror.
  • A scheduled refresh failed: the workflow opens or updates an issue titled "Docs mirror update failures" and closes it after the next successful run.
  • A page shows stale: upstream could not be reached on the last run, so the previous copy is still served.

Legal notice

  • Unofficial. This is an unofficial community project. It is not affiliated with, endorsed by, or sponsored by Anthropic, PBC.
  • Documentation. The mirrored pages belong to Anthropic and are subject to Anthropic's terms. Every page names its source, and https://code.claude.com/docs/en/ is the authoritative version.
  • Trademarks. Claude and Claude Code are trademarks of Anthropic, PBC. They are used here only to name the product the documentation describes.
  • License. The MIT license covers only this repository's own code: the scripts, tests, workflow, and skill instructions. It does not cover the mirrored documentation.
  • Removal requests. If you represent Anthropic and want this mirror changed or removed, open an issue and it will be handled promptly.