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.
See it in action
Wright AI reads the function body, its callers, and its callees — generating documentation that reflects real intent, not just syntax.
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)def calculate_discount(price, user_tier, coupon_code=None):
"""Calculate the final price after applying tier and coupon discounts.
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. Defaults to None.
Returns:
float: The discounted price.
Example:
>>> calculate_discount(100.0, "premium")
80.0
"""How it works
WrightAI generates, verifies and maintains documentation — so docs stay accurate as your Python codebase evolves.
Comparison
Most tools for Python documentation either render what exists or suggest one comment at a time. Wright does neither.
Takes 5–10 min per function. Gets skipped under deadline pressure. Goes stale silently.
Suggests one function at a time on demand. No batch generation, no coverage tracking, no drift detection.
Generates docs from existing docstrings — it doesn't write them. You still need to author every string.
Batch-generates Google/NumPy/Sphinx/Epytext documentation across your entire Python codebase. Tracks coverage. Detects drift on every commit. Feeds live docs to AI tools via MCP. Free to start.
Free VS Code extension · CLI · GitHub Action · MCP server.
No credit card required.