# Rabbitai

> Open-source AI code reviewer that auto-reviews GitHub PRs LangGraph agents, knowledge graph blast-radius detection, mem0 persistent memory Zero cost, self-hostable.

- **Type:** MCP server
- **Install:** `agentstack add mcp-nikhilsaiankilla-rabbitai`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [nikhilsaiankilla](https://agentstack.voostack.com/s/nikhilsaiankilla)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [nikhilsaiankilla](https://github.com/nikhilsaiankilla)
- **Source:** https://github.com/nikhilsaiankilla/rabbitai
- **Website:** https://rabbitai.nikhilsai.in/

## Install

```sh
agentstack add mcp-nikhilsaiankilla-rabbitai
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

RabbitAI — AI Code Reviewer

  Open-source AI code reviewer that auto-reviews GitHub PRs with zero cost and full self-hosting.

  
  
  
  
  
  

---

## What is RabbitAI?

RabbitAI is an open-source AI code reviewer. Drop one workflow file into any repo and it reviews every PR automatically catching bugs, security issues, and performance problems — and posts a structured comment directly on the PR.

Unlike other code reviewers, RabbitAI:

- Builds a **knowledge graph** of your codebase to detect blast radius of changes
- Uses **mem0 persistent memory** to get smarter with every PR it reviews
- Supports **Gemini and OpenAI** for both LLM and embeddings fully config-driven
- Supports **ChromaDB, Pinecone, and Qdrant** as vector stores
- Runs as a **GitHub Action**, **MCP server** inside Claude/Cursor, or **local CLI**
- Runs **completely free** using Gemini free tier + local ChromaDB

---

## Demo

  

## How It Works

```
PR opened
→ Fetch diff + metadata via GitHub API
→ Build NetworkX file dependency graph (blast radius detection)
→ Classify change type (bug fix / feature / refactor / security)
→ Chunk diff → embed → store in vector DB
→ Load repo memory from mem0 (past learnings)
→ Retrieve relevant chunks via semantic search
→ LLM reviews with full context + memory + graph insights
→ Post structured comment on PR
→ Save new learnings to mem0
```

---

## Quick Start

### Option 1 — GitHub Action (recommended)

Add `.github/workflows/review.yml` to your repo:

```yaml
name: RabbitAI Code Review

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  review:
    runs-on: ubuntu-latest

    permissions:
      pull-requests: write
      contents: read

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install RabbitAI
        run: pip install rabbitai-reviewer

      - name: Run RabbitAI
        env:
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PINECONE_API_KEY: ${{ secrets.PINECONE_API_KEY }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          GITHUB_REPOSITORY: ${{ github.repository }}
          PR_NUMBER: ${{ github.event.pull_request.number }}
          VECTOR_STORE_PROVIDER: ${{ vars.VECTOR_STORE_PROVIDER }}
          EMBEDDING_PROVIDER: ${{ vars.EMBEDDING_PROVIDER }}
          EMBEDDING_MODEL: ${{ vars.EMBEDDING_MODEL }}
          LLM_PROVIDER: ${{ vars.LLM_PROVIDER }}
          LLM_MODEL: ${{ vars.LLM_MODEL }}
          REVIEW_LANGUAGE: ${{ vars.REVIEW_LANGUAGE }}
        run: |
          python -c "
          import os
          from rabbitai.agent import run
          result = run(os.environ['GITHUB_REPOSITORY'], int(os.environ['PR_NUMBER']))
          print(result.comment_url if result.posted else result.reason)
          "
```

Add `GEMINI_API_KEY` to your repo secrets get one free at [aistudio.google.com](https://aistudio.google.com).

`GITHUB_TOKEN` is injected automatically. Open a PR done.

---

### Option 2 — Local CLI

```bash
git clone https://github.com/nikhilsaiankilla/rabbitai
cd rabbitai
pip install rabbitai-reviewer
cp config.example.yaml config.yaml
# fill in your config.yaml
```

```python
# test.py
from rabbitai.agent import run

result = run(repo_name="your-username/your-repo", pr_number=1)
print(result)
```

```bash
python test.py
```

---

## Stack

| Layer            | Default                     | Alternatives           |
| ---------------- | --------------------------- | ---------------------- |
| LLM              | Gemini 2.0 Flash (free)     | GPT-4.1-mini           |
| Embeddings       | Gemini embedding-001 (free) | text-embedding-3-small |
| Vector store     | ChromaDB (local, free)      | Pinecone, Qdrant       |
| Memory           | mem0 (local, free)          | —                      |
| Dependency graph | NetworkX (free)             | —                      |
| Workflow         | LangGraph (free)            | —                      |
| **Total**        |                             | **$0/month**           |

---

## Configuration

Copy `config.example.yaml` to `config.yaml` and fill in your values.

```yaml
github_token: "" # local dev only Actions injects GITHUB_TOKEN automatically
gemini_api_key: "" # free at aistudio.google.com

embedding:
  provider: "gemini" # gemini | openai
  model: "" # leave empty for provider default
  api_key: "" # openai only

llm:
  provider: "gemini" # gemini | openai
  model: "" # leave empty for provider default
  api_key: "" # openai only

vector_store:
  provider: "chromadb" # chromadb | pinecone | qdrant
  path: "./chroma_db" # for chromadb only
  collection: "pr-chunks"

memory:
  enabled: true
  repo_context: |
    Describe your repo so RabbitAI understands it from day one.

review:
  language: "typescript"
  focus:
    - bugs
    - security
    - performance
  min_risk_score: 0 # 0 = always post
  post_score: true
```

All values can be overridden with environment variables. See the [full docs](https://rabbitai.nikhilsai.in/docs) for provider setup, dimension reference, and all config options.

---

## Project Structure

```
rabbitai/
├── .github/
│   └── workflows/
│       ├── review.yml        ← self-review on every PR
│       └── publish.yml       ← auto publish to PyPI on merge to main
├── rabbitai/
│   ├── nodes/
│   │   ├── fetcher.py        ← fetch PR diff + metadata
│   │   ├── graph_builder.py  ← NetworkX dependency graph + blast radius
│   │   ├── classifier.py     ← change type detection
│   │   ├── embedder.py       ← embeddings + vector DB storage
│   │   ├── retriever.py      ← semantic search over stored chunks
│   │   ├── reviewer.py       ← LLM review generation
│   │   └── poster.py         ← GitHub PR comment poster
│   ├── memory/
│   │   └── repo_memory.py    ← mem0 persistent memory
│   ├── mcp/
│   │   └── server.py         ← MCP server for Claude/Cursor
│   ├── utils/
│   │   ├── config.py         ← config loader + env var overrides
│   │   └── prompts.py        ← review prompt templates
│   └── agent.py              ← LangGraph 9-node workflow entry point
├── config.example.yaml
├── pyproject.toml
└── requirements.txt
```

---

## Roadmap

- [x] 9-node LangGraph workflow
- [x] NetworkX knowledge graph + blast radius detection
- [x] ChromaDB, Pinecone, and Qdrant support
- [x] Gemini and OpenAI for LLM and embeddings
- [x] mem0 persistent memory
- [x] MCP server for Claude/Cursor
- [x] Published to PyPI — `pip install rabbitai-reviewer`
- [x] Auto publish to PyPI on merge to main
- [ ] GitLab and Bitbucket support
- [ ] Web dashboard for review history
- [ ] Slack and Discord notifications
- [ ] Fine-tuned prompts per language

---

## Contributing

PRs welcome. RabbitAI reviews its own PRs.

1. Fork the repo
2. Create your branch `git checkout -b feat/your-feature`
3. Commit `git commit -m 'feat: your feature'`
4. Push and open a PR

---

## License

MIT use it, fork it, self-host it, build on it.

---

  Built by Nikhil Sai · @itzznikhilsai
  
  If this helped you, star the repo ⭐ and share it on X.

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [nikhilsaiankilla](https://github.com/nikhilsaiankilla)
- **Source:** [nikhilsaiankilla/rabbitai](https://github.com/nikhilsaiankilla/rabbitai)
- **License:** MIT
- **Homepage:** https://rabbitai.nikhilsai.in/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-nikhilsaiankilla-rabbitai
- Seller: https://agentstack.voostack.com/s/nikhilsaiankilla
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
