This repository contains the open-source PR Agent Project. It is not the Qodo offering for open-source projects.
PR-Agent is an open-source, AI-powered code review agent and a community-maintained legacy project of Qodo. It is distinct from Qodo's primary AI code review offering, which provides a feature-rich, context-aware experience. Qodo offers a free version for open-source projects and integrates seamlessly with GitHub, GitLab, Bitbucket, and Azure DevOps for high-quality automated reviews.
Sponsors
PR-Agent is a community-maintained open-source project, with its ongoing development supported by our sponsors. If you'd like to support the project, consider becoming a sponsor.
🥇 Gold Sponsor
Free version of Qodo for open-source projects
Table of Contents
Getting Started
🚀 Quick Start for PR-Agent
1. GitHub Action (Recommended)
Add automated PR reviews to your repository with a simple workflow file:
# .github/workflows/pr-agent.yml
name: PR Agent
on:
pull_request:
types: [opened, synchronize]
jobs:
pr_agent_job:
runs-on: ubuntu-latest
steps:
- name: PR Agent action step
uses: the-pr-agent/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Full GitHub Action setup guide
2. CLI Usage (Local Development)
Run PR-Agent locally on your repository:
pip install pr-agent
export OPENAI_KEY=your_key_here
pr-agent --pr_url https://github.com/owner/repo/pull/123 review
3. Other Platforms
News and Updates
Full notes for every release are on the Releases page.
Why Use PR-Agent?
🎯 Built for Real Development Teams
Fast & Affordable: Each tool (/review, /improve, /ask) uses a single LLM call (~30 seconds, low cost)
Handles Any PR Size: Our PR Compression strategy effectively processes both small and large PRs
Highly Customizable: JSON-based prompting allows easy customization of review categories and behavior via configuration files
Platform Agnostic:
- Git Providers: GitHub, GitLab, BitBucket, Azure DevOps, Gitea
- Deployment: CLI, GitHub Actions, Docker, self-hosted, webhooks
- AI Models: OpenAI GPT, Anthropic Claude, Google Gemini, DeepSeek, Mistral, and any other model reachable through LiteLLM (Azure OpenAI, AWS Bedrock, Vertex AI, Databricks, OpenRouter, Ollama, and more) — see Changing a model
Open Source Benefits:
- Full control over your data and infrastructure
- Customize prompts and behavior for your team's needs
- No vendor lock-in
- Community-driven development
Features
See the current feature and git provider support matrix in the PR-Agent documentation.
⚠️ /help_docs is temporarily disabled since v0.36.1 pending a fix for a credential-exposure issue (#2445).
See It in Action
/describe
/review
/improve
Usage Examples
PR-Agent tools run as a comment on a PR or from the CLI. A few common ones:
# Comment on a PR (GitHub/GitLab/Bitbucket/…):
/describe
/review
/improve
/ask "What does this PR change?" # free-text Q&A about the PR
# Issue-scoped commands run on an issue instead of a PR:
/similar_issue # find similar issues in the repository
# Or locally via the CLI:
pr-agent --pr_url <PR_URL> review
pr-agent --issue_url <ISSUE_URL> similar_issue
See the Tools docs for the full list of tools with example commands, and each tool's page for screenshots and options.
How It Works
The following diagram illustrates PR-Agent tools and their flow:
Data Privacy
Self-hosted PR-Agent
- If you host PR-Agent with your OpenAI API key, it is between you and OpenAI. You can read their API data privacy policy here: https://openai.com/enterprise-privacy
Contributing
To contribute to the project, get started by reading our Contributing Guide.
For local verification, run PYTHONPATH=. uv run pytest from the repository root; it discovers the unit-test suite under tests/unittest by default. End-to-end tests under tests/e2e_tests require provider credentials and should be invoked explicitly, for example PYTHONPATH=. uv run pytest tests/e2e_tests/test_github_app.py.
Big News for PR-Agent
PR-Agent has a new home!
After years of building this tool alongside the community, Qodo has donated PR-Agent to the open-source community - and we couldn't be more excited about what comes next.
The project now lives in the PR-Agent org on GitHub, is fully community-owned, and is open for contributions and additional maintainers.
What else changed:
- Docs moved to - docs.pr-agent.ai
- Qodo Merge (Qodo 1.0), the hosted URL, which was the enterprise version of PR-Agent, has been rebranded and evolved into Qodo (Qodo 2.0), a full AI code review platform.
❤️ Community
This open-source release remains here as a community contribution from Qodo — the origin of modern AI-powered code collaboration. We’re proud to share it and inspire developers worldwide.
The project now has its first external maintainer, Naor (@naorpeled), and is currently in the process of being donated to an open-source foundation.
Release files for pr-agent 0.46.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pr_agent-0.46.0.tar.gz | 640.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pr_agent-0.46.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / pr_agent-0.46.0.tar.gz
| Download URL | pr_agent-0.46.0.tar.gz |
|---|---|
| Size | 640.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e437ce14c18d3aa0f4fff5cf6ff41d77fff77767d05dd314bd577b78d4a3511f
|
|
BLAKE2b-256 checksum How to use checksums |
0841eadeb7fd6f928dc56c498f86f1d373531b3716b57c5c48d85c6648c50aa1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pr_agent-0.46.0-py3-none-any.whl
| Download URL | pr_agent-0.46.0-py3-none-any.whl |
|---|---|
| Size | 733.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6a37f507cc3bf0cb00be79b8b96e7885bf35b27a905adb1926965af839f247f5
|
|
BLAKE2b-256 checksum How to use checksums |
90c78e6b23a9f5b258f46ab53b6d6eba38f5fe2b68787ea3f561aa62ab5dddac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|