docwright
AI-powered documentation agent that watches your commits and keeps README and wiki pages up to date automatically.
How It Works
Developer commits / pushes
│
▼
CI runs docwright
│
├─ First run?
│ └─ Generates all docs from scratch via LLM
│
└─ Already initialized?
├─ No relevant changes → skips (fast)
└─ Relevant changes → updates only affected AUTO sections
│
▼
Direct commit OR Pull Request (configurable)
The agent only rewrites <!-- AUTO:section --> blocks. Anything you write manually stays untouched.
Quick Start
Install into any repository:
pip install docwright
docwright install
This asks two questions (AI provider, commit mode) and creates:
.docwright/docwright.yml— configMakefiletargets:make docs,make docs-sync- CI workflow (GitHub Actions or GitLab CI)
Then generate docs for the first time:
make docs
After that, docs update automatically on every push.
CLI Commands
| Command | Description |
|---|---|
docwright install |
Bootstrap a repository (interactive or --auto) |
docwright init |
Generate all documents from scratch |
docwright run |
Update changed sections based on latest diff |
docwright sync |
Force re-sync all AUTO sections |
docwright dashboard |
Terminal table of all registered projects |
docwright report |
Generate static HTML status report |
Configuration
.docwright/docwright.yml:
provider:
type: claude # claude | openai | ollama
model: claude-opus-4-7
api_key_env: ANTHROPIC_API_KEY
output:
mode: direct # direct | pull_request
triggers:
paths:
- "src/**"
- "app/**"
ignore:
- "tests/**"
documents:
- type: readme
template: readme/default
target: README.md
- type: wiki
template: wiki/architecture
target: docs/wiki/architecture.md
Supported Providers
| Provider | When to use |
|---|---|
| Claude (Anthropic) | Best output quality |
| OpenAI (GPT-4o) | Alternative if you have OpenAI keys |
| Ollama | Local model, no external API — for private projects |
Document Templates
Built-in templates cover the full documentation surface:
| Template | AUTO sections |
|---|---|
readme/default |
overview, getting_started, architecture, api, development |
wiki/architecture |
overview, components, data_flow, dependencies |
wiki/api-contracts |
endpoints, authentication, error_codes |
wiki/development-guide |
setup, testing, code_style |
wiki/operations |
deployment, monitoring, runbooks, incident_response |
wiki/data-model |
entities, business_rules, relationships |
wiki/db-schema |
tables, indexes, migrations |
wiki/integrations |
external_services, auth_credentials, data_exchange |
wiki/security |
access_model, sensitive_data, requirements |
wiki/troubleshooting |
common_issues, diagnostics, known_limitations |
wiki/adr |
recent_decisions, decision_index |
Custom templates go in .docwright/templates/ inside your repository.
AUTO / MANUAL Sections
# README
<!-- AUTO:overview -->
This section is managed by docwright.
<!-- /AUTO:overview -->
<!-- MANUAL -->
## Contributing
Write whatever you want here — docwright never touches MANUAL blocks.
<!-- /MANUAL -->
Central Registry
After docwright init, the project is registered in a central registry.yml. View all projects:
docwright dashboard # terminal table
docwright report # HTML page at docwright-report.html
Development
poetry install
poetry run pytest # 46 tests
poetry run ruff check . # lint
poetry run mypy docwright # type check
License
MIT
Metadata
Release files for docwright 0.1.52
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| docwright-0.1.52.tar.gz | 40.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| docwright-0.1.52-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.0 kB
Release files / docwright-0.1.52.tar.gz
| Download URL | docwright-0.1.52.tar.gz |
|---|---|
| Size | 40.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7c69e76feed761b9b42c15d3554bc021ffc112c04ab979e026c04049c381942e
|
|
BLAKE2b-256 checksum How to use checksums |
dee166c4d571c96fc619ae6e4e6e843afd539d727f34b0dbcc2f1f7d0da2e6e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.5 Darwin/25.5.0
|
Release files / docwright-0.1.52-py3-none-any.whl
| Download URL | docwright-0.1.52-py3-none-any.whl |
|---|---|
| Size | 52.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae8b96c2f0e14452e5bde5890cb49d5431e4d773a7ae91f7018a78b9bfc39bf4
|
|
BLAKE2b-256 checksum How to use checksums |
009de6c62d650b4dfa99ca5f43ac549e08ccb677795222d2f0968c9b7e1850cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.5 Darwin/25.5.0
|