Skip to main content

Berkelium CLI

PyPI Version PyPI Downloads License MCP Compatible

Berkelium CLI is a Code Graph Management tool and Model Context Protocol (MCP) server. It uses tree-sitter to parse your codebase into a structured graph stored in SQLite, enabling high-fidelity impact analysis and surgical context retrieval for AI assistants.

Quick Start

Installation

# Install
pip install berkelium

# Run the TUI
berkelium-cli

Development Setup

git clone https://github.com/BerkeliumLabs/berkelium-cli
cd berkelium-cli
uv sync

TUI Features

The Berkelium TUI (berkelium-cli) provides a terminal interface for:

  • Build/Update Graph: Index supported languages (Python, JS/TS, Go, Java, Rust, C/C++).
  • Incremental Sync: Uses git-diff to update the graph in milliseconds.
  • Exploration: Visualize symbols and relationships directly in your terminal.

MCP Server (for AI Assistants)

Connect Berkelium to Claude, Cursor, or any MCP-compatible client to give your AI "graph-vision" over your code.

Configuration (Claude)

Add this to your settings.json:

{
  "mcpServers": {
    "berkelium": {
      "command": "berkelium-mcp",
    }
  }
}

Available Tools

  • query_search_codebase: Executes read-only Cypher queries directly against the code graph for advanced structural search.

Available Prompts

  • review_my_pr: A guided workflow that syncs the graph, identifies changes via git, and suggests targeted tests based on impact analysis.

Usage Examples (AI-Assisted Development)

Berkelium is most powerful when used through an AI assistant (like Claude or Cursor). Here are some real-world scenarios where it excels:

1. Architectural Exploration

Prompt: "I want to add a new database provider. Show me all classes that inherit from BaseProvider to see the existing pattern."

  • AI Action: Uses query_search_codebase with a Cypher query like:
    MATCH (child)-[:INHERITS]->(parent) WHERE parent.name = 'BaseProvider' RETURN child.name AS name, child.file_rel_path AS file
    

2. Tracing Complex Call Chains

Prompt: "Trace the execution flow starting from IncrementalSync.sync(). What internal methods does it reach?"

  • AI Action: Uses query_search_codebase to traverse the [:CALLS] edges.

3. Identifying Dead Code

Prompt: "Are there any functions in the utils/ directory that are never called by any other part of the project?"

  • AI Action: Uses query_search_codebase to find nodes with zero incoming [:CALLS] edges.

Architecture

  • Extractor (extractor.py): Language-agnostic extraction using tree-sitter.
  • Store (store.py): Persistence layer using GraphQLite on SQLite.
  • Sync (sync.py): Git-based incremental synchronization logic.
  • Retriever (retriever.py): Graph traversal algorithms for impact and context.

License

MIT License - see LICENSE.

Metadata

Release files for berkelium 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for berkelium 0.1.1
File Size Uploaded
berkelium-0.1.1.tar.gz 224.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for berkelium 0.1.1
File Interpreter ABI Platform
berkelium-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 264.0 kB

Release files / berkelium-0.1.1.tar.gz

Download URL berkelium-0.1.1.tar.gz
Size 224.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a0e10de1eaca3d14aa6a27688e44d09a3acb95b2ad619db99c4c8295b56c80e7
BLAKE2b-256 checksum
How to use checksums
8dfa59a511c04b059b24472dde3ce937f04eb7ef13e54f61d697f8f914581816
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / berkelium-0.1.1-py3-none-any.whl

Download URL berkelium-0.1.1-py3-none-any.whl
Size 39.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54f744d5455ce5e2218504122845496d3c518701771c33c1980eca78da7ea0e1
BLAKE2b-256 checksum
How to use checksums
111961db145352a985d93a83cd8b3e581dae67079645017a5b2bd9cd45c201a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page