Skip to main content

Synthkit

PyPI Python 3.10+ License: MIT Tests Coverage Ruff Checked with mypy

A toolkit for amplifying what you can do with AI. Synthkit combines thinking tools (structured exploration, strategic debate) with production tools (document conversion, project scaffolding) into a single package — usable from the command line, from Claude Code, or both.

Installation

# Run directly with uvx (no install needed)
uvx synthkit html document.md

# Or install globally
uv tool install synthkit

# Or install with pip
pip install synthkit

Pandoc is bundled automatically via pypandoc_binary — no separate install needed.

Claude Code Plugin

Synthkit is also available as a Claude Code plugin, adding skills directly into your coding assistant:

/plugin install synthkit

Skills

Skills are Claude Code slash commands that give Claude specialized capabilities. Install the plugin and invoke them with /synthkit:<skill-name>.

Thinking Tools

These skills help you think through problems before committing to solutions.

/synthkit:explore-with-me — Structured Exploration

Claude acts as an interviewer, not a generator. It draws out your domain knowledge through focused questions, structures your thinking, identifies gaps, and pressure-tests assumptions — only writing findings after validating them with you.

When to use: You have a decision to make, a problem to diagnose, a risk to assess, or a strategy to shape — and you know more about the situation than the AI does. The exploration typically resolves in a single conversation (5-15 rounds).

Examples: "Help me think through whether we should migrate to GraphQL." "I need to figure out why our deploy pipeline keeps breaking." "Let's explore the tradeoffs of hiring contractors vs. full-time."

Output: A markdown file with context, key findings, constraints, tensions, and recommendations.

/synthkit:init-discovery — Discovery Project Scaffolding

Sets up a multi-session exploration project. Claude interviews you about the initiative, then generates a customized CLAUDE.md (so future sessions have full context) plus a working file structure for sustained investigation.

When to use: The problem is too big for one conversation. You'll be coming back to it over days or weeks, possibly with evolving deliverables and multiple stakeholders. You need Claude to maintain context across sessions.

Examples: "Set up a discovery project for our Q3 platform migration." "I need to investigate our incident response process over the next few weeks." "Scaffold an exploration of our pricing strategy."

Output: CLAUDE.md + working files (current-state.md, problem-analysis.md, requirements.md, options/, decision-log.md).

/synthkit:boardroom — Strategic Debate

Think of this as a Monte Carlo simulation with intelligence. Traditional Monte Carlo varies the inputs and sees where outputs cluster. Boardroom varies the mental models — each advisor is a sample drawn from a different distribution of strategic thinking — and sees where conclusions cluster. When they don't cluster, you understand why they diverge. And unlike random sampling, Round 2 is adaptive: the samples communicate, update on each other's reasoning, and change their positions.

Concretely: spin up a board of AI advisors — real people whose strategic thinking you admire — and have them debate your decision in two rounds. Round 1: each advisor argues their position in parallel. Round 2: they read each other's arguments and fight — naming names, quoting each other, changing votes or doubling down. The vote tracker is your convergence metric. The interactive sliders let you run sensitivity analysis after the fact.

Inspired by Allie K Miller's boardroom concept.

When to use: You have a high-stakes strategic decision and want to stress-test it from multiple perspectives before committing. Pricing, launches, partnerships, organizational changes, market entry — anything where smart people would disagree.

Examples: /synthkit:boardroom "Should I price this at $25,000 or $50,000?" /synthkit:boardroom "How should we launch the new developer tier?" /synthkit:boardroom "Should we build or buy our analytics platform?"

Output: A folder with three files:

  • debate.md — Full transcript with vote tracker, key tensions, and decision framework
  • debate.html — Interactive dashboard with assumption sliders that recalculate projections
  • debate.pdf — Print-optimized version for sharing with your team

/synthkit:map-the-repo — Codebase Documentation

Generate a browsable wiki from any codebase. The script scans your repo, extracts architecture, APIs, and module structure via AST analysis, then generates markdown docs and a self-contained HTML site with dark theme, Mermaid diagrams, full-text search, and syntax highlighting.

When to use: You need to document a codebase, onboard a new engineer, hand off a repo, or just understand a project's architecture. Works with Python (deep AST analysis), TypeScript, JavaScript, Go, Java, Rust, and more (regex-based extraction).

Examples: "Document this repo." "Generate a wiki for onboarding." "Map the architecture of this codebase." "I need to understand this project."

Output: A wiki/ folder with:

  • docs/*.md — Markdown documentation (index, architecture, data flows, API reference, glossary, per-module docs)
  • site/index.html — Self-contained browsable site (open directly in browser, no build tools needed)

Production Tools

These skills convert AI-generated content into deliverable formats.

/synthkit:md2pdf — Markdown to PDF

Convert markdown files to PDF using pandoc with weasyprint (CSS-based, no LaTeX needed).

When to use: You need a polished PDF from a markdown file — reports, proposals, documentation.

Requires system libraries (pango, cairo) — see System Dependencies.

/synthkit:md2docx — Markdown to Word

Convert markdown files to Word (.docx) using pandoc.

When to use: You need to share a document with people who work in Word, or you need to use Word's review/comment features.

/synthkit:md2html — Markdown to HTML

Convert markdown files to standalone HTML using pandoc, with optional CSS styling.

When to use: You need a self-contained HTML file — for web publishing, email embedding, or portable viewing.

/synthkit:md2email — Markdown to Email

Convert a markdown file to formatted email content and copy it to the clipboard. Rich text (RTF) on macOS, HTML elsewhere.

When to use: You've drafted an email in markdown and want to paste it into your mail client with formatting intact.

Document Conversion (CLI)

The conversion tools are also available as standalone CLI commands, independent of Claude Code.

System dependencies for PDF

PDF conversion uses WeasyPrint, which requires system libraries:

Platform Install command
macOS brew install pango
Ubuntu/Debian apt install libpango1.0-dev libcairo2-dev libgdk-pixbuf2.0-dev
Windows See WeasyPrint docs

doc, html, and email commands work without these.

Usage

Unified CLI

synthkit doc report.md           # → report.docx
synthkit html report.md          # → report.html
synthkit pdf report.md           # → report.pdf
synthkit email report.md         # → clipboard

# Batch processing
synthkit doc *.md
synthkit html *.md --hard-breaks

# Mermaid diagrams (requires mermaid-filter)
synthkit html report.md --mermaid

Backward-compatible commands

md2doc report.md
md2html report.md
md2pdf report.md
md2email report.md

Options

Flag Description
--hard-breaks Preserve line breaks from source markdown
--mermaid Enable Mermaid diagram rendering (requires mermaid-filter)

Configuration

Each converter looks for optional config files under ~/.config/<toolname>/:

Converter Config Files
doc ~/.config/md2doc/reference.docx
email ~/.config/md2email/style.css
html ~/.config/md2html/style.css
pdf ~/.config/md2pdf/style.css

Reference Materials

Prompt Templates

The prompt-templates/ directory contains pointers to canonical templates maintained alongside their skills. If you're using Claude Code, the skills fill these in automatically.

Template Canonical source Claude Code shortcut
structured-discovery.md skills/init-discovery/references/ /synthkit:init-discovery

Guidelines

The guidelines/ directory contains reference standards and methods that can be provided as context to AI models.

Guideline Purpose
structured-elicitation.md The Structured Elicitation method (canonical source: skills/explore-with-me/references/)
markdown-conventions.md Markdown formatting standards for AI-generated content

Testing

# Run tests
uv run --extra dev pytest

# With coverage
uv run --extra dev pytest --cov=synthkit --cov-report=term-missing

Tests run automatically on push/PR to main across Python 3.10-3.13 on Linux, macOS, and Windows.

Repository Structure

├── .claude-plugin/        # Claude Code plugin metadata
│   └── plugin.json
├── .github/workflows/
│   ├── tests.yml          # CI: test on push/PR to main
│   └── publish.yml        # CD: publish to PyPI on release
├── pyproject.toml
├── src/synthkit/          # Python package
│   ├── cli.py             # Click CLI with subcommands
│   ├── base.py            # Shared conversion logic
│   ├── doc.py             # Word conversion
│   ├── email.py           # Email clipboard conversion
│   ├── html.py            # HTML conversion
│   └── pdf.py             # PDF conversion (via WeasyPrint)
├── skills/                # Claude Code plugin skills
│   ├── boardroom/         # Strategic debate with AI advisors
│   ├── explore-with-me/   # Structured exploration interviews
│   ├── init-discovery/    # Multi-session project scaffolding
│   ├── map-the-repo/      # Codebase documentation wiki generator
│   ├── md2pdf/            # PDF conversion skill
│   ├── md2docx/           # Word conversion skill
│   ├── md2html/           # HTML conversion skill
│   └── md2email/          # Email conversion skill
├── tests/                 # Test suite (pytest)
│   ├── conftest.py        # Shared fixtures
│   ├── test_base.py       # Base module tests
│   ├── test_cli.py        # CLI + integration tests
│   ├── test_doc.py        # Word converter tests
│   ├── test_email.py      # Email converter tests
│   ├── test_html.py       # HTML converter tests
│   └── test_pdf.py        # PDF converter tests
├── style.css              # Default stylesheet
├── prompt-templates/      # Pointers to canonical templates
└── guidelines/            # Pointers to canonical references

Dependencies

Package Purpose Bundled?
click CLI framework pip
pypandoc_binary Pandoc document converter pip (includes binary)
pyperclip Cross-platform clipboard pip
weasyprint PDF engine pip (needs system libs)
mermaid-filter Mermaid diagrams Optional, external

Metadata

Release files for synthkit 0.6.2

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

Source distribution (sdist)

Source distribution for synthkit 0.6.2
File Size Uploaded Provenance Actions
synthkit-0.6.2.tar.gz 41.4 kB With provenance Details for synthkit-0.6.2.tar.gz

Built distribution (wheel)

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

Total release size: 94.7 kB

Release files / synthkit-0.6.2.tar.gz

Download URL synthkit-0.6.2.tar.gz
Size 41.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f192f7ff312974acdf08f118deec9ace6d2f51f17e2825ab0f2422f7dfffdd26
BLAKE2b-256 checksum
How to use checksums
06e2e974b9d82663b39cc981b429b5e1253f4d37ad4b77db5919c70d580fba94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.

Transparency log

Release files / synthkit-0.6.2-py3-none-any.whl

Download URL synthkit-0.6.2-py3-none-any.whl
Size 53.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
abe60cc816c6a50cd57471e24416fca5259a0db72ab365ccaf68d8f23aef4496
BLAKE2b-256 checksum
How to use checksums
4f4fa5b20b467ff0b2431dab6baefc10353be36f90d11c1f1de2a79c4ec7e98f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.

Transparency log

Security for synthkit 0.6.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for synthkit-0.6.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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