Git 平台 SDK 是可选依赖,需按平台装 pr-agent[github] 等额外包或 pr-agent[all];Docker 镜像 0.34.2 起迁到 pragent/pr-agent,旧 codiumai/pr-agent 命名空间已冻结不再更新;/help_docs 自 v0.36.1 起因凭证泄露问题被临时禁用。
pr-agent
The-PR-AgentMIT活跃维护自动审查 Pull Request 的 AI 代码审查工具,接入 OpenAI、Anthropic、Ollama 等模型,在 PR 提交时生成评审意见、改进建议和摘要。
🚀 PR Agent: The Original Open-Source PR Reviewer. This project is not the Qodo free tier.
pip install "pr-agent[github]"
export OPENAI_KEY=your_key_here
pr-agent --pr_url https://github.com/owner/repo/pull/123 reviewREADME 未说明硬件要求;模型通过 LiteLLM 调用云端 API(OpenAI、Claude、Gemini、Bedrock、Ollama 等),本地无需 GPU 显存。
开源 AI 代码评审代理,在 PR 上自动跑 review、describe、improve 等命令
自动审查 Pull Request 的 AI 代码审查工具,接入 OpenAI、Anthropic、Ollama 等模型,在 PR 提交时生成评审意见、改进建议和摘要。
核心能力
- 用 /review、/describe、/improve 等命令对 PR 自动评审
- 每个工具只调用一次 LLM,约 30 秒完成且成本低
- 用 PR Compression 策略处理超大 PR 的上下文
- JSON 配置化提示词,可自定义评审类别与行为
- 支持 GitHub、GitLab、BitBucket、Azure DevOps、Gitea
容易踩的坑
- v0.50.0最新正式版2026-11-07 · 2026-11-07 22:35 UTC
⚠️ Breaking changes and upgrade notes
- Host-only settings: Repository
.pr_agent.tomlfiles can no longer override GitHub pacing and retry settings (github.seconds_between_requests,github.seconds_between_writes,github.api_retries,github.ratelimit_retries),config.num_retries,azure_devops_server.agent_identity, custom-label settings (config.enable_custom_labelsand[custom_labels]), orpr_code_suggestions.max_number_of_calls.config.num_retriesis capped at 10. Per-directory.pr_agent.tomlfiles also cannot setpr_code_suggestions.dual_publishing_score_threshold. Move values you rely on to host configuration. (#4445, #4475, #4485, #4632, #4745) - Comment arguments:
config.ai_timeoutandpr_code_suggestions.max_number_of_callscan no longer be set through command comments. (#4445) - Removed no-op settings:
pr_code_suggestions.approve_pr_on_self_reviewandpr_code_suggestions.fold_suggestions_on_self_revieware removed from the shipped configuration. PR-Agent warns if they remain set; they never changed/improvebehavior. (#4598) - Custom provider integrations: Unused provider methods and capability names were removed. Review #4691 if a custom provider calls those internal methods.
- Auto-approval:
config.enable_auto_approvalis now host-only. The auto-approval path remains disabled in this release. (#4700)
🔐 Trusted Publishing
PyPI releases now use PyPI Trusted Publishing through GitHub Actions OIDC and produce package attestations. The release workflow rejects commits that are not reachable from
main. (#3909)🚀 Features
- feat(push_outputs): select tools and deliver Ask answers by @PeterDaveHello in #4739
- feat(cli): enable JSON output for plain-diff describe and improve by @PeterDaveHello in #4730
- feat(i18n): localize improve summaries and empty states by @PeterDaveHello in #4731
- feat(config): add protected host system instructions by @Evhye38496 in #4716
- feat(i18n): translate the fixed text of the /review comment into response_language by @AdelFetner in #4684
- feat: add Microsoft Teams output sink by @utsab345 in #4630
- feat(repo-context): expand @path imports by @utsab345 in #4620
- feat(review): include commit messages in /review and /improve prompts by @abhiramshaji-cyber in #4603
- feat(scripts): link config reference sections to their docs pages by @mirzasnowy in #4596
- feat(doctor): check configured output destinations by @oleksii-tumanov in #4541
- feat(config): identify keys absent from shipped declarations by @oleksii-tumanov in #4505
- feat(litellm): add per-PR session ids by @utsab345 in #4503
- feat(models): support Kimi K3 / K3.1 Pro and bypass temperature parameter by @JI4JUN in #4515
- feat(review): add an opt-in deterministic structural-reach row by @moinerus in #4421
- feat: support Amazon Bedrock guardrails on the Converse route by @luisrviz in #4420
- feat: configure improve failure comments by @utsab345 in #4426
- feat(models): add Claude Sonnet 5.5 and Haiku 5.5 support by @montss in #4360
- feat(model-routing): support a patch character limit by @oleksii-tumanov in #4376
- feat(github-action): stop the runner on a failed key check by @Yoel-qin in #4325
🐛 Bug Fixes
-
[Bug] Prefetch review diff outside the event loop by @askarshabdanov1-collab in #4403
-
fix(ci): Restrict releases to main and attest PyPI packages by @oleksii-tumanov in #3909
-
fix(config): keep dual_publishing_score_threshold out of per-directory settings by @shu-chen-dot-ca in #4745
-
fix(gitea): build file links for AGit-flow PRs from the head SHA by @Yi-111-a in #4744
-
fix(plain-diff): strip terminal controls from Markdown output by @jiangjiang248 in #4738
-
fix(github): keep suggestions just outside a hunk instead of dropping them by @ylcn91 in #4734
-
fix(servers): parse string-valued boolean settings in webhook servers by @ylcn91 in #4735
-
fix: pin auto-approval to the reviewed head and m
- Host-only settings: Repository
- v0.49.02026-10-25 · 2026-10-25 11:14 UTC
查看更新说明
⚠️ Upgrade notes
- GitHub polling needs an allowlist. New host-only
github.polling_repositories = ["owner/repo", ...]; empty (the default) ignores every notification, so polling deployments must set it (#4294). - Jira
project_keys = []now disables lookups. The default is now["*"]. If you set[]to mean "all projects", change it to["*"]or remove it (#4049). litellm.extra_headersis host-only. Repository.pr_agent.tomland comment arguments can no longer set it (#4287).- Default model is now
gpt-6.1-solwithgpt-6-lunaas fallback (wasgpt-5.6/gpt-5.6-terra). Pinconfig.modelto keep the old one (#4088). - Langfuse SDK 4.18.0 needs self-hosted Langfuse 3.63.0+; use the
langfuse_otelcallback (#4343). - GitHub App token in Actions: set
github.agent_loginto<app-slug>[bot]so PR-Agent recognises its own comments (#4329).
✨ Highlights
pr-agent doctorpreflights a deployment (#4321).--json-outputfor/describe,/improveand/review(#4265, #4227, #4226).- Jira scoped API tokens (#4250),
/askwith the CI artifact as context (#4176), globs inrepo_context_files(#4220), opt-in GitLab subgroup settings inheritance (#4059). - Security hardening: DNS rebinding block, repo-context path escapes, host-only config output, loguru diagnose off, more credential redaction (#4252, #4279, #4293, #4280, #4328).
What's Changed
- Redact Stripe, Twilio and SendGrid credentials by @IlyaKhalafi in #4328
- ci(review): make self-hosted /improve post suggestions again by @Yoel-qin in #4174
- Enable automatic /review on new PRs (fixes #4162) by @kiranmutyala18 in #4170
🚀 Features
- feat(artifacts): support multiple artifact files by @utsab345 in #4338
- feat(cli): add a doctor command to preflight the deployment by @Yoel-qin in #4321
- feat(describe): write the description to --json-output by @Yoel-qin in #4265
- feat(jira): support scoped API tokens by @utsab345 in #4250
- feat(repo-context): glob entries and fallback alternatives in repo_context_files by @ira-at-work in #4220
- feat(ask): include organizational skills in line-level answers by @Yoel-qin in #4225
- feat(review): list the files left out in the JSON output by @Sajinthan in #4226
- feat(improve): write suggestions to --json-output by @Sajinthan in #4227
- feat(ask): answer questions with the CI artifact as context by @Yoel-qin in #4176
- feat(help): prioritize a matching document in constrained prompts by @oleksii-tumanov in #4101
- feat(gitlab): add opt-in closest-subgroup settings inheritance by @ashearin in #4059
- feat(improve): retain equal summaries across files by @oleksii-tumanov in #4128
🐛 Bug Fixes
- fix(ask_line): defer handler setup until a diff hunk matches by @oleksii-tumanov in #4354
- fix(mosaico): retain tasks with bounded owner history by @utsab345 in #4337
- fix(add-docs): retry malformed model responses with fallback models by @PeterDaveHello in #4346
- fix(routing): count diff hunks without splitting patch lines by @PeterDaveHello in #4344
- fix: retry whitespace-only model completions by @PeterDaveHello in #4348
- fix(azure): reject incomplete linked work item responses by @oleksii-tumanov in #4173
- fix(algo): prefer exact source lines before fuzzy matching by @PeterDaveHello in #4340
- fix(similar_issue): use the supported Qdrant query API by @PeterDaveHello in #4341
- fix(azure): handle created events without a web link by @oleksii-tumanov in #4171
- fix(ask): answer with a note when every changed file is filtered out by @sarankumar1325 in #4336
- fix(gitlab): paginate repository directory listings by @utsab345 in #4332
- fix(github): let the operator name the agent login an app token posts as by @sarankumar1325 in #4329
- fix: reject boolean routing limits by @utsab345 in #4302
- fix: parse GitLab boolean settings by @utsab345 in #4303
- fix: stop Gitea changed-files pagination at the advertised total by @fixfon in #4306
- fix(describe): retain valid YAML
- GitHub polling needs an allowlist. New host-only
- v0.48.02026-10-16 · 2026-10-16 19:55 UTC
查看更新说明
⚠️ Breaking Changes
[!WARNING] This release changes several defaults and makes more settings host-only. Check each item below against your deployment before upgrading.
pip install pr-agentno longer installs the git provider SDKs (#3679): PyGithub, python-gitlab, atlassian-python-api, the Azure DevOps SDKs, boto3, giteapy, the Google Cloud SDKs and a2a-sdk moved to thegithub,gitlab,bitbucket,azure,codecommit,gitea,googleandmosaicoextras. Install the ones you use, for examplepip install "pr-agent[github]", orpr-agent[all]for the previous set. The Docker images already installall.- Docker service images run as a non-root user (#3910): the webhook, app, polling and Mosaico targets run as UID/GID
10001withHOME=/home/pragent. Mounted secrets must be readable by that user, output and database directories must be writable, and home-relative mounts should move to/home/pragent. The GitHub Action, CLI and Lambda images still run as root. - Azure DevOps and Bitbucket Server webhooks require credentials (#3911): with
azure_devops_server.webhook_username/webhook_passwordorbitbucket_server.webhook_secretunset, every webhook is rejected with HTTP 403. Set them on both the sender and PR-Agent before upgrading. - GitLab webhooks backed by a secret provider need a new token format (#3913): when GitLab credentials come from AWS Secrets Manager or Google Cloud Storage, the webhook's Secret Token must be
<secret-name>:<webhook-token>. Name-only tokens are rejected with HTTP 401, so update the webhooks when you deploy. - Namespace-wide settings are off by default (#3908): PR-Agent no longer applies
<namespace>/pr-agent-settingsto every repository automatically. Set the host-onlyconfig.global_settings_repo = "pr-agent-settings"to keep the old behaviour. [tool.pr-agent]inpyproject.tomlis no longer read (#3941): move those settings to.pr_agent.toml.- More settings are host-only (#3840, #3904, #3950, #4001, #4054): a repository's
.pr_agent.tomland comment arguments can no longer set provider endpoints (openai.api_baseand the otherapi_basekeys), keys ending inurl,endpoint,org,key,tokenorsecret, provider auth mode and TLS settings (github.deployment_type,gitlab.auth_type/ssl_verify,bitbucket.auth_type,gitea.skip_ssl_verification/ssl_ca_cert),jira.jira_site/jira_api_email/project_keys, or LiteLLM callbacks. They are ignored with a warning, so set them in host configuration instead. Comment arguments are restricted further as well (#3902). - Gitea and Gerrit read repository settings from the target branch (#3906): Gitea uses the PR base and Gerrit the default branch, so a
.pr_agent.tomlchange inside a PR no longer applies to that PR. - Cross-repository reads need an allowlist (#3922, #3897): GitHub ticket context only reads linked issues and sub-issues from the PR's own repository or same-owner repositories listed in
config.repo_context_sibling_repos.gitlab.expand_submodule_diffsonly expands submodules listed there that sit in the MR's top-level group. - **Ignore rules now cover
- v0.47.02026-10-02 · 2026-10-02 15:20 UTC
查看更新说明
⚠️ Important Changes
- Gitea webhooks now require a secret (#3637): with
gitea.webhook_secretunset, the Gitea app rejects every webhook with HTTP 403 instead of accepting it unsigned. Set the secret on the Gitea webhook and in your config before upgrading. - The GitHub Action fails on tool errors (#3712): a tool failure that used to be logged and swallowed now fails the Action. Set
github_action_config.fail_on_tool_errors = falseto keep the old green behaviour. - Comment commands need a leading
/on GitLab, Bitbucket and Bitbucket Server (#3769): a comment only runs a tool when it starts with a slash command, so plain comments that mention one no longer trigger anything. extra_config_urlis host-only (#3638): a repository's.pr_agent.tomlcan no longer set it. Configure it on the host instead, for example withPR_AGENT_EXTRA_CONFIG_URL.commitable_code_suggestionsis nowcommittable_code_suggestions(#3749): the old spelling still works with a deprecation warning until 1.0.- The Bitbucket Server webhook image runs under gunicorn (#3667): the container now starts multiple workers through the shared
gunicorn_config.pyinstead of a single Python process.
Known issue: Bedrock Kimi K3, new in this release (#3651), still receives a temperature by default, which Bedrock is reported to reject. Until #3752 lands, add the model ids to
config.no_temperature_models.What's Changed
- Run BitBucket Server webhook under gunicorn for worker isolation by @jkratz55 in #3667
- test: pin LiteLLM future Claude fallbacks by @PeterDaveHello in #3660
- test(ai_handlers): add tripwire for guarded private LiteLLM imports by @utsab345 in #3615
- test: use the bundled LiteLLM cost map in local unit runs by @akalongman in #3641
- fix(codecommit): align language classification with diff packing by @oleksii-tumanov in #3625
- refactor(cloud_auth): deduplicate repeated logic by @high-tail in #3607
🚀 Features
- feat(gitlab): distinguish applied and bot-resolved suggestion threads in the improve context by @JokeWaumans in #3774
- feat: add Bedrock Kimi K3 models by @ira-at-work in #3651
- feat: reply to GitLab trigger discussions by @deadpool-mjpatel4444 in #3426
- feat(gitlab): support inline key issues by @utsab345 in #3650
- feat(ai_handlers): surface prompt cache visibility by @utsab345 in #3618
- feat(models): add Claude Opus 5.5 support by @PeterDaveHello in #3629
- feat: validate /describe output against existing model by @taljeon in #3616
🐛 Bug Fixes
- fix(git_providers): log publish and settings errors at quiet verbosity by @PeterDaveHello in #3802
- fix(tickets): cap fetched sub-issues per ticket and order parent before children by @rishiiicreates in #3807
- fix(models): clamp OpenRouter Gemini reasoning disablement by @oleksii-tumanov in #3787
- fix(tools): re-raise any provider incomplete-files error, not just Bitbucket's by @PranavD2905 in #3800
- fix(bitbucket): encode filenames in line links by @kudala-bharani in #3796
- fix(servers): route inline comments to /ask_line only on a leading /ask by @utsab345 in #3797
- fix(review): link a TODO without a usable line number to its file by @Arta-shoja in #3788
- fix: stop caching repo context on a mutable ref by @utsab345 in #3776
- fix(typo): commitable to committable by @even-even in #3749
- fix(action): share GitHub helpers so the Action keeps the #3670 /ask fix by @Yoel-qin in #3785
- fix(github): fetch newest polling comments by @oleksii-tumanov in #3747
- fix(labels): build the label enum whe
- Gitea webhooks now require a secret (#3637): with
- v0.46.02026-09-21 · 2026-09-21 16:28 UTC
查看更新说明
What's Changed
🚀 Features
- feat(status): acknowledge a pull request the moment automatic commands start by @dwin-gharibi in #3091
- feat(gitlab): content-based auto-resolve for fixed inline threads by @Nie1iX in #3478
- feat(tickets): make description issue matching configurable by @utsab345 in #3385
- feat: register Grok 4.3 reasoning effort by @deadpool-mjpatel4444 in #3425
- feat(context): load repo-context files from sibling repos (same namespace/owner) by @utsab345 in #3362
- feat: add typed prompt output models by @utsab345 in #3371
- feat: per-directory .pr_agent.toml for monorepo settings by @utsab345 in #3282
- feat(improve): recover failed chunks with fallback models by @junnhwan in #3324
- feat(jira): add project-key allowlist to skip lookups for key-shaped noise by @Fayupable in #3304
- feat: add Jira ticket-context support by @dellch in #2420
- feat(telemetry): expose a native prometheus scrape endpoint by @utsab345 in #3238
- feat: generalize org-level settings to all providers via get_owning_namespace by @utsab345 in #3143
- feat(models): route small pull requests to a cheaper primary model by @ylcn91 in #3104
- feat(artifacts): read the CI artifact context from the CLI as well by @ylcn91 in #3105
- feat(models): add Claude Fable 5.1 support by @PeterDaveHello in #3101
- feat(models): add OpenAI GPT-6 Astra support by @PeterDaveHello in #3087
- feat(push_outputs): route describe and improve output to the configured sinks by @dwin-gharibi in #3098
- fix(tickets): bound the shorthand issue-number match at six digits, matching the branch pattern by @dwin-gharibi in #3082
- feat(reactions): configurable start and outcome reactions by @dwin-gharibi in #3089
- feat(review): publish sanitized failure reasons by @elijahchancey in #2996
🐛 Bug Fixes
- fix: check pinecone upsert response by @utsab345 in #3561
- fix: preserve quoting in CLI and configured Action commands by @oleksii-tumanov in #3585
- fix(github): send label names to the set-labels endpoint by @utsab345 in #3582
- fix: point shipped docs links at live targets by @utsab345 in #3556
- fix(diff): preserve source lines containing EOF marker text by @PeterDaveHello in #3572
- fix(codecommit): apply ignore rules and read .pr_agent.toml from the destination commit by @PeterDaveHello in #3576
- fix(polling): log worker capacity waits by @PeterDaveHello in #3574
- fix(similar_issue): treat a blank qdrant url as unset by @utsab345 in #3551
- fix(similar_issue): honor max issues scan limit by @mote24405-coder in #3565
- fix(similar_issue): let a second repository join an existing lancedb table by @utsab345 in #3563
- fix(similar_issue): make lancedb search and ingest match the other backends by @utsab345 in #3562
- fix: namespace pinecone similar issue by @utsab345 in #3560
- fix(similar_issue): stop lancedb duplicating the sentinel row by @utsab345 in #3558
- fix(similar_issue): keep the best hit per issue so the comment lists stay aligned by @utsab345 in #3557
- fix(similar_issue): list all lancedb tables instead of the deprecated 10-name call by @utsab345 in #3553
- fix: preserve generated changelog after write failures by @oleksii-tumanov in #3529
- fix(similar_issue): skip null comment bodies before splitting by @utsab345 in #3549
- fix: resolve the PR head SHA through a provider hook (#3431) by @sloemo01 in #3528
- fix: invert lancedb ingest table check by @utsab345 in #3531
- fix(gitlab): narrow broad exception handlers in the GitLab provider by @wfatih in #3525
- fix(gpt5): clamp reasoning_effort 'max' where xhigh is unsupported by @auroraxo in #3273
- fix: redact sensitive AWS Secrets Manager error logs by @PeterDaveHello in #3512
- fix(tests): validate Gitea E2E file writes and tool results by @PeterDaveHello in #3513
- fix: keep tags in reasoning support probe by @utsab345 in #3502
- fix(litellm): support adaptive thinking for profile ARNs by @rajin-khan in #3497
- fix(github-
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
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.
Table of Contents
Getting Started
[!NOTE] Docker Hub namespace migration. Releases
0.34.2and later are published underpragent/pr-agent. Older releases (up to and includingv0.31) remain available at the legacycodiumai/pr-agentnamespace as a frozen archive — no new images are pushed there. Update any pinnedimage:/docker pull/uses: docker://references when upgrading to0.34.2+.
🚀 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[github]"
export OPENAI_KEY=your_key_here
pr-agent --pr_url https://github.com/owner/repo/pull/123 review
Git provider SDKs are optional extras: install the one for your provider (list), or pr-agent[all] for every integration.
Complete CLI setup guide
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
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.