Automatically add professional documentation comments to your pull requests.
JSDoc Β· PyDoc Β· Javadoc Β· Doxygen Β· KDoc Β· GoDoc Β· Rustdoc Β· and more
Poly-Glot AI automatically reviews your pull requests and suggests professional documentation comments for undocumented code. When you open or update a PR, the app:
- π Scans changed files for missing documentation
- π Analyzes documentation coverage per file
- π€ Generates doc comments using OpenAI or Anthropic
- π¬ Posts inline review suggestions directly on your PR
- β Reports a Check Run with coverage metrics
| Language | Doc Format | Extensions |
|---|---|---|
| JavaScript | JSDoc | .js, .jsx, .mjs, .cjs |
| TypeScript | TSDoc | .ts, .tsx |
| Python | PyDoc | .py, .pyi |
| Java | Javadoc | .java |
| Kotlin | KDoc | .kt, .kts |
| C | Doxygen | .c, .h |
| C++ | Doxygen | .cpp, .hpp, .cc, .cxx |
| C# | XML Doc | .cs |
| Go | GoDoc | .go |
| Rust | Rustdoc | .rs |
| Swift | Swift Markup | .swift |
| PHP | PHPDoc | .php |
| Ruby | YARD | .rb, .rake |
π Install Poly-Glot AI on your repositories.
Add a .polyglot.yml to your repository root:
# AI provider: 'openai' or 'anthropic'
provider: openai
# Comment mode: 'doc', 'why', or 'both'
# - doc: Standard documentation comments (JSDoc, PyDoc, etc.)
# - why: Explain reasoning, trade-offs, and edge cases
# - both: Both doc comments and why-comments
mode: both
# Only suggest docs for files below this coverage threshold (0.0β1.0)
coverage_threshold: 0.5
# Maximum files to process per PR
max_files: 15
# Maximum file size in bytes
max_file_size: 50000
# Review style: 'inline' (per-file suggestions) or 'summary' (single comment)
review_style: inline
# Include/exclude file patterns
include: []
exclude:
- "**/*.test.*"
- "**/*.spec.*"
- "**/vendor/**"
# Create a GitHub Check Run with coverage analysis
check_run: trueThat's it! Poly-Glot AI will automatically analyze your PR and post documentation suggestions.
| Feature | Free | Pro ($9/mo) | Team ($29/mo) | Enterprise |
|---|---|---|---|---|
| PR reviews / month | 25 | Unlimited | Unlimited | Unlimited |
| Languages | JS, TS, Python, Java | All 12 | All 12 | All 12 |
| Doc comment mode | β | β | β | β |
| WHY comment mode | β | β | β | β |
| Both mode | β | β | β | β |
| Web UI + CLI + VS Code | Limited | Full | Full | Full |
| MCP server calls / month | β | 200 | 1,000 | Unlimited |
| Seats | 1 | 1 | 5 | Custom |
| Shared API key pool | β | β | β | β |
| Team dashboard | β | β | β | β |
| SSO / private deployment | β | β | β | β |
| Support | Community | Priority | Dedicated SLA |
π Use code
EARLYBIRD3for 50% off your first 3 months on Pro
β View all plans at poly-glot.ai
After subscribing, add your license token to .polyglot.yml to unlock Pro/Team features:
license_token: YOUR_TOKEN_HEREGet your token at poly-glot.ai/dashboard β Account β License Token.
Generates standard documentation comments β parameters, return types, exceptions:
/**
* Authenticate a user with email and password.
* @param {string} email - The user's email address
* @param {string} password - The user's password (plaintext, hashed internally)
* @returns {Promise<AuthResult>} Authentication result with token and user profile
* @throws {AuthenticationError} If credentials are invalid
*/
async function authenticateUser(email, password) { ... }Explains the reasoning behind code decisions:
// Why: Rate-limit auth attempts per IP to prevent credential stuffing.
// 5 attempts/min was chosen based on OWASP guidelines.
// Uses sliding window instead of fixed to prevent burst attacks at window edges.
if (await isRateLimited(ip, 5, 60)) { ... }Combines doc comments AND why-comments for maximum context.
- Your code stays private β the app reads PR diffs only for analysis
- Your API key β uses your own OpenAI or Anthropic key
- No data retention β code is processed in memory, never stored
- Open source β audit every line of this app
See PRIVACY.md for our full privacy policy.
You can self-host the Poly-Glot AI GitHub App:
# Clone the repo
git clone https://github.com/hmoses/poly-glot-github-app.git
cd poly-glot-github-app
# Configure
cp .env.example .env
# Edit .env with your GitHub App credentials and API keys
# Run
docker-compose up -dgit clone https://github.com/hmoses/poly-glot-github-app.git
cd poly-glot-github-app
npm install
cp .env.example .env
# Edit .env with your credentials
npm start| Variable | Required | Description |
|---|---|---|
GITHUB_APP_ID |
β | Your GitHub App ID |
GITHUB_PRIVATE_KEY |
β | Your GitHub App private key (PEM) |
GITHUB_WEBHOOK_SECRET |
β | Webhook secret for signature verification |
OPENAI_API_KEY |
β‘ | OpenAI API key (at least one AI key required) |
ANTHROPIC_API_KEY |
β‘ | Anthropic API key (at least one AI key required) |
PORT |
β | Server port (default: 3000) |
Poly-Glot AI is available across multiple platforms:
| Platform | Link |
|---|---|
| π Web App | poly-glot.ai |
| π» VS Code Extension | Marketplace |
| π€ GitHub App | Marketplace |
| π₯οΈ CLI | npx poly-glot-ai-cli |
| π MCP Server | poly-glot-mcp |
MIT β Harold Moses / Poly-Glot AI
poly-glot.ai Β· Add documentation to any codebase β in seconds.