Boring for Gemini
Autonomous AI Agent Loop with VibeCoder Experience
✨ The Vibe Coder Experience (V10.24)
No Code Needed. Just describe the vibe.
Boring-Gemini now features a Universal Natural Language Router. You don't need to remember 98+ complex tools. Just say what you want in English or Chinese:
"Search for authentication logic"
"Review my code for security issues"
"幫我寫測試" (Help me write tests)
"我想做登入功能" (I want to build login feature)
Try it in your terminal:
boring-route "review my code"
# 🎯 Routes to boring_code_review (100%)
👉 Learn more about Vibe Coder Experience
⚡ boring 的厲害 (Why Boring?)
Boring isn't just an MCP server; it's a Intelligence Maximization System:
- 🧠 Autonomous Loop: Not just a chatbot. Boring runs in a loop (
boring start), thinking, coding, testing, and fixing until the job is done. - 🕵️ Hybrid RAG: Advanced code search combining keywords, vectors, and dependency graphs (HyDE + Cross-Encoder). It finds code you didn't even know existed.
- 🛡️ Security Shadow Mode: Safe execution sandbox. It catches dangerous operations before they happen.
- ⚡ 30% Faster: Smart caching and optimized router reduce context usage by 80% (from 98 tools to 19).
- 🧩 Vibe Coder: The most human-friendly AI coding interface. Zero friction between thought and code.
🚀 Quick Start
Boring: Your Autonomous Coding Partner
Enterprise-grade Autonomous AI Development Agent
A full-language automated coding and verification engine built for Cursor / Claude Desktop / VS Code / Gemini CLI.
中文版 README | Full Documentation
🚀 Core Advantages
| Feature | Description |
|---|---|
| 🌐 Polyglot & CLI Native | Seamless switching between Gemini CLI and Claude Code CLI, zero API key required |
| 🛡️ Parallel Verification | Multi-threaded parallel verification, 3-5x performance boost |
| 🧠 RAG Memory | Hybrid Search (Vector + Keyword) + dependency graph for real-time retrieval |
| 🛡️ Shadow Mode | High-risk operations require human approval, with persistent config |
| 📐 Spec-Driven | 100% specification consistency from PRD to Code |
| 🔒 Quality Gates | CI/CD multi-tier gates + multi-language linting + 20+ file type security scanning |
| ✨ Vibe Coder Pro | Doc Gen |
[!IMPORTANT] Boring is now primarily an MCP tool (used via Cursor / Claude Desktop / IDE)
- ❌ Not recommended to run
boring startdirectly in CMD/terminal: Gemini CLI no longer supports free authorization (unless using API, which is not well-tested)- ✅ Recommended usage: Use Boring tools through Smithery or MCP config in your IDE or Client
- ✅ Monitoring tools still work:
boring-monitor,boring-dashboardcan be run locallyMost features are optimized for the MCP environment. CLI mode is no longer the primary supported method.
📦 Quick Installation
Option 1: Smithery (✅ Recommended)
npx -y @smithery/cli@latest install boring/boring --client gemini-cli
⚠️ Gemini Client Users: If you encounter issues installing via Smithery, please use Option 2 (Local pip). Direct Smithery integration on Gemini Client can be intermittent.
Option 2: Local pip Installation
# Install with all features (Recommended for Vibe Coder)
pip install "boring-aicoding[all]"
# Or minimal install
pip install boring-aicoding
🤔 Which one should I choose?
| Feature | [all] (Full / Local) | Lite (Basic / Smithery Default) |
|---|---|---|
| RAG Memory | ✅ Vector + Semantic | ⚠️ Keyword only (No vector DB) |
| Self-Verify | ✅ Can run tests (boring verify) | ❌ Cannot verify (Missing pytest) |
| Dashboard | ✅ GUI Available | ❌ None |
| Vibe Coding | ✅ Full Experience (Think + Fix) | ⚠️ Lite (Write code only) |
⚙️ MCP Environment Variables
| Variable | Values | Description |
|---|---|---|
BORING_MCP_MODE | 1 (required) | Enable MCP mode |
BORING_MCP_PROFILE | minimal / lite / standard / full | Tool exposure level |
PROJECT_ROOT_DEFAULT | . or path | Default project root |
Profile Comparison:
| Profile | Tools | Best For |
|---|---|---|
minimal | 8 | Quick tasks |
lite | 20 | Daily dev (Default) |
standard | 50 | Professional dev |
full | ~98 | Power Users |
Option 3: Clone from GitHub (Fallback)
Best for: Developers or if pip install fails
git clone https://github.com/Boring206/boring-gemini.git
cd boring-gemini
pip install -e .
🚀 Usage
1️⃣ MCP Mode (Recommended)
Add Boring to your Cursor or VS Code config. The Agent will become an autonomous engineer in your IDE.
- Prompts: Click the ✨ button or use
Cmd+Ito select a prompt. - Workflows: Type
/in Chat to trigger a workflow.
💎 Top 5 Most Used Functions
👉 View Complete Reference Manual (All 30+ Functions)
| Command | Type | Description |
|---|---|---|
vibe_start | Prompt | One-click project kick-off. From idea to architecture plan. |
quick_fix | Prompt | Auto-fix everything. Repairs lint errors and bugs. |
/speckit-plan | Workflow | Technical Planning. Creates a detailed implementation plan. |
smart_commit | Prompt | Auto Commit. Generates commit message from progress. |
review_code | Prompt | Architect Review. Deep code analysis for issues. |
2️⃣ Maintenance Commands
Run these commands in your terminal:
# Install Git Hooks (Auto-verify commits)
python -m boring hooks install
# Open Dashboard (Web UI)
python -m boring dashboard
# Check Health
python -m boring status
3️⃣ LSP Server (Optional - For VS Code / Neovim Only)
[!NOTE] Cursor users: You DON'T need LSP! Cursor has built-in AI features. Just use MCP config above.
LSP is for: VS Code (without AI), Neovim, and other terminal editors.
What's the difference?
| MCP | LSP | |
|---|---|---|
| Purpose | AI Agent tools (chat commands) | Editor syntax services |
| Interaction | Chat: "Review my code" | Auto-complete, diagnostics |
| Required? | ✅ Yes | ⚠️ Optional |
🔧 LSP Configuration (click to expand)
-
Install:
pip install "boring-aicoding[all]" -
VS Code (
settings.json):{ "boring.lsp.enabled": true, "boring.lsp.command": "python", "boring.lsp.args": ["-m", "boring", "lsp", "start"] } -
Neovim (
nvim-lspconfig- for Linux/Mac terminal users):require('lspconfig').boring.setup { cmd = { "python", "-m", "boring", "lsp", "start" }, filetypes = { "python", "javascript", "typescript" }, }
[!CAUTION] DO NOT run
python -m boring lsp startdirectly in terminal. This command is for editor configuration only. The LSP server communicates via stdin/stdout.
⚙️ MCP Configuration
For Smithery
{
"mcpServers": {
"boring": {
"command": "npx",
"args": ["-y", "@smithery/cli", "run", "@boring/boring", "--config", "{}"]
}
}
}
For Local pip
{
"mcpServers": {
"boring": {
"command": "python",
"args": ["-m", "boring.mcp.server"],
"env": {
"BORING_MCP_MODE": "1"(NEEDED),
"PROJECT_ROOT_DEFAULT": ".",
"BORING_MCP_PROFILE": "lite"
}
}
}
}
🎛️ Tool Profiles (V10.24)
Problem: 98 tools can overwhelm LLM context windows. Solution: Choose a profile to expose only the tools you need.
| Profile | Tools | Best For |
|---|---|---|
minimal | 8 | Simple workflows, minimal context |
lite | 20 | Recommended - everyday development |
standard | 50 | Full-featured projects |
full | 98+ | Power users who need everything |
Configure in .boring.toml:
[boring.mcp]
profile = "lite" # Options: minimal, lite, standard, full
Or via environment variable:
export BORING_MCP_PROFILE=lite
🎯 Universal Router: With lite profile, use boring("search for auth code") - the router automatically directs to the right tool!
🎯 Quick Start Prompts
| Prompt | Usage |
|---|---|
/vibe_start | Start a new project with AI guidance |
/full_stack_dev | Build a complete full-stack application |
/release-prep | Turbo: Auto-bump version & git tag |
/quick_fix | Auto-fix all linting and formatting errors |
/smart_commit | Generate semantic commit messages |
📚 Documentation
| Category | Links |
|---|---|
| Getting Started | Vibe Coder Guide · 🗣️ Natural Language Prompts · Quick Tutorials |
| Features | MCP Tools (55+) · Shadow Mode · Quality Gates · Monitoring |
| Guides | Cookbook · Pro Tips · Git Hooks · Workflows |
| Learning | Tutorials · Skills Guide · Knowledge Mgmt |
| Advanced | Plugins · API Integration · Human Alignment |
| Reference | Architecture · Security & Privacy · Agent Comparison · V10 Changelog |
✨ Vibe Coder Pro Toolset
🎉 Interactive Tutorial on Startup! First-time MCP connection triggers
mcp_introto guide new users.
🗣️ Natural Language Triggers (No Code Required!)
Just say these to Boring:
| Goal | Just Say |
|---|---|
| Write Tests | Help me write tests for auth.py |
| Review Code | Review my code |
| Health Check | Vibe Check my project |
| Check Impact | Check impact of utils.py |
| Plan Feature | I want to add login, Plan this feature |
🧰 Core Tools
| Tool | Description | Example |
|---|---|---|
🧪 boring_vibe_check | Project Health Scan - Coverage, Docs, Security (S-F Grade) | boring_vibe_check(project_path=".") |
📊 boring_impact_check | Impact Analysis - Trace reverse dependencies (L1/L2/L3) | boring_impact_check(file_path="core.py") |
🧪 boring_test_gen | Smart Test Gen - Auto-generate simple tests (Py/JS/TS) | boring_test_gen(file_path="utils.py") |
📝 boring_review | Friendly Review - Constructive feedback & suggestions | boring_review(file_path="app.py") |
🚀 boring_perf | Perf Tips - Identify bottlenecks | boring_perf(file_path="main.py") |
📐 boring_arch | Arch Check - Visualize module structure | boring_arch(project_path=".") |
📄 boring_doc_gen | Doc Gen - Auto-generate docstrings | boring_doc_gen(file_path="api.py") |
🔍 boring_skills_browse | Skills Discovery - Find and install MCP skills | boring_skills_browse(query="web") |
🔐 Security Scan Integration
Vibe Coder Pro includes built-in Token detection for:
- Python: PyPI, AWS, GCP, Azure, etc.
- JS/Node.js: NPM, Vercel, Supabase, Firebase, Stripe.
- General: GitHub, GitLab, Slack, SendGrid (20+ types).
# Health check triggers security scan automatically
result = boring_vibe_check(project_path=".", max_files=100)
print(result["security_issues"])
🧠 External Intelligence
Boring integrates the most powerful external MCP tools by default, turning the Agent into a super engineer.
| Tool | Function | How to Use |
|---|---|---|
| Context7 | 📚 Real-time Docs Query latest library usage, solving stale training data issues. | context7_query_docs |
| Sequential Thinking | 🤔 Deep Thinking Force Agent into a full chain of thought from analysis to verification before coding. | sequentialthinking |
| Critical Thinking | 🧐 Critical Thinking Self-reflection and blind spot detection for high-quality Code Review. | boring-route "think deeper" |
| Boring Monitor | 🖥️ TUI Dashboard Real-time terminal view of status, logs (v10.23+). | boring-monitor / python -m boring.monitor |
| Boring Dashboard | 🎨 GUI Dashboard Comprehensive web view with Brain Explorer. | boring-dashboard / python -m boring dashboard / python -m boring.monitor --web |
🚀 Performance (v10.21.0)
- Thread-local SQLite: Zero-overhead DB connections.
- WAL Mode: 50% faster concurrent reads.
- Smart Caching: 30s query cache & Pattern cache for instant RAG.
🛡️ Shadow Mode
Shadow mode protects you from destructive AI operations:
DISABLED ⚠️ No protection (Container only)
ENABLED 🛡️ Auto-approve safe, Block risky (Default)
STRICT 🔒 Approve all writes (Production)
boring_shadow_mode(action="set_level", level="STRICT")
🔧 Troubleshooting & Environment
Common Issues
1. "Command not found" or Wrong Python Version
If running boring commands fails or uses the wrong Python environment (e.g., system Python instead of venv), use python -m:
# ✅ Recommended usage for reliability
python -m boring --help
python -m boring hooks install
2. "tree-sitter-languages not installed" Warning This means the advanced code parser is missing. RAG features will be limited to keyword search only.
Fix:
pip install tree-sitter-languages
# Or update all dependencies
pip install "boring-aicoding[all]"
🎯 Future Vision
Note: The following features require server support (not yet implemented)
- 🌐 Boring Cloud: Cloud collaboration and team sharing
- 🤝 Team Workflows: Multi-person workflow synchronization
- 🔐 Enterprise SSO: Enterprise-grade identity authentication
🙏 Acknowledgments
- Google Gemini - AI Engine
- Anthropic Claude - MCP Protocol
- Smithery - Deployment Platform
📄 License
MIT License - Open source and free to use