Wright AI
DocsStart free
Python · Google · NumPy · Sphinx · Epytext

Auto-generate Python docstrings with AI

One command writes Google, NumPy, or Sphinx docstrings for every undocumented function in your Python project — with drift detection to catch stale docs before they merge.

Start for free →pip install wright

See it in action

Before and after — Google style

BEFORE
def calculate_discount(price, user_tier, coupon_code=None):
    if user_tier == "premium":
        discount = 0.20
    elif coupon_code and coupon_code in VALID_COUPONS:
        discount = VALID_COUPONS[coupon_code]
    else:
        discount = 0.0
    return price * (1 - discount)
AFTER — wright generate
def calculate_discount(price, user_tier, coupon_code=None):
    """Calculate the final price after applying tier and coupon discounts.

    Applies a 20% discount for premium users. For standard users,
    applies a coupon discount if a valid coupon code is provided.
    Falls back to no discount if neither condition is met.

    Args:
        price (float): The original item price before discounts.
        user_tier (str): User membership tier. "premium" receives
            an automatic 20% discount.
        coupon_code (str, optional): Promotional code to look up in
            VALID_COUPONS. Defaults to None.

    Returns:
        float: The discounted price. Equal to price if no discount applies.

    Example:
        >>> calculate_discount(100.0, "premium")
        80.0
        >>> calculate_discount(100.0, "standard", coupon_code="SAVE10")
        90.0
    """

How it works

More than a docstring generator

Call graph context
Wright builds a dependency graph before generating. It reads what calls your Python function and what it calls — so docs describe purpose, not just mechanics.
📊
Coverage tracking
Know the exact percentage of documented functions across every file. Set a minimum threshold and enforce it in CI.
🔍
Drift detection
When a function signature changes, Wright flags the stale docstring automatically — as a VS Code warning and a CI failure.
🔌
MCP for AI tools
Exposes your indexed docs to Claude Code, Cursor, and Copilot via MCP so they always have live context about your codebase.

Comparison

How Wright differs from alternatives

Writing manually
Takes 5–10 min per function. Gets skipped under deadline pressure. Goes stale silently.
GitHub Copilot
Suggests one function at a time on demand. No batch generation, no coverage tracking, no drift detection.
Sphinx autodoc
Generates docs from existing docstrings — it doesn't write them. You still need to author every string.

Start documenting your Python codebase

Free VS Code extension · CLI · GitHub Action · MCP server. No credit card required.

Get started free →Read the docs