Docsmith
Documentation generator, converter, inspector, and preview server for developer docs.
Docsmith is a terminal-first documentation toolkit for projects that need clean Markdown-to-site publishing without a heavy static-site framework. It can scaffold documentation, scan and validate existing docs, render a static HTML site, convert files between Markdown, HTML, text, JSON, and PDF, search content, extract outlines, and serve a local preview through Flask.
- Static site builder - Render Markdown or HTML docs into a responsive documentation site with navigation and copied assets.
- Format conversion - Convert documentation files to HTML, Markdown, text, JSON metadata, or a lightweight text PDF.
- Schema-style inspection - Summarize files, line counts, word counts, headings, links, and checksums in Rich tables or JSON.
- Validation checks - Detect broken local links, duplicate heading anchors, and Markdown files without headings.
- Fast preview server - Serve generated docs locally with a minimal Flask app.
- Search and outline tools - Locate content across a docs tree and inspect heading structure from the terminal.
Installation
pip install docsmith-cli
Usage
Create a starter documentation folder:
docsmith init docs --title "My Project Docs"
Inspect and validate the documentation tree:
docsmith scan docs
docsmith validate docs
Build a static site and serve it locally:
docsmith build docs --out site
docsmith serve docs --port 8080
Convert a Markdown file:
docsmith convert docs/index.md --to html --out build/index.html
docsmith convert docs/index.md --to pdf
Commands
| Command | Description |
|---|---|
docsmith init <path> |
Create a starter documentation scaffold. |
docsmith scan <path> |
Inspect documentation files and summarize size, headings, links, and checksums. |
docsmith build <path> |
Build a static HTML documentation site. |
docsmith convert <file> --to <format> |
Convert docs to HTML, Markdown, text, JSON, or PDF. |
docsmith validate <path> |
Check broken local links, duplicate heading anchors, and missing headings. |
docsmith outline <file> |
Display a heading outline for one documentation file. |
docsmith search <path> <query> |
Search documentation content. |
docsmith serve <path> |
Start a local Flask preview server. |
Configuration
Docsmith works without configuration. The CLI accepts explicit paths and output flags for each command. A typical project layout is:
docs/
index.md
guide.md
reference.md
site/
index.html
assets/docsmith.css
Use --json-output with scan or outline when integrating Docsmith into CI or project automation.
License
MIT License. See LICENSE.
Metadata
Release files for docsmith-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| docsmith_cli-0.1.0.tar.gz | 13.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docsmith_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.3 kB
Release files / docsmith_cli-0.1.0.tar.gz
| Download URL | docsmith_cli-0.1.0.tar.gz |
|---|---|
| Size | 13.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7dce6cd5b92c9423c079f44bd8a819b8df7b3cf339ae90b5caf0106684a37df2
|
|
BLAKE2b-256 checksum How to use checksums |
c3be7ea769d43bf9508c4b048a1d3bec0f910966937f967c5817bbd4e59610ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / docsmith_cli-0.1.0-py3-none-any.whl
| Download URL | docsmith_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5d7bb9969954abc151746df4007e14c5a2f878245905a3ddfd39bd99141c13af
|
|
BLAKE2b-256 checksum How to use checksums |
e19ff9d01aba17d360b42010982a943ba1cf480031b44f7f17e70800fbee9d28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|