Accurate docs from your actual code

Batch-generate docstrings, detect stale documentation, and generate whole-repo READMEs — without sending your full codebase to an LLM.

Free for 1 run. $49/repo/month. Bring your own LLM key.

$ legacy-doc-ai check ./src/
┌─────────────────────────────────────────────┐
│ Docstring Coverage Report │
├─────────────────────────────────────────────┤
│ Files scanned: 24 │
│ Functions found: 187 │
│ With docstrings: 103 (55%) │
│ Up to date: 62 (33%) │
│ Stale docs: 41 (22%) │
│ Missing: 84 (45%) │
└─────────────────────────────────────────────┘

$ legacy-doc-ai docstrings ./src/ --dry-run
--- a/src/legacy/processor.py
+++ b/src/legacy/processor.py
-def process_data(items, config=None):
+def process_data(items, config=None):
+ """Process a list of data items with optional configuration.
+
+ Args:
+ items: List of raw data dicts to process.
+ config: Optional ProcessingConfig with overrides.
+
+ Returns:
+ list[dict]: Processed results with validation flags.
+ """

60-70% of codebase documentation becomes partially or fully inaccurate within 6 months of a significant refactor*

*Published developer productivity research, 2024

What it does

📝

Batch docstring generation

Generate docstrings for all undocumented functions in a repo with one command. Supports Python and JavaScript/TypeScript.

🔍

Stale-doc detection

Finds functions where docstrings no longer match the actual signature — missing params, wrong types, outdated descriptions.

👁️

Diff review mode

Preview every proposed change with unified diffs before writing anything. The same review workflow you already use for code changes.

📖

Whole-repo README generation

Generates a complete README from actual code analysis — not directory listings. Architecture overviews, API tables, docstring coverage.

🔌

Pluggable LLM provider

Bring your own API key — OpenAI, Anthropic, or any OpenAI-compatible endpoint. Your code never touches a server we control.

📦

Offline parsing

AST parsing runs locally. Only function signatures and metadata are sent to the LLM — not your code. Works on air-gapped repos.

How it works

1

pip install legacy-doc-ai

One command. Works offline. Configure your LLM provider with a single env var.

2

Check your repo's doc health

legacy-doc-ai check ./src/ — see coverage stats, stale docs, and missing docs in seconds.

3

Preview and review diffs

legacy-doc-ai docstrings ./src/ --dry-run — see every proposed change as a unified diff.

4

Apply with confidence

Run without --dry-run and commit. The same workflow you use for PRs, applied to documentation.

Simple pricing

Per-repo. No seat licenses. No usage tiers.

Free Trial
$0 one run
  • 1 repo, 1 run
  • All features
  • Bring your own LLM key
  • No license file needed
Try it
Team
$149 / month
  • Up to 5 repos
  • Everything in Single
  • Team dashboard
  • CI integration support
  • Priority email support
Subscribe →