Skip to main content

SkillSmith

Convert GitHub repositories and documentation websites into Agent Skills — structured knowledge documents that teach AI agents how to use a library or API effectively.

How it works

SkillSmith runs a 5-phase pipeline designed to handle large documentation sources without hitting LLM output limits:

Ingest (GitHub API / BFS crawler)
  ↓
Phase 1  Map     — parallel LLM summarization of each page
                   reference pages keep original content (no compression)
  ↓
Phase 2  Reduce  — merge summaries into a unified overview
  ↓
Phase 3  Plan    — decide which files to generate (SKILL.md sections, references/, scripts/)
  ↓
Phase 4  Fan-out — Batch A: reference files (parallel, full token budget each)
                   Batch B: SKILL.md body + scripts (parallel, body knows what refs exist)
  ↓
Phase 5  Assemble → write to disk

Each generated file gets its own full LLM output budget instead of all files competing for a single 8k-token response.

Installation

git clone https://github.com/your-org/skillsmith
cd skillsmith
uv sync

Requires Python 3.11+ and an Anthropic API key (or any OpenAI-compatible endpoint).

Usage

Interactive chat

uv run skillsmith
SkillSmith — Convert repos and docs into Agent Skills
You: Create a skill from https://github.com/anthropics/anthropic-sdk-python
You: Generate a skill from https://docs.pydantic.dev --output ./my-skills

Single message

# From a GitHub repo
uv run skillsmith -m "Create a skill from https://github.com/anthropics/anthropic-sdk-python"

# From a documentation site
uv run skillsmith -m "Generate a skill from https://docs.pydantic.dev" --output ./skills/

# With a custom name
uv run skillsmith -m "Create a skill named fastapi-auth from https://fastapi.tiangolo.com/tutorial/security/"

MCP server

Expose SkillSmith as an MCP tool so other agents (Claude Code, Cursor, etc.) can generate skills on demand:

uv run skillsmith serve --port 8000

Available MCP tools:

  • create_skill_from_github(url, output_dir, name?) — generate from a GitHub repo
  • create_skill_from_docs(url, output_dir, depth?, name?) — generate from a docs site
  • list_skills(directory) — list existing skill folders

Configuration

Priority: CLI flags > environment variables > ~/.skillsmith/config.toml

CLI flag Env var Config key Default
--api-key SKILLSMITH_API_KEY api_key (Anthropic default)
--base-url SKILLSMITH_BASE_URL base_url "" (use Anthropic)
--model SKILLSMITH_MODEL model claude-opus-4-5
--output SKILLSMITH_OUTPUT_DIR output_dir ~/skills

~/.skillsmith/config.toml

api_key = "sk-ant-..."
model   = "claude-opus-4-5"
output_dir = "~/skills"

OpenAI-compatible endpoints

Set base_url to use any OpenAI-compatible API (Ollama, vLLM, OpenRouter, etc.):

SKILLSMITH_BASE_URL=https://api.openai.com/v1 \
SKILLSMITH_MODEL=gpt-4o \
uv run skillsmith -m "Create a skill from https://github.com/openai/openai-python"

Output structure

Each skill is written as a folder following the Agent Skills specification:

skills/
└── anthropic-sdk/
    ├── SKILL.md              # Frontmatter + instructions (<500 lines)
    ├── references/
    │   ├── api-reference.md  # Loaded on demand by the agent
    │   └── error-codes.md
    └── scripts/
        ├── quickstart.py     # Self-contained, runnable
        └── streaming.py

SKILL.md includes cross-references to companion files:

See [API Reference](references/api-reference.md) for full method signatures.
Run scripts/quickstart.py to get started.

Project structure

src/skillsmith/
├── main.py           # CLI entry point (typer)
├── config.py         # Config loading + LLM factory
├── models.py         # Pydantic: Page, ContentBundle, SkillDraft
├── generator.py      # 5-phase Map-Reduce pipeline
├── writer.py         # Write SkillDraft to disk
├── chat.py           # Terminal UI (rich + prompt_toolkit)
├── mcp_server.py     # MCP server (fastmcp)
├── agent/
│   ├── graph.py      # LangGraph StateGraph
│   └── tools.py      # @tool wrappers for agent use
└── ingestors/
    ├── github.py     # GitHub REST API (README + docs/ + root .md files)
    └── docs.py       # BFS crawler (httpx + BeautifulSoup + markdownify)

Release files for agentskillsmith 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentskillsmith 2.0.0
File Size Uploaded
agentskillsmith-2.0.0.tar.gz 281.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agentskillsmith 2.0.0
File Interpreter ABI Platform
agentskillsmith-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 305.9 kB

Release files / agentskillsmith-2.0.0.tar.gz

Download URL agentskillsmith-2.0.0.tar.gz
Size 281.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8b61ce7fd723aae8e9249d42cffac776f42ab39630fbd4801a19aacb2eeac62c
BLAKE2b-256 checksum
How to use checksums
e3c885c9c8372538764c0ad0a9b162ee23efca84a37d76f2c911ad5eea4900c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.20

Release files / agentskillsmith-2.0.0-py3-none-any.whl

Download URL agentskillsmith-2.0.0-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
984d84b052fcede3cf9b5b69abc0d24b731e3803e197815e98a9e82b0af9eb5b
BLAKE2b-256 checksum
How to use checksums
a5458257e7ff5ef8895ef4f40ba70883b36215e722756d8f013bc532c15acfa6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.20

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page