49 KiB
CLI Reference - Skill Seekers
Version: 3.6.0 Last Updated: 2026-03-15 Complete reference for all 30 CLI commands
Table of Contents
- Overview
- Command Reference
- analyze - Analyze local codebase
- asciidoc - Extract from AsciiDoc files
- chat - Extract from Slack/Discord
- config - Configuration wizard
- confluence - Extract from Confluence
- create - Create skill (auto-detects source)
- enhance - AI enhancement (local mode)
- enhance-status - Monitor enhancement
- estimate - Estimate page counts
- github - Scrape GitHub repository
- Local HTML files (via
create) - Extract from local HTML files - install - One-command complete workflow
- install-agent - Install to AI agent
- jupyter - Extract from Jupyter notebooks
- manpage - Extract from man pages
- multilang - Multi-language docs
- notion - Extract from Notion
- openapi - Extract from OpenAPI/Swagger specs
- package - Package skill for platform
- pdf - Extract from PDF
- pptx - Extract from PowerPoint files
- quality - Quality scoring
- resume - Resume interrupted jobs
- rss - Extract from RSS/Atom feeds
- scan - AI-detect a project's tech stack and emit per-framework configs
- scrape - Scrape documentation
- stream - Stream large files
- unified - Multi-source scraping
- update - Incremental updates
- upload - Upload to platform
- video - Video extraction & setup
- workflows - Manage workflow presets
- Common Workflows
- Exit Codes
- Troubleshooting
Overview
Skill Seekers provides a unified CLI for converting documentation, GitHub repositories, PDFs, videos, notebooks, wikis, and 18 source types (17 + config) into AI-ready skills for 21+ LLM platforms and RAG pipelines.
Installation
# Basic installation
pip install skill-seekers
# With all platform support
pip install skill-seekers[all-llms]
# Development setup
pip install -e ".[all-llms,dev]"
Verify installation:
skill-seekers --version
Global Flags
These flags work with all source-type subcommands and create:
| Flag | Description |
|---|---|
-h, --help |
Show help message and exit |
--version |
Show version number and exit |
-n, --name |
Skill name |
-d, --description |
Skill description |
-o, --output |
Output directory |
--enhance-level |
AI enhancement level (0-3) |
--api-key |
Anthropic API key |
-v, --verbose |
Enable verbose (DEBUG) output |
-q, --quiet |
Minimize output (WARNING only) |
--dry-run |
Preview without executing |
--enhance-workflow |
Apply enhancement workflow preset |
Environment Variables
See ENVIRONMENT_VARIABLES.md for complete reference.
Common variables:
| Variable | Purpose |
|---|---|
ANTHROPIC_API_KEY |
Claude AI API access |
GOOGLE_API_KEY |
Google Gemini API access |
OPENAI_API_KEY |
OpenAI API access |
GITHUB_TOKEN |
GitHub API (higher rate limits) |
Command Reference
Commands are organized alphabetically.
analyze
Analyze local codebase and extract code knowledge.
Purpose: Deep code analysis with pattern detection, API extraction, and documentation generation.
Syntax:
skill-seekers create DIR [options]
Arguments:
| Name | Required | Description |
|---|---|---|
DIR (positional, or --directory DIR) |
Yes | Directory to analyze |
--output DIR |
No | Output directory (default: output/codebase/) |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
-n |
--name |
auto | Skill name (defaults to directory name) |
-d |
--description |
auto | Skill description |
--preset |
standard | Analysis preset: quick, standard, comprehensive | |
--preset-list |
Show available presets and exit | ||
--languages |
auto | Comma-separated languages (Python,JavaScript,C++) | |
--file-patterns |
Comma-separated file patterns | ||
--enhance-level |
0 | AI enhancement: 0=off (default), 1=SKILL.md, 2=+config, 3=full | |
--api-key |
Anthropic API key (or ANTHROPIC_API_KEY env) | ||
--enhance-workflow |
Apply workflow preset (can use multiple) | ||
--enhance-stage |
Add inline enhancement stage (name:prompt) | ||
--var |
Override workflow variable (key=value) | ||
--workflow-dry-run |
Preview workflow without executing | ||
--dry-run |
Preview analysis without creating output | ||
-v |
--verbose |
Enable verbose (DEBUG) logging | |
-q |
--quiet |
Minimize output (WARNING only) | |
--skip-api-reference |
Skip API docs generation | ||
--skip-dependency-graph |
Skip dependency graph | ||
--skip-patterns |
Skip pattern detection | ||
--skip-test-examples |
Skip test example extraction | ||
--skip-how-to-guides |
Skip how-to guide generation | ||
--skip-config-patterns |
Skip config pattern extraction | ||
--skip-docs |
Skip project docs (README) | ||
--no-comments |
Skip comment extraction |
Examples:
# Basic analysis with defaults
skill-seekers create ./my-project
# Quick analysis (1-2 min)
skill-seekers create ./my-project --preset quick
# Comprehensive analysis with all features
skill-seekers create ./my-project --preset comprehensive
# Specific languages only
skill-seekers create ./my-project --languages Python,JavaScript
# Skip heavy features for faster analysis
skill-seekers create ./my-project --skip-dependency-graph --skip-patterns
Exit Codes:
0- Success1- Analysis failed
asciidoc
Extract content from AsciiDoc files and generate skill.
Purpose: Convert .adoc / .asciidoc documentation into AI-ready skills.
Syntax:
skill-seekers create <asciidoc-file> [options]
Key Flags:
| Flag | Description |
|---|---|
--asciidoc-path PATH |
Path to AsciiDoc file or directory |
-n, --name |
Skill name |
--from-json FILE |
Build from extracted JSON |
--enhance-level |
AI enhancement (default: 0) |
--dry-run |
Preview without executing |
Examples:
# Single file
skill-seekers create guide.adoc --name my-guide
# Directory of AsciiDoc files
skill-seekers create ./docs/ --name project-docs
chat
Extract knowledge from Slack or Discord chat exports.
Purpose: Convert chat history into searchable AI-ready skills.
Syntax:
skill-seekers create [options]
Key Flags:
| Flag | Description |
|---|---|
--chat-export-path PATH |
Path to Slack/Discord export directory |
--platform {slack,discord} |
Chat platform (default: slack) |
-n, --name |
Skill name |
--dry-run |
Preview without executing |
Examples:
# From Slack export
skill-seekers create --chat-export-path ./slack-export/ --name team-knowledge
# From Discord export
skill-seekers create --chat-export-path ./discord-export/ --platform discord --name discord-docs
config
Interactive configuration wizard for API keys and settings.
Purpose: Setup GitHub tokens, API keys, and preferences.
Syntax:
skill-seekers config [options]
Flags:
| Short | Long | Description |
|---|---|---|
--github |
Go directly to GitHub token setup | |
--api-keys |
Go directly to API keys setup | |
--show |
Show current configuration | |
--test |
Test connections |
Examples:
# Full configuration wizard
skill-seekers config
# Quick GitHub setup
skill-seekers config --github
# View current config
skill-seekers config --show
# Test all connections
skill-seekers config --test
confluence
Extract content from Confluence wikis.
Purpose: Convert Confluence spaces into AI-ready skills via API or HTML export.
Syntax:
skill-seekers create [options]
Key Flags:
| Flag | Description |
|---|---|
--conf-base-url URL |
Confluence instance base URL |
--space-key KEY |
Confluence space key |
--conf-export-path PATH |
Path to Confluence HTML/XML export directory |
--max-pages N |
Max pages to extract |
-n, --name |
Skill name |
--dry-run |
Preview without executing |
Authentication comes from the CONFLUENCE_USERNAME / CONFLUENCE_TOKEN
environment variables.
Examples:
# Via API
export CONFLUENCE_USERNAME=user@example.com
export CONFLUENCE_TOKEN=...
skill-seekers create --conf-base-url https://wiki.example.com --space-key DEV --name dev-wiki
# From export
skill-seekers create --conf-export-path ./confluence-export/ --name team-docs
create
Create skill from any source. Auto-detects source type.
Purpose: Universal entry point - handles URLs, GitHub repos, local directories, PDFs, and config files automatically.
Syntax:
skill-seekers create [source] [options]
Arguments:
| Name | Required | Description |
|---|---|---|
source |
No | Source URL, repo, path, or config file |
Source Types (Auto-Detected):
| Source Pattern | Type | Example |
|---|---|---|
https://... |
Documentation | https://docs.react.dev/ |
owner/repo |
GitHub | facebook/react |
./path |
Local codebase | ./my-project |
*.pdf |
manual.pdf |
|
*.docx |
Word | report.docx |
*.epub |
EPUB | book.epub |
*.ipynb |
Jupyter Notebook | analysis.ipynb |
*.html/*.htm |
Local HTML | docs.html |
*.yaml/*.yml |
OpenAPI/Swagger | openapi.yaml |
*.adoc/*.asciidoc |
AsciiDoc | guide.adoc |
*.pptx |
PowerPoint | slides.pptx |
*.rss/*.atom |
RSS/Atom feed | feed.rss |
*.1-*.8/*.man |
Man page | grep.1 |
*.json |
Config file | config.json |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
-n |
--name |
auto | Skill name |
-d |
--description |
auto | Skill description |
-o |
--output |
auto | Output directory |
-p |
--preset |
Analysis preset: quick, standard, comprehensive | |
-c |
--config |
Load settings from JSON file | |
--enhance-level |
2 | AI enhancement level (0-3) | |
--api-key |
Anthropic API key | ||
--enhance-workflow |
Apply workflow preset (can use multiple) | ||
--enhance-stage |
Add inline enhancement stage | ||
--var |
Override workflow variable (key=value) | ||
--workflow-dry-run |
Preview workflow without executing | ||
--dry-run |
Preview without creating | ||
--chunk-for-rag |
Enable RAG chunking | ||
--chunk-tokens |
512 | Chunk size in tokens | |
--chunk-overlap-tokens |
50 | Chunk overlap in tokens | |
--help-web |
Show web scraping options | ||
--help-github |
Show GitHub options | ||
--help-local |
Show local analysis options | ||
--help-pdf |
Show PDF options | ||
--help-all |
Show all 120+ options |
Examples:
# Documentation website
skill-seekers create https://docs.django.com/
# GitHub repository
skill-seekers create facebook/react
# Local codebase
skill-seekers create ./my-project
# PDF file
skill-seekers create manual.pdf --name product-docs
# With preset
skill-seekers create https://docs.react.dev/ --preset quick
# With enhancement workflow
skill-seekers create ./my-project --enhance-workflow security-focus
# Multi-workflow chaining
skill-seekers create ./my-project \
--enhance-workflow security-focus \
--enhance-workflow api-documentation
enhance
Enhance SKILL.md using local coding agent (Claude Code).
Purpose: AI-powered quality improvement without API costs. Requires Claude Code installed.
Syntax:
skill-seekers enhance SKILL_DIRECTORY [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Path to skill directory |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--agent |
claude | Local coding agent to use | |
--agent-cmd |
Override agent command template | ||
--background |
Run in background | ||
--daemon |
Run as daemon | ||
--no-force |
Enable confirmations | ||
--timeout |
600 | Timeout in seconds |
Examples:
# Basic enhancement
skill-seekers enhance output/react/
# Background mode
skill-seekers enhance output/react/ --background
# With custom timeout
skill-seekers enhance output/react/ --timeout 1200
# Monitor background enhancement
skill-seekers enhance-status output/react/ --watch
Requirements: Claude Code must be installed and authenticated.
enhance-status
Monitor background enhancement processes.
Purpose: Check status of enhancement running in background/daemon mode.
Syntax:
skill-seekers enhance-status SKILL_DIRECTORY [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Path to skill directory |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
-w |
--watch |
Watch in real-time | |
--json |
JSON output | ||
--interval |
5 | Watch interval in seconds |
Examples:
# Check status once
skill-seekers enhance-status output/react/
# Watch continuously
skill-seekers enhance-status output/react/ --watch
# JSON output for scripting
skill-seekers enhance-status output/react/ --json
estimate
Estimate page count before scraping.
Purpose: Preview how many pages will be scraped without downloading.
Syntax:
skill-seekers estimate [config] [options]
Arguments:
| Name | Required | Description |
|---|---|---|
config |
No | Config JSON file path |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--all |
List all available configs | ||
-m |
--max-discovery |
1000 | Max pages to discover (-1 for unlimited) |
-u |
--unlimited |
Remove discovery limit (same as --max-discovery -1) |
|
-t |
--timeout |
30 | HTTP request timeout in seconds |
Examples:
# Estimate with config file
skill-seekers estimate configs/react.json
# Quick estimate (100 pages)
skill-seekers estimate configs/react.json --max-discovery 100
# Discover everything, slower sites get more time
skill-seekers estimate configs/react.json --unlimited --timeout 60
# List all available presets
skill-seekers estimate --all
github
Scrape GitHub repository and generate skill.
Purpose: Extract code, issues, releases, and metadata from GitHub repos.
Syntax:
skill-seekers create [options]
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--repo |
Repository (owner/repo format) | ||
-c |
--config |
Config JSON file | |
--token |
GitHub personal access token | ||
-n |
--name |
auto | Skill name |
-d |
--description |
auto | Description |
-o |
--output |
auto | Output directory |
--no-issues |
Skip GitHub issues | ||
--no-changelog |
Skip CHANGELOG | ||
--no-releases |
Skip releases | ||
--max-issues |
100 | Max issues to fetch | |
--scrape-only |
Only scrape, don't build | ||
--enhance-level |
2 | AI enhancement (0-3) | |
--api-key |
Anthropic API key | ||
--enhance-workflow |
Apply workflow preset | ||
--non-interactive |
CI/CD mode (fail fast) | ||
--profile |
GitHub profile from config | ||
--dry-run |
Preview without executing | ||
-v |
--verbose |
Enable verbose (DEBUG) logging | |
-q |
--quiet |
Minimize output (WARNING only) |
Examples:
# Basic repo analysis
skill-seekers create facebook/react
# With GitHub token (higher rate limits)
skill-seekers create facebook/react --token $GITHUB_TOKEN
# Skip issues for faster scraping
skill-seekers create facebook/react --no-issues
# Dry run to preview
skill-seekers create facebook/react --dry-run
# Scrape only, build later
skill-seekers create facebook/react --scrape-only
Local HTML files (via create)
Extract content from local HTML files or directories of HTML files. Use the
unified create command — the standalone html subcommand was removed in
v3.x.
Purpose: Convert local HTML documentation into AI-ready skills (for offline mirrors, exported docs, wget snapshots, etc.).
Auto-detection rules:
| Input | Detected as |
|---|---|
page.html / page.htm / page.xhtml |
html (single file) |
Directory dominated by .html/.htm/.xhtml files |
html (directory) |
| Mixed directory (mostly code) | local (codebase scraper) |
https://.../page.html |
web (fetched first) |
Explicit override: --html-path PATH forces html-scraper mode and beats
auto-detection. Useful when a directory contains a mix of code and HTML
files and you only want the HTML.
Examples:
# Single HTML file (auto-detected by extension)
skill-seekers create docs/index.html --name my-docs
# Whole directory of HTML files (auto-detected)
skill-seekers create ./mirror_output/site/ --name site-mirror
# Force HTML mode on a mixed/code-heavy directory
skill-seekers create ./repo/ --html-path ./repo/docs/build/html/ --name myrepo-docs
# --html-path alone works without a positional source
skill-seekers create --html-path ./html-export/ --name exported-docs
install
One-command complete workflow: fetch → scrape → enhance → package → upload.
Purpose: End-to-end automation for common workflows.
Syntax:
skill-seekers install --config CONFIG [options]
Arguments:
| Name | Required | Description |
|---|---|---|
--config CONFIG |
Yes | Config name or path |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--destination |
output/ | Output directory | |
--no-upload |
Skip upload to Claude | ||
--unlimited |
Remove page limits | ||
--dry-run |
Preview without executing |
Examples:
# Complete workflow with preset
skill-seekers install --config react
# Skip upload
skill-seekers install --config react --no-upload
# Custom config
skill-seekers install --config configs/my-project.json
# Dry run to preview
skill-seekers install --config react --dry-run
Note: AI enhancement is mandatory for install command.
install-agent
Install skill to AI agent directories (Cursor, Windsurf, Cline).
Purpose: Direct installation to IDE AI assistant context directories.
Syntax:
skill-seekers install-agent SKILL_DIRECTORY --agent AGENT [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Path to skill directory |
--agent AGENT |
Yes | Target agent: cursor, windsurf, cline, continue, roo, aider, bolt, kilo, kimi-code |
Flags:
| Short | Long | Description |
|---|---|---|
--force |
Overwrite existing |
Examples:
# Install to Cursor
skill-seekers install-agent output/react/ --agent cursor
# Install to Windsurf
skill-seekers install-agent output/react/ --agent windsurf
# Force overwrite
skill-seekers install-agent output/react/ --agent cursor --force
jupyter
Extract content from Jupyter Notebook files and generate skill.
Purpose: Convert .ipynb notebooks into AI-ready skills with code, markdown, and outputs.
Syntax:
skill-seekers create <notebook.ipynb> [options]
Key Flags:
| Flag | Description |
|---|---|
--notebook PATH |
Path to .ipynb file or directory |
-n, --name |
Skill name |
--from-json FILE |
Build from extracted JSON |
--enhance-level |
AI enhancement (default: 0) |
--dry-run |
Preview without executing |
Examples:
# Single notebook
skill-seekers create analysis.ipynb --name data-analysis
# Directory of notebooks
skill-seekers create ./notebooks/ --name ml-tutorials
manpage
Extract content from Unix/Linux man pages and generate skill.
Purpose: Convert man pages into AI-ready reference skills.
Syntax:
skill-seekers create <manpage.1> [options]
Key Flags:
| Flag | Description |
|---|---|
--man-names NAMES |
Comma-separated man page names (e.g., ls,grep,find) |
--man-path PATH |
Path to directory containing man page files |
-n, --name |
Skill name |
--dry-run |
Preview without executing |
Examples:
# By name (system man pages)
skill-seekers create --man-names ls,grep,find,awk --name unix-essentials
# From directory
skill-seekers create --man-path /usr/share/man/man1/ --name section1-cmds
multilang
Multi-language documentation support.
Purpose: Detect, report on, and export the languages present in a scraped skill directory.
Syntax:
skill-seekers multilang SKILL_DIRECTORY [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Skill directory path |
Flags:
| Short | Long | Description |
|---|---|---|
--detect |
Auto-detect languages | |
--report |
Generate translation report | |
--export |
Export by language to specified directory | |
--languages |
Restrict --detect/--export to these languages (space-separated, e.g. en es fr) |
Examples:
# Detect languages in a skill
skill-seekers multilang output/react/ --detect
# Translation coverage report
skill-seekers multilang output/react/ --report
# Export per-language trees, English and Spanish only
skill-seekers multilang output/react/ --export output/by-lang/ --languages en es
notion
Extract content from Notion workspaces.
Purpose: Convert Notion pages and databases into AI-ready skills via API or export.
Syntax:
skill-seekers create [options]
Key Flags:
| Flag | Description |
|---|---|
--database-id ID |
Notion database ID to extract from |
--page-id ID |
Notion page ID to extract from |
--notion-export-path PATH |
Path to Notion export directory |
-n, --name |
Skill name |
--dry-run |
Preview without executing |
The Notion integration token comes from the NOTION_TOKEN environment variable.
Examples:
# Via API
export NOTION_TOKEN=secret_...
skill-seekers create --database-id abc123 --name team-docs
# From export
skill-seekers create --notion-export-path ./notion-export/ --name project-wiki
openapi
Extract content from OpenAPI/Swagger specifications and generate skill.
Purpose: Convert API specs into AI-ready reference skills with endpoint documentation.
Syntax:
skill-seekers create <openapi.yaml> [options]
Key Flags:
| Flag | Description |
|---|---|
--spec PATH |
Path to OpenAPI/Swagger spec file |
--spec-url URL |
URL to OpenAPI/Swagger spec |
-n, --name |
Skill name |
--from-json FILE |
Build from extracted JSON |
--enhance-level |
AI enhancement (default: 0) |
--dry-run |
Preview without executing |
Examples:
# From local file
skill-seekers create api/openapi.yaml --name my-api
# From URL
skill-seekers create --spec-url https://petstore.swagger.io/v2/swagger.json --name petstore
package
Package skill directory into platform-specific format.
Purpose: Create uploadable packages for Claude, Gemini, OpenAI, and RAG platforms.
Syntax:
skill-seekers package SKILL_DIRECTORY [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Path to skill directory |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--target |
claude | Target platform | |
--no-open |
Don't open output folder | ||
--skip-quality-check |
Skip quality checks | ||
--upload |
Auto-upload after packaging | ||
--streaming |
Streaming mode for large docs | ||
--streaming-chunk-chars |
4000 | Max chars per chunk (streaming) | |
--streaming-overlap-chars |
200 | Overlap between chunks (chars) | |
--batch-size |
100 | Chunks per batch | |
--chunk-for-rag |
Enable RAG chunking | ||
--chunk-tokens |
512 | Max tokens per chunk | |
--chunk-overlap-tokens |
50 | Overlap between chunks (tokens) | |
--no-preserve-code-blocks |
Allow code block splitting |
Supported Platforms:
| Platform | Format | Flag |
|---|---|---|
| Claude AI | ZIP + YAML | --target claude |
| Google Gemini | tar.gz | --target gemini |
| OpenAI | ZIP + Vector | --target openai |
| MiniMax | ZIP | --target minimax |
| OpenCode | ZIP | --target opencode |
| Kimi | ZIP | --target kimi |
| DeepSeek | ZIP | --target deepseek |
| Qwen | ZIP | --target qwen |
| OpenRouter | ZIP | --target openrouter |
| Together AI | ZIP | --target together |
| Fireworks AI | ZIP | --target fireworks |
| LangChain | Documents | --target langchain |
| LlamaIndex | TextNodes | --target llama-index |
| Haystack | Documents | --target haystack |
| ChromaDB | Collection | --target chroma |
| Weaviate | Objects | --target weaviate |
| Qdrant | Points | --target qdrant |
| FAISS | Index | --target faiss |
| Pinecone | Markdown | --target pinecone |
| Markdown | ZIP | --target markdown |
Examples:
# Package for Claude (default)
skill-seekers package output/react/
# Package for Gemini
skill-seekers package output/react/ --target gemini
# Package for multiple platforms
for platform in claude gemini openai; do
skill-seekers package output/react/ --target $platform
done
# Package with upload
skill-seekers package output/react/ --target claude --upload
# Streaming mode for large docs
skill-seekers package output/large-docs/ --streaming
Extract content from PDF and generate skill.
Purpose: Convert PDF manuals, documentation, and papers into skills.
Syntax:
skill-seekers create --pdf [options]
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
-c |
--config |
PDF config JSON file | |
--pdf |
Direct PDF file path | ||
-n |
--name |
auto | Skill name |
-d |
--description |
auto | Description |
-o |
--output |
auto | Output directory |
--from-json |
Build from extracted JSON | ||
--enhance-level |
0 | AI enhancement (default: 0 for PDF) | |
--api-key |
Anthropic API key | ||
--enhance-workflow |
Apply workflow preset | ||
--enhance-stage |
Add inline stage | ||
--var |
Override workflow variable | ||
--workflow-dry-run |
Preview workflow | ||
--dry-run |
Preview without executing | ||
-v |
--verbose |
Enable verbose (DEBUG) logging | |
-q |
--quiet |
Minimize output (WARNING only) |
Examples:
# Direct PDF path
skill-seekers create --pdf manual.pdf --name product-manual
# With config file (the config's source carries the PDF path)
skill-seekers create --config configs/manual.json
# Enable enhancement
skill-seekers create --pdf manual.pdf --enhance-level 2
# Dry run to preview
skill-seekers create --pdf manual.pdf --name test --dry-run
pptx
Extract content from PowerPoint files and generate skill.
Purpose: Convert .pptx presentations into AI-ready skills.
Syntax:
skill-seekers create <slides.pptx> [options]
Key Flags:
| Flag | Description |
|---|---|
--pptx PATH |
Path to PowerPoint file (.pptx) |
-n, --name |
Skill name |
--from-json FILE |
Build from extracted JSON |
--enhance-level |
AI enhancement (default: 0) |
--dry-run |
Preview without executing |
Examples:
# Extract from presentation
skill-seekers create training-slides.pptx --name training-material
# With enhancement
skill-seekers create architecture.pptx --name arch-overview --enhance-level 2
quality
Analyze and score skill documentation quality.
Purpose: Quality assurance before packaging/uploading.
Syntax:
skill-seekers quality SKILL_DIRECTORY [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Path to skill directory |
Flags:
| Short | Long | Description |
|---|---|---|
--report |
Generate detailed report | |
--output |
Output path for JSON report | |
--threshold |
Quality gate threshold (0-10). When set, exit non-zero if the skill scores below it; without it the command only reports (exit 0) |
Examples:
# Basic quality check (report only, always exits 0)
skill-seekers quality output/react/
# Detailed report
skill-seekers quality output/react/ --report
# Save report as JSON
skill-seekers quality output/react/ --output quality.json
# Quality gate: fail (non-zero exit) if below threshold
skill-seekers quality output/react/ --threshold 7.0
resume
Resume interrupted scraping job from checkpoint.
Purpose: Continue from where a scrape failed or was interrupted.
Syntax:
skill-seekers resume [JOB_ID] [options]
Arguments:
| Name | Required | Description |
|---|---|---|
JOB_ID |
No | Job ID to resume |
Flags:
| Short | Long | Description |
|---|---|---|
--list |
List all resumable jobs | |
--clean |
Clean up old progress files |
Examples:
# List resumable jobs
skill-seekers resume --list
# Resume specific job
skill-seekers resume job-abc123
# Clean old checkpoints
skill-seekers resume --clean
rss
Extract content from RSS/Atom feeds and generate skill.
Purpose: Convert blog feeds and news sources into AI-ready skills.
Syntax:
skill-seekers create <feed.rss> [options]
Key Flags:
| Flag | Description |
|---|---|
--feed-url URL |
URL of the RSS/Atom feed |
--feed-path PATH |
Path to local RSS/Atom feed file |
-n, --name |
Skill name |
--dry-run |
Preview without executing |
Examples:
# From URL
skill-seekers create https://blog.example.com/feed.xml --name blog-knowledge
# From local file
skill-seekers create --feed-path ./feed.rss --name feed-summaries
scan
AI-detect a project's tech stack and emit one config per detected framework, plus a <project>-codebase.json for the project's own code.
Purpose: Bootstrap a complete Skill Seekers knowledge base for an existing project in one command. An AI agent inspects ~50 manifest types (package.json, pyproject.toml, Pipfile, environment.yml, Cargo.toml, go.mod, Gemfile, build.gradle, pom.xml, composer.json, mix.exs, flake.nix, deno.json, deps.edn, dune-project, BUILD.bazel, project.godot, …), README, Dockerfile/CI, the first 2 KB of each sampled source file, and the git remote URL — then emits per-framework config files into a chosen output directory. Each emitted config is stamped with metadata.detected_version so re-scans report added, version-bumped, and removed dependencies (the last MOVED to .archived/, never deleted).
Usage:
skill-seekers scan <directory> [OPTIONS]
Arguments:
directory(required) - Project root to scan (e.g.,.,./my-react-app)
Options:
| Flag | Default | Purpose |
|---|---|---|
--out <dir> |
./configs/scanned/ |
Output directory for emitted configs |
--no-fetch |
off | Skip the skillseekersweb.com API fallback during resolution (offline mode) |
--no-generate |
off | Skip AI generation for unmapped detections |
--no-publish-prompt |
off | Suppress the interactive "Submit to community registry?" prompt (CI-friendly) |
--agent <name> |
claude (or $SKILL_SEEKER_AGENT) |
LOCAL agent name when no API key is set: claude, codex, copilot, opencode, kimi, custom |
--min-confidence <0-1> |
0.4 |
Drop AI detections below this confidence |
--max-ai-generations <N> |
10 |
Cap AI config generation for unmapped detections. Once hit, remaining unmapped are listed as unresolved in the report but no further AI calls fire. Pass 0 to disable AI generation entirely (same as --no-generate). |
--dry-run |
off | Preview what scan WOULD emit. No files written, no AI generation. Resolution chain IS exercised (cheap, informs the preview). |
--probe-urls |
off | After AI generation, HEAD-probe each base_url / GitHub repo URL (5s timeout). On 4xx/5xx: re-ask AI once with feedback. If still bad: stamp config with metadata._url_unverified. Adds 5-10s per generated config. |
--verbose, -v |
off | Show each detection with its evidence + INFO-level logging |
Resolution chain for each detection:
- Out-dir cache —
<out_dir>/<slug>.jsonfrom a prior scan is reused (just re-stampsmetadata.detected_version, preserving any manual edits) - Local repo / user dir —
./configs/<name>.jsonthen~/.config/skill-seekers/configs/<name>.json(each candidate is tried against the canonical-name list which includes CJK / EU suffix strips, e.g. "Godot 引擎" →godot) - Community API —
https://api.skillseekersweb.com/api/configs/<name>(unless--no-fetch) - AI generation — last resort (unless
--no-generateor--max-ai-generationscap reached); validated against the unified config schema and registry name regex; optionally URL-probed (--probe-urls)
Examples:
# Bootstrap a React project
skill-seekers scan ./my-react-app --out ./configs/scanned/
# → react.json, vite.json, tailwind.json, my-react-app-codebase.json
#
# Then build any of the emitted configs:
skill-seekers create ./configs/scanned/react.json
# Offline mode — only use local presets, never call AI or the API
skill-seekers scan ./my-project --out ./configs/ --no-fetch --no-generate
# Dry-run on a monorepo — preview cost before committing
skill-seekers scan ./my-monorepo --dry-run --verbose
# 🔍 DRY RUN — no files written, no AI generation invoked.
# Cap AI generation cost on a project with many unmapped deps
skill-seekers scan ./my-project --max-ai-generations 3
# Validate AI URLs (slower but catches hallucinations)
skill-seekers scan ./my-project --probe-urls
# CI-friendly — no interactive submission prompt
skill-seekers scan . --out ./configs/ --no-publish-prompt
# Tightly filter low-confidence detections
skill-seekers scan ./my-project --min-confidence 0.7
# Re-scan reports diff vs prior scan AND archives stale configs
skill-seekers scan ./my-react-app --out ./configs/scanned/
# Diff vs previous scan:
# + added prisma
# ↻ updated react 18.2.0 → 18.3.1
# - removed moment
# 📦 Archived 1 stale config(s) → 2026-05-25T14-30-00Z/
Output:
- One JSON config per resolved/generated detection (lowercased slug filename, e.g.
react.json) - One
<project>-codebase.jsonalways emitted (atype: localsource pointed at the project root) out_dir/.archived/<UTC-timestamp>/— stale configs from previous scans that no longer match a detection (moved here on each run; user mustrm -rfto clean up)- A doctor-style report on stdout showing detections, resolved/generated/unresolved/archived counts, and the diff vs prior scan
Exit codes:
0— at least one framework config OR the codebase config was emitted1— directory invalid or nothing emitted (no detections AND no codebase config — extremely rare)130— interrupted (Ctrl+C)
Required environment variables (optional):
ANTHROPIC_API_KEY/OPENAI_API_KEY/GOOGLE_API_KEY/MOONSHOT_API_KEY— at least one needed for API-mode detection. Without any, falls back to LOCAL agent mode.GITHUB_TOKEN— required only to submit AI-generated configs to the community registry. The scan itself runs without it (it just skips the publish prompt with a one-line hint).
Publish flow (native async, opt-in):
- After scan completes, for each freshly AI-generated config, prompts: "Submit '' to the community config registry?"
- Idempotency: before submitting, queries the GitHub Search API for an existing open issue with the config name in the title. If found, prints the existing URL and skips — no duplicate submissions.
- Retry: transient failures (rate limit, 5xx) retry up to 3 times with 0s / 5s / 15s backoff.
- Per-attempt timeout: 30s.
- Opens a GitHub issue at skill-seekers-configs — no direct git push.
Notes:
- AI-generated configs whose
namedoesn't match^[a-zA-Z0-9_-]+$are rejected and retried — the registry submission flow requires the regex. - Reads up to ~64 KB of project signals (manifests, README, Dockerfile/CI, first 2 KB of each sampled source file). Per-kind budgets prevent a 50 KB
package.jsonfrom crowding out README + source samples. - Source-file sampling means actual code is in the prompt. For a fully-local flow use
skill-seekers create ./path --enhance-level 0.
scrape
Scrape documentation website and generate skill.
Purpose: The main command for converting web documentation into skills.
Syntax:
skill-seekers create [url] [options]
Arguments:
| Name | Required | Description |
|---|---|---|
url |
No | Base documentation URL |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
-c |
--config |
Config JSON file | |
-n |
--name |
Skill name | |
-d |
--description |
Description | |
--enhance-level |
2 | AI enhancement (0-3) | |
--api-key |
Anthropic API key | ||
--enhance-workflow |
Apply workflow preset | ||
--enhance-stage |
Add inline stage | ||
--var |
Override workflow variable | ||
--workflow-dry-run |
Preview workflow | ||
-i |
--interactive |
Interactive mode | |
--url |
Base URL (alternative to positional) | ||
--max-pages |
Max pages to scrape | ||
--skip-scrape |
Use existing data | ||
--dry-run |
Preview without scraping | ||
--resume |
Resume from checkpoint | ||
--fresh |
Clear checkpoint | ||
-r |
--rate-limit |
0.5 | Rate limit in seconds |
-w |
--workers |
1 | Parallel workers (max 10) |
--async |
Enable async mode | ||
--no-rate-limit |
Disable rate limiting | ||
--interactive-enhancement |
Interactive enhancement | ||
-v |
--verbose |
Verbose output | |
-q |
--quiet |
Quiet output |
Examples:
# With preset config
skill-seekers create --config configs/react.json
# Quick mode
skill-seekers create --name react --url https://react.dev/
# Interactive mode
skill-seekers create --interactive
# Dry run
skill-seekers create --config configs/react.json --dry-run
# Fast async scraping
skill-seekers create --config configs/react.json --async --workers 5
# Skip scrape, rebuild from cache
skill-seekers create --config configs/react.json --skip-scrape
# Resume interrupted scrape
skill-seekers create --config configs/react.json --resume
stream
Stream large files chunk-by-chunk.
Purpose: Memory-efficient processing for very large documentation sites.
Syntax:
skill-seekers stream INPUT_FILE [options]
Arguments:
| Name | Required | Description |
|---|---|---|
INPUT_FILE |
Yes | Large file to stream |
Flags:
| Short | Long | Description |
|---|---|---|
--streaming-chunk-chars |
Maximum characters per chunk (default: 4000) | |
--streaming-overlap-chars |
Chunk overlap in characters (default: 200) | |
--batch-size |
Batch size for processing (default: 100) | |
--checkpoint |
Checkpoint file path | |
--output |
Write the collected chunks as JSON (a .json file path, or a directory that will receive chunks.json) |
Examples:
# Stream a large documentation file
skill-seekers stream big-docs.md
# Custom chunk size and overlap
skill-seekers stream big-docs.md --streaming-chunk-chars 1000 --streaming-overlap-chars 100
# Save the collected chunks
skill-seekers stream big-docs.md --output chunks.json
unified
Multi-source scraping combining docs + GitHub + PDF.
Purpose: Create a single skill from multiple sources with conflict detection.
Syntax:
skill-seekers create --config FILE [options]
Arguments:
| Name | Required | Description |
|---|---|---|
--config FILE |
Yes | Unified config JSON file |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--merge-mode |
claude-enhanced | Merge mode: rule-based, claude-enhanced | |
--fresh |
Clear existing data | ||
--dry-run |
Dry run mode (previews sources without writing) | ||
-o |
--output |
output/ | Output directory (honored for unified configs; trailing slashes are safe) |
--enhance-level |
Override enhancement level (0-3) | ||
--api-key |
Anthropic API key (or ANTHROPIC_API_KEY env) | ||
--enhance-workflow |
Apply workflow preset (can use multiple) | ||
--enhance-stage |
Add inline enhancement stage (name:prompt) | ||
--var |
Override workflow variable (key=value) | ||
--workflow-dry-run |
Preview workflow without executing | ||
--skip-codebase-analysis |
Skip C3.x codebase analysis for GitHub sources |
Examples:
# Unified scraping
skill-seekers create --config configs/react-unified.json
# Fresh start
skill-seekers create --config configs/react-unified.json --fresh
# Rule-based merging
skill-seekers create --config configs/react-unified.json --merge-mode rule-based
Config Format:
{
"name": "react-complete",
"sources": [
{"type": "docs", "base_url": "https://react.dev/"},
{"type": "github", "repo": "facebook/react"}
]
}
update
Update docs without full rescrape.
Purpose: Incremental updates for changed documentation.
Syntax:
skill-seekers update SKILL_DIRECTORY [options]
Arguments:
| Name | Required | Description |
|---|---|---|
SKILL_DIRECTORY |
Yes | Skill directory to update |
Flags:
| Short | Long | Description |
|---|---|---|
--check-changes |
Check for changes only | |
--force |
Force update all files (currently accepted but not yet implemented) | |
--generate-package |
Generate update package at specified path | |
--apply-update |
Apply update package from specified path |
Examples:
# Check for changes
skill-seekers update output/react/ --check-changes
# Generate an update package
skill-seekers update output/react/ --generate-package update-pkg.json
# Apply an update package
skill-seekers update output/react/ --apply-update update-pkg.json
upload
Upload skill package to LLM platform or vector database.
Purpose: Deploy packaged skills to target platforms.
Syntax:
skill-seekers upload PACKAGE_FILE [options]
Arguments:
| Name | Required | Description |
|---|---|---|
PACKAGE_FILE |
Yes | Path to package file (.zip, .tar.gz) |
Flags:
| Short | Long | Default | Description |
|---|---|---|---|
--target |
claude | Target platform | |
--api-key |
Platform API key | ||
--chroma-url |
ChromaDB URL | ||
--persist-directory |
./chroma_db | ChromaDB local directory | |
--embedding-function |
Embedding function | ||
--openai-api-key |
OpenAI key for embeddings | ||
--weaviate-url |
Weaviate URL | ||
--use-cloud |
Use Weaviate Cloud | ||
--cluster-url |
Weaviate Cloud cluster URL |
Examples:
# Upload to Claude
skill-seekers upload output/react-claude.zip
# Upload to Gemini
skill-seekers upload output/react-gemini.tar.gz --target gemini
# Upload to ChromaDB
skill-seekers upload output/react-chroma.zip --target chroma
# Upload to Weaviate Cloud
skill-seekers upload output/react-weaviate.zip --target weaviate \
--use-cloud --cluster-url https://xxx.weaviate.network
video
Extract skills from video tutorials (YouTube, Vimeo, or local files).
Usage
# Setup (first time — auto-detects GPU, installs PyTorch + visual deps)
skill-seekers create --setup
# Extract from YouTube
skill-seekers create --video-url https://www.youtube.com/watch?v=VIDEO_ID --name my-skill
# With visual frame extraction (requires --setup first)
skill-seekers create --video-url VIDEO_URL --name my-skill --visual
# Local video file
skill-seekers create --video-url /path/to/video.mp4 --name my-skill
Key Flags
| Flag | Description |
|---|---|
--setup |
Auto-detect GPU and install visual extraction dependencies |
--url URL |
Video URL (YouTube, Vimeo) or local file path |
--name NAME |
Skill name for output |
--visual |
Enable visual frame extraction (OCR on keyframes) |
--vision-api |
Use Claude Vision API as OCR fallback for low-confidence frames |
Notes
--setupdetects NVIDIA (CUDA), AMD (ROCm), or CPU-only and installs the correct PyTorch variant- Requires
pip install skill-seekers[video](transcripts) orskill-seekers[video-full](+ whisper + scene detection) - EasyOCR is NOT included in pip extras — it is installed by
--setupwith the correct GPU backend
workflows
Manage enhancement workflow presets.
Purpose: List, inspect, copy, add, remove, and validate YAML workflow presets.
Syntax:
skill-seekers workflows ACTION [options]
Actions:
| Action | Description |
|---|---|
list |
List all workflows (bundled + user) |
show |
Print YAML content of workflow |
copy |
Copy bundled workflow to user dir |
add |
Install custom YAML workflow |
remove |
Delete user workflow |
validate |
Validate workflow file |
Flags:
| Short | Long | Description |
|---|---|---|
--name |
Custom name for add action |
Examples:
# List all workflows
skill-seekers workflows list
# Show workflow content
skill-seekers workflows show security-focus
# Copy for editing
skill-seekers workflows copy security-focus
# Add custom workflow
skill-seekers workflows add ./my-workflow.yaml
# Add with custom name
skill-seekers workflows add ./workflow.yaml --name my-custom
# Remove user workflow
skill-seekers workflows remove my-workflow
# Validate workflow
skill-seekers workflows validate security-focus
skill-seekers workflows validate ./my-workflow.yaml
Built-in Presets:
default- Standard enhancementminimal- Light enhancementsecurity-focus- Security analysis (4 stages)architecture-comprehensive- Deep architecture review (7 stages)api-documentation- API docs focus (3 stages)
Common Workflows
Workflow 1: Documentation → Skill
# 1. Estimate pages (optional)
skill-seekers estimate configs/react.json
# 2. Scrape documentation
skill-seekers create --config configs/react.json
# 3. Enhance SKILL.md (optional, recommended)
skill-seekers enhance output/react/
# 4. Package for Claude
skill-seekers package output/react/ --target claude
# 5. Upload
skill-seekers upload output/react-claude.zip
Workflow 2: GitHub → Skill
# 1. Analyze repository
skill-seekers create facebook/react
# 2. Package
skill-seekers package output/react/ --target claude
# 3. Upload
skill-seekers upload output/react-claude.zip
Workflow 3: Local Codebase → Skill
# 1. Analyze codebase
skill-seekers create ./my-project
# 2. Package
skill-seekers package output/codebase/ --target claude
# 3. Install to Cursor
skill-seekers install-agent output/codebase/ --agent cursor
Workflow 4: PDF → Skill
# 1. Extract PDF
skill-seekers create --pdf manual.pdf --name product-docs
# 2. Package
skill-seekers package output/product-docs/ --target claude
Workflow 5: Multi-Source → Skill
# 1. Create unified config (configs/my-project.json)
# 2. Run unified scraping
skill-seekers create --config configs/my-project.json
# 3. Package
skill-seekers package output/my-project/ --target claude
Workflow 6: One-Command Complete
# Everything in one command
skill-seekers install --config react --destination ./output
# Or with create
skill-seekers create https://docs.react.dev/ --preset standard
Exit Codes
Standardized in cli/exit_codes.py:
| Code | Meaning |
|---|---|
0 |
Success (EXIT_SUCCESS) |
1 |
General/runtime error (EXIT_ERROR) |
2 |
Bad arguments / failed validation (EXIT_VALIDATION, matches argparse) |
130 |
Interrupted by user (Ctrl+C, EXIT_INTERRUPT) |
Troubleshooting
Command not found
# Ensure package is installed
pip install skill-seekers
# Check PATH
which skill-seekers
ImportError
# Install in editable mode (development)
pip install -e .
Rate limiting
# Increase rate limit
skill-seekers create --config react.json --rate-limit 1.0
Out of memory
# Use streaming mode
skill-seekers package output/large/ --streaming
See Also
- Config Format - JSON configuration specification
- Environment Variables - Complete env var reference
- MCP Reference - MCP tools documentation
For additional help: skill-seekers --help or skill-seekers <command> --help