Help us improve
Share bugs, ideas, or general feedback.
From docpull
Grounds answers in real library documentation by searching indexed docs, fetching uncached sources, and reading specific sections. Useful for fast-moving SDKs, APIs, and version-sensitive tool behavior.
npx claudepluginhub raintree-technology/docpullHow this skill is triggered — by the user, by Claude, or both
Slash command
/docpull:docpull-researchThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Ground library/framework answers in real documentation instead of training-data recall. The cost of one `grep_docs` call is ~50 ms; the cost of giving a confidently wrong answer about a fast-moving API is much higher.
Uses docpull tools to fetch, index, and search live docs for fast-moving libraries like Next.js, FastAPI, LangChain, React when answering 'how to X' or API questions.
Fetches live documentation and implementation guidance for any library, framework, or API. Invoked when the user asks for documentation, examples, or best practices.
Fetches up-to-date library/framework docs via Context7 MCP (resolve-library-id, query-docs) for setup questions, API references, code examples.
Share bugs, ideas, or general feedback.
Ground library/framework answers in real documentation instead of training-data recall. The cost of one grep_docs call is ~50 ms; the cost of giving a confidently wrong answer about a fast-moving API is much higher.
Activate when the user's question names a specific library, framework, SDK, API surface, or docs-backed tool ecosystem — especially:
skills.sh, github.com/vercel-labs/skills, Vercel agent skills, MCP docs, and SDK command references.Do NOT activate for:
os, JavaScript Array.prototype).Always start with list_indexed. It's free and tells you which libraries you can search immediately without fetching.
list_indexed() → ["fastapi (3d ago)", "react (12h ago)", ...]
Use grep_docs with a focused regex. Prefer API nouns, method names, command names, or option flags over whole natural-language questions. The library is already on disk, so this is a local search:
grep_docs(library="fastapi", pattern="dependency injection", limit=10, context=2)
If you want more context around a hit, use read_doc(library, path, line_start, line_end).
list_sources()): call ensure_docs(source="<alias>"). This crawls and indexes the whole library. ~10–30s for typical sites.fetch_url(url=...) if you only need one page. For a whole site you don't have an alias for, tell the user to run /docs-add <URL>; the MCP fetch_url is single-page only.For questions about Vercel skills, skills.sh, npx skills, agent skill installation, or SKILL.md structure:
list_indexed for an existing skills, skills.sh, or vercel-labs-skills source.skills add, --agent, --skill, --copy, --yes, skills use, skills list, skills find, skills update, skills remove, SKILL.md, frontmatter, or the named agent.fetch_url on that page.https://www.skills.sh/docs for a quick one-page answer. For CLI option details, ask once before crawling the full GitHub repo, or use the official README URL if the user only needs install/use command syntax.npx -y skills add <package> --skill '*' --agent codex --copy --yes, then remove installer artifacts with rm -rf .agents skills-lock.json.When you cite docs, include the source path returned by grep_docs / read_doc so the user can verify. Example: "Per fastapi/tutorial/dependencies.md:42, dependencies declared with Depends() are resolved per-request..."
For one-page fetch_url answers, name the page URL or page title in the answer. For cached docs, prefer library/path.md:line style references.
ensure_docs for libraries the user didn't ask about ("while we're here, let me also fetch...").list_indexed will tell you it's there.grep_docs returns nothing useful, broaden the regex once before suggesting the user add more docs.These are pre-configured and resolvable by ensure_docs(source=...) without setup: react, nextjs, tailwindcss, vite, hono, fastapi, express, anthropic, openai, langchain, supabase, drizzle, prisma. Run list_sources() for the current set.
ensure_docs returns "unknown source": the alias isn't built-in. Either suggest /docs-add <URL> or call list_sources() and propose a near match.grep_docs returns empty: the pattern is too narrow, or the library doesn't cover the topic. Broaden once, then surface the gap to the user.fetch_url cannot read a docs page: state that docpull could not fetch the page, then use a browser/search fallback only if the host permits it and the question needs current docs.pip install 'docpull[mcp]' and verify the plugin's MCP server is healthy. Fall back to answering from training data with an explicit caveat that docs weren't available.When you've grounded an answer in fetched docs, say so once at the start of the answer ("Per the FastAPI docs..."). Don't pad every paragraph with attribution — one source citation up front plus inline file references is enough.