Revcli
A personal LLM code reviewer that checks your local Git changes against best practices and common mistakes.
Install / Use
/learn @trankhanh040147/RevcliREADME
revcli
LLM-powered code reviewer CLI.
revcli is a local command-line tool that acts as an intelligent peer reviewer. It reads your local git changes and uses your chosen LLM provider to analyze your code for bugs, optimization opportunities, and best practices—all before you push a single commit.
Features
- Smart Context: Analyzes
git diffplus full file contents to understand exactly what you changed and where it fits. - Branch Comparison: Compare against any branch or commit with
--baseflag (perfect for MR/PR reviews). - Context Preview: See exactly which files and how many tokens will be sent before the review.
- Token Usage Display: Track actual token usage after each review.
- Privacy-First: Runs locally with built-in secret detection to prevent accidentally sending credentials to the LLM.
- Interactive Chat: Ask follow-up questions about the review in an interactive TUI.
- Multi-Provider: Use cloud APIs (Gemini, Claude, GPT, etc.) or local LLMs (Ollama, LM Studio, vLLM) via a single config.
Supported providers
revcli supports many LLM providers. The list is supplied by Catwalk (Charm’s provider registry) and can be updated with revcli update-providers. Supported provider types include:
| Type | Description |
|------|-------------|
| Google (Gemini) | Google AI Studio – e.g. gemini-3.0-pro, gemini-3.0-flash |
| Google Vertex AI | Google Cloud Vertex AI |
| OpenAI | OpenAI API – e.g. gpt-5.4, gpt-5.4-mini |
| Anthropic | Claude models – e.g. claude-opus-4.6, claude-sonnet-4-6 |
| Azure OpenAI | Azure-hosted OpenAI-compatible endpoints |
| AWS Bedrock | Amazon Bedrock (e.g. Claude on Bedrock) |
| OpenRouter | OpenRouter – many models behind one API |
| OpenAI-compatible (local) | Any server that speaks the OpenAI API: Ollama, LM Studio, vLLM, LocalAI, etc. |
You choose a provider and model in ~/.config/revcli/config.yaml or via the TUI when you run revcli without arguments. Code review uses your configured large model.
Prerequisites
Before using the tool, ensure you have the following installed:
- Go (version 1.25 or higher)
- Git installed and initialized in your project.
- At least one LLM provider configured (API key or local endpoint). Examples:
- Google Gemini: Get an API key here.
- OpenAI: API key from platform.openai.com.
- Anthropic: API key from console.anthropic.com.
- Local (Ollama, LM Studio, etc.): No key needed; set
base_urlin config (e.g.http://localhost:11434/v1for Ollama).
Installation
You can install the tool directly using go install:
go install github.com/trankhanh040147/revcli@latest
Or build from source:
git clone https://github.com/trankhanh040147/revcli.git
cd revcli
make build
Then run revcli to start the interactive TUI (see Usage below).
Configuration
Configure your provider(s) in ~/.config/revcli/config.yaml. The app can also prompt you to pick a provider and model when you run revcli (no args).
- Cloud providers: Set the provider’s API key in the config or via the relevant env var (e.g.
GEMINI_API_KEY,OPENAI_API_KEY,ANTHROPIC_API_KEY). Keys are not overridable via a review command flag; use the config or env. - Local LLMs (Ollama, LM Studio, vLLM, etc.): Add a provider with
type: openai-compatandbase_urlpointing to your server (e.g.http://localhost:11434/v1for Ollama). No API key required for most local setups.
To refresh the list of available providers and models from the Catwalk registry:
revcli update-providers
Usage
Getting started — run revcli
The main way to use revcli is to run:
revcli
This launches the interactive TUI: you choose a provider and model (or set one up if needed), then you can start a code review or chat with the AI from the same interface. Use this when you want the full experience (sessions, follow-up chat, file list, presets).
To review code directly from the command line (e.g. in scripts or CI), use revcli review instead (see below).
Basic Review
Review all uncommitted changes in your repository:
revcli review
Review Against a Branch (MR/PR Style)
Compare your current changes against a base branch - perfect for merge request reviews:
# Compare against main branch
revcli review --base main
# Compare against develop branch
revcli review --base develop
# Compare against a specific commit
revcli review --base abc1234
Review Staged Changes Only
Review only the changes you've staged for commit:
revcli review --staged
Use a Specific Model
The model used for review is your configured large model in ~/.config/revcli. You can change it via the TUI (run revcli and pick a provider/model) or by editing the config. The --model flag lets you request a specific model name for the current provider:
revcli review --model gemini-3.0-flash
Non-Interactive Mode
Get the review output without the interactive chat interface:
revcli review --no-interactive
Skip Secret Detection
If you're confident there are no secrets in your code (use with caution):
revcli review --force
Use Review Presets
Apply predefined review styles for focused analysis:
# Quick, high-level review
revcli review --preset quick
# Comprehensive, detailed review
revcli review --preset strict
# Security-focused review
revcli review --preset security
# Performance optimization focus
revcli review --preset performance
Available presets: quick, strict, security, performance, logic, style, typo, naming
You can also create custom presets in ~/.config/revcli/presets/*.yaml. See Development Roadmap for details.
Manage Presets
Manage your custom presets with dedicated commands:
# List all presets (built-in and custom)
revcli preset list
# Create a new custom preset
revcli preset create my-preset
# Show preset details
revcli preset show my-preset
# Delete a custom preset
revcli preset delete my-preset
Interactive Mode
When running in interactive mode (default), you can:
- View the review: The AI analysis is displayed in a scrollable viewport
- Ask follow-up questions: Press
Enterto enter chat mode, thenAlt+Enterto send - Navigate: Use Vim-style keys (
j/kfor up/down,g/Gfor top/bottom) or arrow keys; half/full page:Ctrl+d/Ctrl+u,Ctrl+f/Ctrl+b - Search: Press
/to search within the review,n/Nfor next/previous match,Tabto toggle highlight/filter mode,Escto exit search - File list: Press
ito enter file list (prune files from context),j/kto navigate,Enterto view selected file,Escto back to review - Yank to clipboard: Press
y(oryy) to copy entire review,Yfor last response only - Prompt history: In chat mode, use
Ctrl+P(previous) andCtrl+N(next) to navigate prompt history - Web search: In chat, press
Ctrl+Wto toggle web search for the model - Cancel requests: Press
Ctrl+Xto cancel a streaming request - Help: Press
?to see all available keybindings - Exit: Press
qto quit,Escto exit chat mode
See the help overlay for the complete list of keyboard shortcuts.
Context Preview
Before sending to the API, revcli shows you exactly what will be reviewed:
📋 Review Context
─────────────────
📁 Files to review:
• internal/api/handler.go (2.3 KB)
• internal/api/middleware.go (1.1 KB)
• cmd/server.go (856 B)
Total: 3 files, 4.3 KB
🚫 Ignored files:
• go.sum
• internal/api/handler_test.go
📊 Token Estimate: ~1,250 tokens
Token Usage
After each review, you'll see the actual token usage:
✓ Review completed in 3.2s
📊 Token Usage: 1,247 prompt + 892 completion = 2,139 total
What Gets Reviewed
The tool analyzes:
- All modified source files
- The git diff showing exact changes
- Full file context for better understanding
The tool automatically filters out:
go.sumandgo.modfilesvendor/directory- Generated files (
*_generated.go,*.pb.go) - Test files (
*_test.go) - Mock files
Security
The tool includes basic secret detection that scans for:
- API keys and tokens
- Passwords and secrets
- Private keys
- Database URLs with credentials
- Common credential patterns
If potential secrets are detected, the review is aborted unless --force is used.
Review Focus Areas
The AI reviewer acts as a Senior Engineer and focuses on:
- Bug Detection - Logic errors, nil pointer dereferences, race conditions
- Idiomatic Patterns - Best practices for your language
- Performance Optimizations - Unnecessary allocations, inefficient loops
- Security Concerns - Input validation, injection risks
- Code Quality - Readability, documentation, test coverage suggestions
Example Output
🔍 Code Review
📋 Review Context
─────────────────
📁 Fil
