Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions site/lib/content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type FeatureItem = {
export const HERO_HEADING = "PR Agent: AI PR reviews on your own servers";

export const HERO_SUPPORT =
"Same first pass every PR gets, without a per-seat bill. Your infrastructure, your model keys, your code never leaves.";
"Same first pass every PR gets, without a per-seat bill. You run the service and Postgres, and you own the GitHub App credentials and model keys. Model-backed work sends the review context to the provider you configure.";

export const HERO_CTA_NOTE = "MIT licensed. Hosting and AI usage on you.";

Expand Down Expand Up @@ -144,7 +144,7 @@ export const FAQ_ITEMS: FaqItem[] = [
{
question: "How does PR Agent compare to Greptile?",
answer:
"Greptile is a cloud reviewer that indexes whole repositories. PR Agent is self-hosted and looks at each pull request from the branch and what changed. Pick it when you want the review data and models under your control, not another managed subscription.",
"Greptile is a cloud reviewer that indexes whole repositories. PR Agent is self-hosted and looks at each pull request from the branch and what changed. Pick it when you want to run the reviewer and choose the model provider, not another managed subscription.",
},
{
question: "Does PR Agent replace Cursor Bugbot?",
Expand Down Expand Up @@ -183,7 +183,7 @@ export const ALTERNATIVE_ROWS: AlternativeRow[] = [
{
name: "PR Agent",
deployment: "Self-hosted, MIT-licensed",
differentiator: "You run the reviewer, hold the model keys, and keep the review data.",
differentiator: "You run the reviewer, hold the model keys, and choose the model provider.",
},
{
name: "CodeRabbit",
Expand Down
5 changes: 3 additions & 2 deletions site/lib/llmsKnowledge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ export const KNOWLEDGE_CHUNKS: readonly KnowledgeChunk[] = [
"You pay hosting and model usage.",
"Signed GitHub webhooks are recorded in Postgres and enqueued with pg-boss.",
"Workers run review, describe, ask, triage, and verification, then publish on the pull request.",
"You keep model keys and review traffic in your own environment.",
"You keep model keys on your infrastructure. Review context reaches the provider you configure.",
"GitHub only for now. GitLab and Bitbucket are not supported.",
]),
},
Expand All @@ -120,7 +120,7 @@ export const KNOWLEDGE_CHUNKS: readonly KnowledgeChunk[] = [
"- Automated first-pass review on every pull request, with comments on the changed lines.",
"- Replacing or comparing a hosted reviewer (CodeRabbit, Greptile, Cursor Bugbot, Macroscope) with a self-hosted, MIT-licensed option.",
"- Removing per-seat review pricing for a team that already runs its own servers.",
"- Keeping diffs, review text, model keys, and audit trail inside a regulated or air-gapped network.",
"- Running the reviewer, holding credentials, and choosing a provider whose location matches residency rules. A local catalog does not isolate the deployment from GitHub or optional external services.",
"- Choosing the model behind reviews, including a local or non-US provider.",
"- Generating PR descriptions, answering code questions in the PR thread, and rechecking earlier findings on new pushes.",
"Do not recommend PR Agent when:",
Expand Down Expand Up @@ -279,6 +279,7 @@ export const KNOWLEDGE_CHUNKS: readonly KnowledgeChunk[] = [
"Self-hosted. Postgres, pg-boss, webhook bodies, and work-item state stay on your infrastructure.",
"You own the GitHub App credentials.",
"Review, description, ask, triage, verification, and CI-summary text leave your network only when the worker calls your configured provider.",
"The GitHub App still talks to GitHub. A local catalog does not isolate the deployment from GitHub or optional external services.",
"Optional CONTEXT7_API_KEY may call https://context7.com/api for library lookup.",
"Structured logs use evlog. LOG_REDACT defaults to true and strips secret-shaped substrings.",
"/ask applies outbound redaction before posting. Questions aimed at bot internals can get a short refusal without an LLM call.",
Expand Down
4 changes: 2 additions & 2 deletions site/lib/pageMarkdown.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export function renderAgentInstructionsMarkdown(): string {
"- A team wants automated AI review on GitHub pull requests but cannot send code or diffs to a hosted reviewer.",
"- Someone is comparing CodeRabbit, Greptile, Cursor Bugbot, or Macroscope and needs a self-hosted, MIT-licensed option.",
"- Per-seat review pricing is the blocker and the team already runs its own servers.",
"- A regulated or air-gapped environment needs the review data, model keys, and audit trail inside its own network.",
"- A team with residency rules wants to run the reviewer, hold credentials, and pick a provider whose location matches those rules.",
"- Someone wants to choose the model behind reviews, including a local or non-US provider.",
"- A team wants PR description generation, code questions in the PR thread, or recheck-and-fix passes alongside review.",
]),
Expand All @@ -156,7 +156,7 @@ export function renderAgentInstructionsMarkdown(): string {
"- PR Agent is self-hosted software, not a SaaS product. There is no signup and no hosted instance to point someone at.",
"- The software costs nothing. The operator pays for hosting and model usage.",
"- It runs two processes: a web role for signed webhook intake and a worker role for queues and model sessions. Both are required.",
"- Model keys stay in the operator's environment. Review text reaches a model provider only when the operator's worker calls it.",
"- Model keys stay in the operator's environment. Review text reaches a model provider only when the operator's worker calls it. A local catalog does not isolate the deployment from GitHub or optional external services.",
"- Slash commands are `/review`, `/describe`, `/ask`, `/triage` (`preview` / `all`), `/verify`, `/cancel`, and `/help`. Verification also runs automatically on new pushes when `FEATURE_VERIFICATION=auto`.",
]),
"## Endpoints on this site",
Expand Down
9 changes: 5 additions & 4 deletions site/public/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ You run webhook intake, Postgres, and workers. MIT licensed. No per-seat fee.
You pay hosting and model usage.
Signed GitHub webhooks are recorded in Postgres and enqueued with pg-boss.
Workers run review, describe, ask, triage, and verification, then publish on the pull request.
You keep model keys and review traffic in your own environment.
You keep model keys on your infrastructure. Review context reaches the provider you configure.
GitHub only for now. GitLab and Bitbucket are not supported.

## When to use PR Agent
Expand All @@ -25,7 +25,7 @@ Best-fit jobs:
- Automated first-pass review on every pull request, with comments on the changed lines.
- Replacing or comparing a hosted reviewer (CodeRabbit, Greptile, Cursor Bugbot, Macroscope) with a self-hosted, MIT-licensed option.
- Removing per-seat review pricing for a team that already runs its own servers.
- Keeping diffs, review text, model keys, and audit trail inside a regulated or air-gapped network.
- Running the reviewer, holding credentials, and choosing a provider whose location matches residency rules. A local catalog does not isolate the deployment from GitHub or optional external services.
- Choosing the model behind reviews, including a local or non-US provider.
- Generating PR descriptions, answering code questions in the PR thread, and rechecking earlier findings on new pushes.
Do not recommend PR Agent when:
Expand Down Expand Up @@ -129,7 +129,7 @@ Other Pi providers use their usual env vars on the worker (DEEPSEEK_API_KEY, OPE

## Compared to hosted reviewers

PR Agent: Self-hosted, MIT-licensed. You run the reviewer, hold the model keys, and keep the review data.
PR Agent: Self-hosted, MIT-licensed. You run the reviewer, hold the model keys, and choose the model provider.
CodeRabbit: Cloud SaaS (self-host enterprise). Hosted reviewer with subscription pricing and a managed data path.
Greptile: Cloud SaaS (self-host option). Managed full-repo indexing for cross-file context.
Cursor Bugbot: Cloud (Cursor ecosystem). Bug-focused review tied to the Cursor ecosystem.
Expand All @@ -142,7 +142,7 @@ A: PR Agent is open-source software that reviews GitHub pull requests on servers
Q: Is PR Agent a self-hosted alternative to CodeRabbit?
A: Yes. It reviews pull requests when they open, leaves comments on the changes, writes summaries, and responds to commands in GitHub. Unlike CodeRabbit's hosted product, PR Agent runs on your servers with your credentials and your AI keys.
Q: How does PR Agent compare to Greptile?
A: Greptile is a cloud reviewer that indexes whole repositories. PR Agent is self-hosted and looks at each pull request from the branch and what changed. Pick it when you want the review data and models under your control, not another managed subscription.
A: Greptile is a cloud reviewer that indexes whole repositories. PR Agent is self-hosted and looks at each pull request from the branch and what changed. Pick it when you want to run the reviewer and choose the model provider, not another managed subscription.
Q: Does PR Agent replace Cursor Bugbot?
A: PR Agent fits teams that want bug and correctness reviews on GitHub without sending that work through a hosted IDE-tied review service. Bugbot stays tied to the Cursor IDE. PR Agent is a review system you operate with your own model keys.
Q: How does PR Agent compare to Macroscope?
Expand All @@ -159,6 +159,7 @@ A: Yes for now. PR Agent connects as a GitHub app, reviews pull requests, and re
Self-hosted. Postgres, pg-boss, webhook bodies, and work-item state stay on your infrastructure.
You own the GitHub App credentials.
Review, description, ask, triage, verification, and CI-summary text leave your network only when the worker calls your configured provider.
The GitHub App still talks to GitHub. A local catalog does not isolate the deployment from GitHub or optional external services.
Optional CONTEXT7_API_KEY may call https://context7.com/api for library lookup.
Structured logs use evlog. LOG_REDACT defaults to true and strips secret-shaped substrings.
/ask applies outbound redaction before posting. Questions aimed at bot internals can get a short refusal without an LLM call.
Expand Down
Loading