Version: 2.7.0 Last Updated: 2026-01-18
Skill Seekers is a Python tool that converts documentation websites, GitHub repositories, and PDF files into AI skills for Claude AI, Google Gemini, OpenAI ChatGPT, and generic Markdown format.
Use Cases:
- Create custom documentation skills for your favorite frameworks
- Analyze GitHub repositories and extract code patterns
- Convert PDF manuals into searchable AI skills
- Combine multiple sources (docs + code + PDFs) into unified skills
Supported Platforms (4):
- Claude AI - ZIP format with YAML frontmatter
- Google Gemini - tar.gz format for Grounded Generation
- OpenAI ChatGPT - ZIP format for Vector Stores
- Generic Markdown - ZIP format with markdown files
Each platform has a dedicated adaptor for optimal formatting and upload.
Tool: Yes, Skill Seekers is 100% free and open-source (MIT license).
API Costs:
- Scraping: Free (just bandwidth)
- AI Enhancement (API mode): ~$0.15-0.30 per skill (Claude API)
- AI Enhancement (LOCAL mode): Free! (uses your Claude Code Max plan)
- Upload: Free (platform storage limits apply)
Recommendation: Use LOCAL mode for free AI enhancement or skip enhancement entirely.
Typical Times:
- Documentation scraping: 5-45 minutes (depends on size)
- GitHub analysis: 1-5 minutes (basic) or 20-60 minutes (C3.x deep analysis)
- PDF extraction: 30 seconds - 5 minutes
- AI enhancement: 30-60 seconds (LOCAL or API mode)
- Total workflow: 10-60 minutes
Speed Tips:
- Use
--asyncfor 2-3x faster scraping - Use
--skip-scrapeto rebuild without re-scraping - Skip AI enhancement for faster workflow
# Basic installation
pip install skill-seekers
# With all platform support
pip install skill-seekers[all-llms]
# Development installation
git clone https://github.com/yusufkaraaslan/Skill_Seekers.git
cd Skill_Seekers
pip install -e ".[all-llms,dev]"Required: Python 3.10 or higher Tested on: Python 3.10, 3.11, 3.12, 3.13 OS Support: Linux, macOS, Windows (WSL recommended)
Check your version:
python --version # Should be 3.10+Common Causes:
- Package not installed
- Wrong Python environment
Solutions:
# Install package
pip install skill-seekers
# Or for development
pip install -e .
# Verify installation
skill-seekers --version# Claude AI (for enhancement and upload)
export ANTHROPIC_API_KEY=sk-ant-...
# Google Gemini (for upload)
export GOOGLE_API_KEY=AIza...
# OpenAI ChatGPT (for upload)
export OPENAI_API_KEY=sk-...
# GitHub (for higher rate limits)
export GITHUB_TOKEN=ghp_...
# Make permanent (add to ~/.bashrc or ~/.zshrc)
echo 'export ANTHROPIC_API_KEY=sk-ant-...' >> ~/.bashrcUsing preset config:
skill-seekers scrape --config reactUsing custom URL:
skill-seekers scrape --base-url https://docs.example.com --name my-frameworkFrom custom config file:
skill-seekers scrape --config configs/my-framework.jsonYes! Skill Seekers has powerful GitHub analysis:
# Basic analysis (fast)
skill-seekers github https://github.com/facebook/react
# Deep C3.x analysis (includes patterns, tests, guides)
skill-seekers github https://github.com/vercel/next.js --analysis-depth c3xC3.x Features:
- Design pattern detection (10 GoF patterns)
- Test example extraction
- How-to guide generation
- Configuration pattern extraction
- Architectural overview
- API reference generation
Yes! PDF extraction with OCR support:
# Basic PDF extraction
skill-seekers pdf manual.pdf --name product-manual
# With OCR (for scanned PDFs)
skill-seekers pdf scanned.pdf --enable-ocr
# Extract images and tables
skill-seekers pdf document.pdf --extract-images --extract-tablesYes! Unified multi-source scraping:
Create unified config (configs/unified/my-framework.json):
{
"name": "my-framework",
"sources": {
"documentation": {
"type": "docs",
"base_url": "https://docs.example.com"
},
"github": {
"type": "github",
"repo_url": "https://github.com/org/repo"
},
"pdf": {
"type": "pdf",
"pdf_path": "manual.pdf"
}
}
}Run unified scraping:
skill-seekers unified --config configs/unified/my-framework.json# Upload to Claude AI
export ANTHROPIC_API_KEY=sk-ant-...
skill-seekers upload output/react-claude.zip --target claude
# Upload to Google Gemini
export GOOGLE_API_KEY=AIza...
skill-seekers upload output/react-gemini.tar.gz --target gemini
# Upload to OpenAI ChatGPT
export OPENAI_API_KEY=sk-...
skill-seekers upload output/react-openai.zip --target openaiOr use complete workflow:
skill-seekers install react --target claude --upload| Feature | Claude AI | Google Gemini | OpenAI ChatGPT | Markdown |
|---|---|---|---|---|
| Format | ZIP + YAML | tar.gz | ZIP | ZIP |
| Upload API | Projects API | Corpora API | Vector Stores | N/A |
| Model | Sonnet 4.5 | Gemini 2.0 Flash | GPT-4o | N/A |
| Max Size | 32MB | 10MB | 512MB | N/A |
| Use Case | Claude Code | Grounded Gen | ChatGPT Custom | Export |
Choose based on:
- Claude AI: Best for Claude Code integration
- Google Gemini: Best for Grounded Generation in Gemini
- OpenAI ChatGPT: Best for ChatGPT Custom GPTs
- Markdown: Generic export for other tools
Yes! Package and upload to all platforms:
# Package for all platforms
for platform in claude gemini openai markdown; do
skill-seekers package output/react/ --target $platform
done
# Upload to all platforms
skill-seekers install react --target claude,gemini,openai --upload- Install skill to Claude Code directory:
skill-seekers install-agent --skill-dir output/react/ --agent-dir ~/.claude/skills/react- Use in Claude Code:
Use the react skill to explain React hooks
- Or upload to Claude AI:
skill-seekers upload output/react-claude.zip --target claudeAI enhancement transforms basic skills (2-3/10 quality) into production-ready skills (8-9/10 quality) using LLMs.
Two Modes:
- API Mode: Direct Claude API calls (fast, costs ~$0.15-0.30)
- LOCAL Mode: Uses Claude Code CLI (free with your Max plan)
What it improves:
- Better organization and structure
- Clearer explanations
- More examples and use cases
- Better cross-references
- Improved searchability
Usage:
# API mode (if ANTHROPIC_API_KEY is set)
skill-seekers enhance output/react/
# LOCAL mode (free!)
skill-seekers enhance output/react/ --mode LOCAL
# Background mode
skill-seekers enhance output/react/ --background
skill-seekers enhance-status output/react/ --watchC3.x features are advanced codebase analysis capabilities:
- C3.1: Design pattern detection (Singleton, Factory, Strategy, etc.)
- C3.2: Test example extraction (real usage examples from tests)
- C3.3: How-to guide generation (educational guides from test workflows)
- C3.4: Configuration pattern extraction (env vars, config files)
- C3.5: Architectural overview (system architecture analysis)
- C3.6: AI enhancement (Claude API integration for insights)
- C3.7: Architectural pattern detection (MVC, MVVM, Repository, etc.)
- C3.8: Standalone codebase scraping (300+ line SKILL.md from code alone)
Enable C3.x:
# All C3.x features enabled by default
skill-seekers codebase --directory /path/to/repo
# Skip specific features
skill-seekers codebase --directory . --skip-patterns --skip-how-to-guidesRouter skills help Claude navigate large documentation (>500 pages) by providing a table of contents and keyword index.
When to use:
- Documentation with 500+ pages
- Complex multi-section docs
- Large API references
Generate router:
skill-seekers generate-router output/large-docs/24 preset configs:
- Web: react, vue, angular, svelte, nextjs
- Python: django, flask, fastapi, sqlalchemy, pytest
- Game Dev: godot, pygame, unity
- DevOps: docker, kubernetes, terraform, ansible
- Unified: react-unified, vue-unified, nextjs-unified, etc.
List all:
skill-seekers list-configsSolutions:
- Use async mode (2-3x faster):
skill-seekers scrape --config react --async- Increase rate limit (faster requests):
{
"rate_limit": 0.1 // Faster (but may hit rate limits)
}- Limit pages:
{
"max_pages": 100 // Stop after 100 pages
}Common Causes:
- URL patterns exclude them
- Max pages limit reached
- BFS didn't reach them
Solutions:
# Check URL patterns in config
{
"url_patterns": {
"include": ["/docs/"], // Make sure your pages match
"exclude": [] // Remove overly broad exclusions
}
}
# Increase max pages
{
"max_pages": 1000 // Default is 500
}
# Use verbose mode to see what's being scraped
skill-seekers scrape --config react --verboseSolutions:
- Check internet connection
- Verify URL is accessible:
curl -I https://docs.example.com- Increase timeout:
{
"timeout": 30 // 30 seconds
}- Check rate limiting:
{
"rate_limit": 1.0 // Slower requests
}Quick fixes:
# Ensure package is installed
pip install -e ".[all-llms,dev]"
# Clear caches
rm -rf .pytest_cache/ **/__pycache__/
# Run specific failing test
pytest tests/test_file.py::test_name -vv
# Check for missing dependencies
pip install -e ".[all-llms,dev]"If still failing:
- Check Troubleshooting Guide
- Report issue on GitHub
# stdio mode (Claude Code, VS Code + Cline)
skill-seekers-mcp
# HTTP mode (Cursor, Windsurf, IntelliJ)
skill-seekers-mcp --transport http --port 876518 MCP tools:
list_configs- List preset configurationsgenerate_config- Generate config from docs URLvalidate_config- Validate config structureestimate_pages- Estimate page countscrape_docs- Scrape documentationpackage_skill- Package to .zipupload_skill- Upload to platformenhance_skill- AI enhancementinstall_skill- Complete workflowscrape_github- GitHub analysisscrape_pdf- PDF extractionunified_scrape- Multi-source scrapingmerge_sources- Merge docs + codedetect_conflicts- Find discrepanciessplit_config- Split large configsgenerate_router- Generate router skillsadd_config_source- Register git reposfetch_config- Fetch configs from git
Add to claude_desktop_config.json:
{
"mcpServers": {
"skill-seekers": {
"command": "skill-seekers-mcp"
}
}
}Restart Claude Code, then use:
Use skill-seekers MCP tools to scrape React documentation
Yes! Full API for Python integration:
from skill_seekers.cli.doc_scraper import scrape_all, build_skill
from skill_seekers.cli.adaptors import get_adaptor
# Scrape documentation
pages = scrape_all(
base_url='https://docs.example.com',
selectors={'main_content': 'article'},
config={'name': 'example'}
)
# Build skill
skill_path = build_skill(
config_name='example',
output_dir='output/example'
)
# Package for platform
adaptor = get_adaptor('claude')
package_path = adaptor.package(skill_path, 'output/')See: API Reference
Create config file (configs/my-framework.json):
{
"name": "my-framework",
"description": "My custom framework documentation",
"base_url": "https://docs.example.com/",
"selectors": {
"main_content": "article", // CSS selector
"title": "h1",
"code_blocks": "pre code"
},
"url_patterns": {
"include": ["/docs/", "/api/"],
"exclude": ["/blog/", "/changelog/"]
},
"categories": {
"getting_started": ["intro", "quickstart"],
"api": ["api", "reference"]
},
"rate_limit": 0.5,
"max_pages": 500
}Use config:
skill-seekers scrape --config configs/my-framework.jsonYes! We welcome config contributions:
- Create config in
configs/directory - Test it thoroughly:
skill-seekers scrape --config configs/your-framework.json- Submit PR on GitHub
Guidelines:
- Name:
{framework-name}.json - Include all required fields
- Add to appropriate category
- Test with real documentation
# Verbose output
skill-seekers scrape --config react --verbose
# Dry run (no actual scraping)
skill-seekers scrape --config react --dry-run
# Single page test
skill-seekers scrape --base-url https://docs.example.com/intro --max-pages 1
# Check selectors
skill-seekers validate-config configs/react.jsonMain Documentation:
- README - Project overview
- Usage Guide - Detailed usage
- API Reference - Programmatic usage
- Troubleshooting - Common issues
Guides:
- Check existing issues: https://github.com/yusufkaraaslan/Skill_Seekers/issues
- Create new issue with:
- Skill Seekers version (
skill-seekers --version) - Python version (
python --version) - Operating system
- Config file (if relevant)
- Error message and stack trace
- Steps to reproduce
- Skill Seekers version (
- Check roadmap: ROADMAP.md
- Create feature request: https://github.com/yusufkaraaslan/Skill_Seekers/issues
- Join discussions: https://github.com/yusufkaraaslan/Skill_Seekers/discussions
Yes!
- GitHub Discussions: https://github.com/yusufkaraaslan/Skill_Seekers/discussions
- Issue Tracker: https://github.com/yusufkaraaslan/Skill_Seekers/issues
- Project Board: https://github.com/users/yusufkaraaslan/projects/2
Version: 2.7.0 Last Updated: 2026-01-18 Questions? Ask on GitHub Discussions