trackmcp
Back to directory
anrgct

autodev-codebase

View on GitHub

Run the embedding codebase as a local MCP service to index code in your folder. Supports tools like Claude Code and Gemini CLI.

85 stars TypeScriptAI & Machine Learning Updated Oct 13, 2025

Documentation

@autodev/codebase

npm version
GitHub stars
License: MIT

A vector embedding-based code semantic search tool with MCP server and multi-model integration. Can be used as a pure CLI tool. Supports Ollama for fully local embedding and reranking, enabling complete offline operation and privacy protection for your code repository.

sh
# Semantic code search - Find code by meaning, not just keywords
โ•ญโ”€ ~/workspace/autodev-codebase 
โ•ฐโ”€โฏ codebase search "user manage" --demo
Found 20 results in 5 files for: "user manage"

==================================================
File: "hello.js"
==================================================
 (L7-20)
class UserManager {
  constructor() {
    this.users = [];
  }

  addUser(user) {
    this.users.push(user);
    console.log('User added:', user.name);
  }

  getUsers() {
    return this.users;
  }
}
โ€ฆโ€ฆ

# Call graph analysis - Trace function call relationships and execution paths
โ•ญโ”€ ~/workspace/autodev-codebase 
โ•ฐโ”€โฏ codebase call --demo --query="app,addUser"
Connections between app, addUser:

Found 2 matching node(s):
  - demo/app:L1-29
  - demo/hello.UserManager.addUser:L12-15

Direct connections:
  - demo/app:L1-29 โ†’ demo/hello.UserManager.addUser:L12-15

Chains found:
  - demo/app:L1-29 โ†’ demo/hello.UserManager.addUser:L12-15

# Code outline with AI summaries - Understand code structure at a glance
โ•ญโ”€ ~/workspace/autodev-codebase 
โ•ฐโ”€โฏ codebase outline 'hello.js' --demo --summarize
# hello.js (23 lines)
โ””โ”€ Defines a greeting function that logs a personalized hello message and returns a welcome string. Implements a UserManager class managing an array of users with methods to add users and retrieve the current user list. Exports both components for external use.

   2--5 | function greetUser
   โ””โ”€ Implements user greeting logic by logging a personalized hello message and returning a welcome message

   7--20 | class UserManager
   โ””โ”€ Manages user data with methods to add users to a list and retrieve all stored users

   12--15 | method addUser
   โ””โ”€ Adds a user to the users array and logs a confirmation message with the user's name.

๐Ÿš€ Features

  • ๐Ÿ” Semantic Code Search: Vector-based search using advanced embedding models
  • ๐Ÿ”— Call Graph Analysis: Trace function call relationships and execution paths
  • ๐ŸŒ MCP Server: HTTP-based MCP server with SSE and stdio adapters
  • ๐Ÿ’ป Pure CLI Tool: Standalone command-line interface without GUI dependencies
  • โš™๏ธ Layered Configuration: CLI, project, and global config management
  • ๐ŸŽฏ Advanced Path Filtering: Glob patterns with brace expansion and exclusions
  • ๐ŸŒฒ Tree-sitter Parsing: Support for 40+ programming languages
  • ๐Ÿ’พ Qdrant Integration: High-performance vector database
  • ๐Ÿ”„ Multiple Providers: OpenAI, Ollama, Jina, Gemini, Mistral, OpenRouter, Vercel
  • ๐Ÿ“Š Real-time Watching: Automatic index updates
  • โšก Batch Processing: Efficient parallel processing
  • ๐Ÿ“ Code Outline Extraction: Generate structured code outlines with AI summaries
  • ๐Ÿ’จ Dependency Analysis Cache: Intelligent caching for 10-50x faster re-analysis

๐Ÿ“ฆ Installation

1. Dependencies

bash
brew install ollama ripgrep
ollama serve
ollama pull nomic-embed-text

2. Qdrant

bash
docker run -d -p 6333:6333 -p 6334:6334 --name qdrant qdrant/qdrant

3. Install

bash
npm install -g @autodev/codebase
codebase config --set embedderProvider=ollama,embedderModelId=nomic-embed-text

๐Ÿ› ๏ธ Quick Start

bash
# Demo mode (recommended for first-time)
# Creates a demo directory in current working directory for testing

# Index & search
codebase index --demo
codebase search "user greet" --demo

# Call graph analysis
codebase call --demo --query="app,addUser"

# MCP server
codebase index --serve --demo

๐Ÿ“‹ Commands

๐Ÿ“ Code Outlines

bash
# Extract code structure (functions, classes, methods)
codebase outline "src/**/*.ts"

# Generate code structure with AI summaries
codebase outline "src/**/*.ts" --summarize

# View only file-level summaries
codebase outline "src/**/*.ts" --summarize --title

# Clear summary cache
codebase outline --clear-summarize-cache

๐Ÿ”— Call Graph Analysis

bash
# ๐Ÿ“Š Statistics Overview (no --query)
codebase call                           # Show statistics overview
codebase call --json                    # JSON format
codebase call src/commands              # Analyze specific directory

# ๐Ÿ” Function Query (with --query)
codebase call --query="getUser"         # Single function call tree (default depth: 3)
codebase call --query="main" --depth=5  # Custom depth
codebase call --query="getUser,validateUser"  # Multi-function connections (default depth: 10)

# ๐ŸŽจ Visualization
codebase call --viz graph.json          # Export Cytoscape.js format
codebase call --open                    # Open interactive viewer
codebase call --viz graph.json --open   # Export and open

# Specify workspace (works for both modes)
codebase call --path=/my/project --query="main"

Query Patterns:

  • Exact match: `--query="functionName"` or `--query="*ClassName.methodName"`
  • Wildcards: `*` (any characters), `?` (single character)
    • Examples: `--query="get*"`, `--query="*User*"`, `--query="*.*.get*"`
  • Single function: `--query="main"` - Shows call tree (upward + downward)
    • Default depth: 3 (avoids excessive output)
  • Multiple functions: `--query="main,helper"` - Analyzes connection paths between functions
    • Default depth: 10 (deeper search needed for path finding)

Supported Languages:

  • TypeScript/JavaScript (.ts, .tsx, .js, .jsx)
  • Python (.py)
  • Java (.java)
  • C/C++ (.c, .h, .cpp, .cc, .cxx, .hpp, .hxx, .c++)
  • C# (.cs)
  • Rust (.rs)
  • Go (.go)
bash
# Index the codebase
codebase index --path=/my/project --force

# Search with filters
codebase search "error handling" --path-filters="src/**/*.ts"

# Search with custom limit and minimum score
codebase search "authentication" --limit=20 --min-score=0.7
codebase search "API" -l 30 -S 0.5

# Search in JSON format
codebase search "authentication" --json

# Clear index data
codebase index --clear-cache --path=/my/project

๐ŸŒ MCP Server

bash
# HTTP mode (recommended)
codebase index --serve --port=3001 --path=/my/project

# Stdio adapter
codebase stdio --server-url=http://localhost:3001/mcp

โš™๏ธ Configuration

bash
# View config
codebase config --get
codebase config --get embedderProvider --json

# Set config
codebase config --set embedderProvider=ollama,embedderModelId=nomic-embed-text
codebase config --set --global qdrantUrl=http://localhost:6333

๐Ÿš€ Advanced Features

๐Ÿ” LLM-Powered Search Reranking

Enable LLM reranking to dramatically improve search relevance:

bash
# Enable reranking with Ollama (recommended)
codebase config --set rerankerEnabled=true,rerankerProvider=ollama,rerankerOllamaModelId=qwen3-vl:4b-instruct

# Or use OpenAI-compatible providers
codebase config --set rerankerEnabled=true,rerankerProvider=openai-compatible,rerankerOpenAiCompatibleModelId=deepseek-chat

# Search with automatic reranking
codebase search "user authentication"  # Results are automatically reranked by LLM

Benefits:

  • ๐ŸŽฏ Higher precision: LLM understands semantic relevance beyond vector similarity
  • ๐Ÿ“Š Smart scoring: Results are reranked on a 0-10 scale based on query relevance
  • โšก Batch processing: Efficiently handles large result sets with configurable batch sizes
  • ๐ŸŽ›๏ธ Threshold control: Filter results with `rerankerMinScore` to keep only high-quality matches

Path Filtering & Export

bash
# Path filtering with brace expansion and exclusions
codebase search "API" --path-filters="src/**/*.ts,lib/**/*.js"
codebase search "utils" --path-filters="{src,test}/**/*.ts"

# Export results in JSON format for scripts
codebase search "auth" --json

Path Filtering & Export

bash
# Path filtering with brace expansion and exclusions
codebase search "API" --path-filters="src/**/*.ts,lib/**/*.js"
codebase search "utils" --path-filters="{src,test}/**/*.ts"

# Export results in JSON format for scripts
codebase search "auth" --json

โš™๏ธ Configuration

Config Layers (Priority Order)

1. CLI Arguments - Runtime parameters (`--path`, `--config`, `--log-level`, `--force`, etc.)

2. Project Config - `./autodev-config.json` (or custom path via `--config`)

3. Global Config - `~/.autodev-cache/autodev-config.json`

4. Built-in Defaults - Fallback values

Note: CLI arguments provide runtime override for paths, logging, and operational behavior. For persistent configuration (embedderProvider, API keys, search parameters), use `config --set` to save to config files.

Common Config Examples

Ollama:

json
{
  "embedderProvider": "ollama",
  "embedderModelId": "nomic-embed-text",
  "qdrantUrl": "http://localhost:6333"
}

OpenAI:

json
{
  "embedderProvider": "openai",
  "embedderModelId": "text-embedding-3-small",
  "embedderOpenAiApiKey": "sk-your-key",
  "qdrantUrl": "http://localhost:6333"
}

OpenAI-Compatible:

json
{
  "embedderProvider": "openai-compatible",
  "embedderModelId": "text-embedding-3-small",
  "embedderOpenAiCompatibleApiKey": "sk-your-key",
  "embedderOpenAiCompatibleBaseUrl": "https://api.openai.com/v1"
}

Key Configuration Options

CategoryOptionsDescription
Embedding`embedderProvider`, `embedderModelId`, `embedderModelDimension`Provider and model settings
API Keys`embedderOpenAiApiKey`, `embedderOpenAiCompatibleApiKey`Authentication
Vector Store`qdrantUrl`, `qdrantApiKey`Qdrant connection
Search`vectorSearchMinScore`, `vectorSearchMaxResults`Search behavior
Reranker`rerankerEnabled`, `rerankerProvider`Result reranking
Summarizer`summarizerProvider`, `summarizerLanguage`, `summarizerBatchSize`AI summary generation

Key CLI Arguments:

  • `index` - Index the codebase
  • `search ` - Search the codebase (required positional argument)
  • `outline ` - Extract code outlines (supports glob patterns)
  • `call` - Analyze function call relationships and dependency graphs
  • `stdio` - Start stdio adapter for MCP
  • `config` - Manage configuration (use with --get or --set)
  • `--serve` - Start MCP HTTP server (use with `index` command)
  • `--summarize` - Generate AI summaries for code outlines
  • `--dry-run` - Preview operations before execution
  • `--title` - Show only file-level summaries
  • `--clear-summarize-cache` - Clear all summary caches
  • `--path`, `--demo`, `--force` - Common options
  • `--limit` / `-l ` - Maximum number of search results (default: from config, max 50)
  • `--min-score` / `-S ` - Minimum similarity score for search results (0-1, default: from config)
  • `--query ` - Query patterns for call graph analysis (comma-separated)
  • `--viz ` - Export full dependency data for visualization (cannot use with --query)
  • `--open` - Open interactive graph viewer
  • `--depth ` - Set analysis depth for call graphs
  • `--help` - Show all available options

Configuration Commands:

bash
# View config
codebase config --get
codebase config --get --json

# Set config (saves to file)
codebase config --set embedderProvider=ollama,embedderModelId=nomic-embed-text
codebase config --set --global embedderProvider=openai,embedderOpenAiApiKey=sk-xxx

# Use custom config file
codebase --config=/path/to/config.json config --get
codebase --config=/path/to/config.json config --set embedderProvider=ollama

# Runtime override (paths, logging, etc.)
codebase index --path=/my/project --log-level=info --force

For complete configuration reference, see CONFIG.md.

๐Ÿ”Œ MCP Integration

bash
codebase index --serve --port=3001

IDE Config:

json
{
  "mcpServers": {
    "codebase": {
      "url": "http://localhost:3001/mcp"
    }
  }
}

Stdio Adapter

bash
# First start the MCP server in one terminal
codebase index --serve --port=3001

# Then connect via stdio adapter in another terminal (for IDEs that require stdio)
codebase stdio --server-url=http://localhost:3001/mcp

IDE Config:

json
{
  "mcpServers": {
    "codebase": {
      "command": "codebase",
      "args": ["stdio", "--server-url=http://localhost:3001/mcp"]
    }
  }
}

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an Issue on GitHub.

๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ™ Acknowledgments

This project is a fork and derivative work based on Roo Code. We've built upon their excellent foundation to create this specialized codebase analysis tool with enhanced features and MCP server capabilities.


Frequently asked questions

What is autodev-codebase?

autodev-codebase is Run the embedding codebase as a local MCP service to index code in your folder. Supports tools like Claude Code and Gemini CLI.

How do I install autodev-codebase?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is autodev-codebase open source?

Yes โ€” it is hosted on GitHub at https://github.com/anrgct/autodev-codebase and has 85 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP