Self-hosted GitHub App that strips formatting noise from diffs and reviews code with AI
1.6K
Your PR has 50 real changes buried under 20,000 lines of Prettier formatting. ClearPR fixes that.
ClearPR is a self-hosted GitHub App that strips formatting noise from diffs, reviews code against your project guidelines, and learns from past PR feedback to catch repeat mistakes.
| Tag | Description |
|---|---|
latest | Latest stable release |
X.Y.Z | Specific patch version (pin this in production) |
X.Y | Latest patch of a minor release |
X | Latest minor of a major release |
Images are published multi-arch for linux/amd64 and linux/arm64, on every release cut by release-please.
Also available on GHCR at ghcr.io/vineethkrishnan/clearpr.
docker pull vineethnkrishnan/clearpr:latest
.env file# Required
GITHUB_APP_ID=your_app_id
GITHUB_PRIVATE_KEY=your_private_key.pem
GITHUB_WEBHOOK_SECRET=your_webhook_secret
# LLM Provider — choose one: anthropic, openai, ollama, mistral, gemini
LLM_PROVIDER=anthropic
LLM_API_KEY=sk-ant-...
# Defaults match the compose snippet below
DATABASE_URL=postgresql://clearpr:clearpr@db:5432/clearpr
REDIS_URL=redis://redis:6379
Save this as docker-compose.yml next to your .env:
services:
app:
image: vineethnkrishnan/clearpr:latest
ports:
- '3000:3000'
env_file: .env
environment:
- NODE_ENV=production
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
restart: unless-stopped
db:
image: pgvector/pgvector:pg16
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: clearpr
POSTGRES_PASSWORD: clearpr
POSTGRES_DB: clearpr
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U clearpr']
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
Start it:
docker compose up -d
curl http://localhost:3000/health/live
# {"status":"ok"}
Install the GitHub App on your repos, open a PR, and ClearPR will review it.
CLEARPR.md.All configuration is via environment variables. See the full environment reference for every option.
Required:
GITHUB_APP_ID — your GitHub App IDGITHUB_PRIVATE_KEY — path to (or contents of) the App private keyGITHUB_WEBHOOK_SECRET — webhook secret from the App settingsLLM_PROVIDER — anthropic, openai, ollama, mistral, or geminiLLM_API_KEY — provider API key (not needed for ollama)DATABASE_URL — Postgres connection string (requires the pgvector extension)REDIS_URL — Redis connection string (for the BullMQ work queue)The container exposes two health endpoints suitable for container orchestrators and load balancers:
GET /health/live — liveness probe (process is up)GET /health/ready — readiness probe (database and Redis reachable)The image itself is stateless. Persistent state lives in the Postgres and Redis services (see the compose snippet above).
Content type
Image
Digest
sha256:6ba30fb4f…
Size
233.1 MB
Last updated
18 days ago
docker pull vineethnkrishnan/clearpr