Comments that
write themselves.

On the files you touch, in TypeScript, Python, and Go.
Delivered as a draft PR you review before anything merges.

OUTPUT

Same code. Five seconds later.

Beforeservices/session.ts
async function cleanupExpired(sessions) {
  const now = Date.now();
  await Promise.all(
    sessions.map(async (s) => {
      if (s.expiresAt < now)
        await db.delete(s.id);
    })
  );
}
Aftercode unchanged
/**
 * Delete every session past its expiry.
 * @param {Session[]} sessions active set
 * @returns {Promise<void>} resolves once
 *   all stale rows are removed
 */
async function cleanupExpired(sessions) {
  const now = Date.now();
  // delete in parallel; await all
  await Promise.all(/* … */);
}

PRODUCT

Document the code. Not just the new code.

EVERY SUPPORTED LANGUAGE

One engine, three languages

TypeScript, Python, and Go today. No per-language plugin to install.

YOUR STYLE

Matches the repo you have

Reads the comments already in your codebase and writes in the same convention.

THE FILES YOU TOUCH

Scoped to your diff

Documents the files changed in your PR — not a sweeping rewrite of the repo.

OUTPUT TYPES

Four kinds of comment. Each where it belongs.

DOCSTRING

Function & module documentation

services/session.ts:117

Summary, params, return, and raises — in the repo's existing convention.

INLINE

The gnarly line, explained

services/session.ts:121

Why the retry is idempotent. What the magic number means. The non-obvious bits.

TYPE DOC

Parameter & return types

services/session.ts:117

Inferred from annotations and call sites. Type-aware, not guessed.

UNTOUCHED

Your code, never rewritten

— everywhere

Comments only. Non-comment bytes verified unchanged.

CONVENTION

Reads your style. Writes in it.

TypeScript / JSTSDocmatched
PythonPEP 257matched
Gogodocmatched

FOR

Built for the code you actually change.

ONBOARDING

Readable for the next hire

Run on the modules new engineers touch first. Make code legible to someone who didn't write it.

READABILITY

Explain the gnarly parts

The non-obvious logic gets a why, while the obvious lines stay quiet.

AUDIT

Documentation on the files you ship

Generate docs to the standard a review or open-sourcing pass needs.

PROOF

Same diff. Documented.

What hand-documenting the files you touch costs, versus one pass.

By hand

CodeComments

Hours per module, if it happens at all
The files in your PR, in one pass
Style drifts between authors
One convention, matched to your repo
Comments rot as code changes
Re-run on the diff to refresh
The hard code stays undocumented
The gnarly lines get explained first

Copilot writes comments while you type. CodeComments writes them after — same install as the review.

PRICING

One install. Two tools.

The same plan as AI code review. No second subscription.

See full pricing
PUBLIC REPOS
Free
10 reviews per repo / month
PRIVATE / TEAM
$8
per developer / mo · billed annually · or $10/mo

Comments are AI-generated. Review before merging.

Stop apologizing for the codebase.
Document the files you touch.

Install in two minutes. Free for public repos. Cancel anytime on private.

We run CodeComments on our own repo.