context7
Context7
Retrieve current documentation for software libraries by querying the Context7 API. This is especially useful when you're unsure about an API's current interface — library docs change frequently and your training data may be outdated.
Requires CONTEXT7_API_KEY environment variable.
When to Use
- Looking up how a library function works (e.g., "how does
useEffectcleanup work?") - Checking if an API has changed in a newer version
- Finding code examples for a specific library feature
- Verifying correct import paths or function signatures
- Installing or configuring a library and needing setup docs
When NOT to Use
- General programming questions (e.g., "how do closures work in JS?")
- Questions about your own project's internal code
- Topics unrelated to a specific open-source library or framework
Workflow
DO NOT read script source code. Run scripts directly and use --help for usage.
Step 1: Search for the Library
python3 scripts/context7.py search <library> <topic>
Returns TSV with top 5 matches: id, title, snippets. Use the id from the best-matching row for the fetch step.
Step 2: Fetch Documentation
python3 scripts/context7.py fetch <library_id> <topic> [--max-tokens N]
Fetches documentation snippets relevant to the topic, truncated to a token budget (default: 5000).
Choosing --max-tokens:
| Scenario | Tokens | Why |
|---|---|---|
| Quick lookup (one function signature) | 2000 | Keeps output focused, faster response |
| Typical usage (API patterns, examples) | 5000 (default) | Good balance of depth and brevity |
| Broad exploration (migration guide, full API surface) | 8000–10000 | Needed when topic spans multiple sections |
Run python3 scripts/context7.py --help for full usage.
Examples
# Find React library ID, then fetch useState docs
python3 scripts/context7.py search react "useState hook"
python3 scripts/context7.py fetch /websites/react_dev "useState hook with objects"
# Smaller budget for a quick lookup
python3 scripts/context7.py fetch /vercel/next.js "middleware redirect" --max-tokens 2000
# Broader exploration
python3 scripts/context7.py fetch /langchain-ai/langchainjs "retrieval chain setup" --max-tokens 8000
Rules
- Write specific queries —
"useState hook with objects"retrieves much better results than"hooks", because the API ranks snippets by relevance to your query. - Always search before fetching — Library IDs aren't guessable (e.g.,
/websites/react_dev), so you need the search step to find the right one. - Match
--max-tokensto the task — Use the table above. Overshooting wastes context window; undershooting may miss the answer.
More from trancong12102/agentskills
deps-dev
Look up the latest stable version of any open-source package across npm, PyPI, Go, Cargo, Maven, and NuGet. Use when the user asks 'what's the latest version of X', 'what version should I use', 'is X deprecated', 'how outdated is my package.json/requirements.txt/Cargo.toml', or needs version numbers for adding or updating dependencies. Also covers pinning versions, checking if packages are maintained, or comparing installed vs latest versions. Do NOT use for private/internal packages or for looking up documentation (use context7).
151council-review
Multi-perspective code review that synthesizes findings from multiple reviewers into a unified report. Use when the user asks to review code changes, audit a diff, check code quality, review a PR, review commits, or review uncommitted changes. Also covers 'code review', 'review my changes', 'check this before I merge', or wanting multiple perspectives on code. Do not use for documentation/markdown review or trivial single-line changes.
95oracle
Deep analysis and expert reasoning. Use when the user asks for 'oracle', 'second opinion', architecture analysis, elusive bug debugging, impact assessment, security reasoning, refactoring strategy, or trade-off evaluation — problems that benefit from deep, independent reasoning. Do not use for simple factual questions, code generation, code review (use council-review), or tasks needing file modifications.
93conventional-commit
Generates git commit messages following Conventional Commits 1.0.0 specification with semantic types (feat, fix, etc.), optional scope, and breaking change annotations. Use when committing code changes or creating commit messages.
58react-web-advanced
Web-specific React patterns for type-safe file-based routing, route-level data loading, server-side rendering, search param validation, code splitting, and list virtualization. Use when building React web apps with route loaders, SSR streaming, validated search params, lazy route splitting, or virtualizing large DOM lists. Do not use for React Native apps — use react-native-advanced instead.
45react-advanced
Advanced React patterns and conventions for data fetching, tables, forms, state machines, client state management, schema validation, and testing. Use when tackling complex React problems — not simple component questions, but multi-concern tasks like server-driven tables with filtering, multi-step wizards, eliminating useEffect, Suspense architecture, choosing between state management approaches, or designing data flow across server/client/URL/form state. Do not use for web-specific routing/SSR or React Native-specific navigation/performance.
45