code-review-server is a service which runs highly configurable workflows to load code reviews which you are interested into easily managed customizable interfaces.
It also supports doing local code reviews via your preferred client, allowing you to customize your experience such as doing them in your editor, using plugins, defining hotkeys, whatever you'd like.
It is designed to be client-agnostic, communicating via JSON-RPC. It ships with a web client (bun/react) and an emacs client.
Full documentation is available at https://code-review-server.readthedocs.io/en/latest/
- Clone the repository
-
Configure environment
export CRS_GITHUB_TOKEN="Github Token" # Required. export GEMINI_API_KEY="Gemini Token" # Only for plugins, the experimental LLM features, and AI features on the gemini provider.
That token is the only required setup. With no config file, the server runs a built-in default configuration — a Waiting On Me section and a Review Requested section, found through GitHub search and identified by whoever the token belongs to. No repo list, no username.
To customize, start from those defaults and edit (see Configuration):
codereviewserver -print-default-config > ~/.config/codereviewserver.toml
A fuller
~/.config/codereviewserver.toml, once you know which repos you care about:Repos = ["owner/repo"] GithubUsername = "your-username" AutoWorktree = true [[Workflows]] WorkflowType = "SyncReviewRequestsWorkflow" Name = "My PRs" Filters = ["FilterMyPRs"] SectionTitle = "PRs to Review" [[Workflows]] WorkflowType = "SyncReviewRequestsWorkflow" Name = "PRs to Review" Filters = ["FilterNotDraft", "FilterMyReviewRequested"] SectionTitle = "PRs to Review" [[Plugins]] Name = "Summarize Diff" Command = "summarize_diff" IncludeDiff = true IncludeHeaders = true IncludeComments = true
-
Install Server
Alternatively, use Docker Compose to run steps 3 and 4 containerized with
docker compose up.go install ./...
This installs the server binary and included plugins to your
$GOPATH/bin. -
Run a Client
See Clients for detailed instructions on running the Web or Emacs clients.
Web Client (Brief):
cd bun_client bun install && bun run build bun start
Emacs Client (Brief): Evaluate
client.el/crs-client.eland run(crs-start-server).

