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 Google's Gemini LLM to analyze your code for bugs, optimization opportunities, and best practicesβall before you push a single commit.
- 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.
- Gemini Integration: Leverages the large context window and reasoning of Gemini 2.5 Pro.
Before using the tool, ensure you have the following installed:
- Go (version 1.21 or higher)
- Git installed and initialized in your project.
- A Google Gemini API Key (Get one here).
You can install the tool directly using go install:
go install github.com/trankhanh040147/revcli@latestOr build from source:
git clone https://github.com/trankhanh040147/revcli.git
cd revcli
make buildgo install github.com/trankhanh040147/revcli@latest
## Configuration
Set your Gemini API key as an environment variable:
```bash
export GEMINI_API_KEY="your-api-key-here"
Or pass it directly via the --api-key flag.
Review all uncommitted changes in your repository:
revcli reviewCompare 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 abc1234Review only the changes you've staged for commit:
revcli review --stagedThe default model is gemini-2.5-pro. You can also use other models:
revcli review --model gemini-2.5-flashGet the review output without the interactive chat interface:
revcli review --no-interactiveIf you're confident there are no secrets in your code (use with caution):
revcli review --forceApply 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 performanceAvailable 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 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-presetWhen 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 - Search: Press
/to search within the review,n/Nfor next/previous match - 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 - 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.
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
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
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
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.
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
π Code Review
π Review Context
βββββββββββββββββ
π Files to review:
β’ internal/api/handler.go (2.3 KB)
π Token Estimate: ~850 tokens
### Summary
The changes implement a new user authentication handler...
### Issues Found
π΄ **Critical**: Missing error check on line 45
π **Warning**: Race condition in concurrent access
π‘ **Suggestion**: Consider using sync.Pool for better performance
### Code Suggestions
...
β Review completed in 2.8s
π Token Usage: 847 prompt + 523 completion = 1,370 total
| Flag | Short | Description |
|---|---|---|
--base <ref> |
-b |
Base branch/commit to compare against |
--staged |
-s |
Review only staged changes |
--model <name> |
-m |
Gemini model (default: gemini-2.5-pro) |
--force |
-f |
Skip secret detection |
--no-interactive |
-I |
Disable interactive TUI |
--interactive |
-i |
Enable interactive TUI (default) |
--api-key <key> |
-k |
Override GEMINI_API_KEY |
--preset <name> |
-p |
Use predefined review preset (quick, strict, security, etc.) |
--version |
-v |
Show version information |
For development information, roadmap, and version-specific context:
- Development Roadmap - Complete roadmap with all versions, features, and known bugs
- v0.3 Development Context - Detailed context for current version development
The development documentation includes:
- Design principles and coding standards
- Feature implementation status
- Bug tracking and fixes
- Technical implementation notes
- Related file references
Contributions are welcome! Please feel free to submit a Pull Request.
Before contributing, please review the Development Roadmap to understand the project's direction and design principles.
MIT License - see LICENSE for details.