Skip to main content

CLI-first developer intelligence tool

Project description

๐Ÿง  project-brain

Developer Intelligence CLI for understanding codebases and code evolution at a semantic level.

Python CLI License Status Tests


๐Ÿš€ What is project-brain?

project-brain is a CLI-first developer intelligence tool built for analyzing codebases, tracking Git changes at function level, generating structured exports for AI systems, and explaining code changes using optional LLM integrations.

Unlike traditional Git tooling that operates on raw line diffs, project-brain uses AST-based parsing to understand code structure and produce developer-friendly insights.

The project is designed around a local-first, privacy-friendly, and AI-optional workflow.


๐ŸŽฏ Why project-brain Exists

Modern development workflows suffer from several problems:

Git diffs are noisy

Traditional diffs show line changes, not semantic meaning.

A small refactor can generate large diffs while hiding the actual behavioral impact.


Codebases become difficult to understand

Large repositories contain:

  • deeply nested modules
  • duplicated logic
  • unclear ownership
  • hidden dependencies

Understanding them manually is slow.


AI tools require structured context

Most AI systems perform poorly when fed raw repositories.

project-brain creates:

  • structured exports
  • focused change sets
  • function-level intelligence
  • AI-friendly context

Local-first tooling matters

Many developers do not want:

  • automatic code uploads
  • cloud dependency
  • vendor lock-in

project-brain works fully offline when:

llm:
  provider: none

โœจ Features

Implemented

  • ๐Ÿ” Recursive repository scanning
  • ๐Ÿง  AST-based Python analysis
  • ๐Ÿงฉ Function extraction
  • ๐Ÿ›๏ธ Class extraction
  • ๐Ÿ”„ Git diff parsing
  • ๐Ÿ“Œ Function-level change tracking
  • ๐Ÿ“ฆ AI-friendly code export system
  • ๐Ÿค– Optional LLM explanations
  • ๐Ÿ’พ Explanation caching
  • ๐ŸŒ HTML diff reports
  • โš ๏ธ Config validation
  • ๐Ÿฉบ Environment diagnostics
  • ๐Ÿชต Persistent logging
  • ๐Ÿšซ Binary file skipping
  • ๐Ÿ›ก๏ธ Invalid Python safety handling
  • โšก Deep directory traversal

๐Ÿ—๏ธ Architecture Overview

project-brain is structured into independent modules.

CLI Layer
โ”‚
โ”œโ”€โ”€ Analyzer
โ”œโ”€โ”€ Diff Engine
โ”œโ”€โ”€ Explain Engine
โ”œโ”€โ”€ Export Engine
โ”œโ”€โ”€ Doctor / Diagnostics
โ”œโ”€โ”€ Config Validation
โ”œโ”€โ”€ Logging System
โ””โ”€โ”€ LLM Provider Layer

๐Ÿ” Analyzer

Responsible for:

  • filesystem traversal
  • AST parsing
  • metadata extraction
  • hashing files
  • extracting functions/classes

Uses Python ast module for semantic analysis.


๐Ÿ”„ Diff Engine

Responsible for:

  • Git diff parsing
  • tracking modified files
  • function-level change detection
  • comparing AST extracted function bodies

Supports:

  • added files
  • modified files
  • deleted files

๐Ÿง  Explain Engine

Responsible for:

  • generating semantic explanations
  • producing structured summaries
  • LLM provider integration
  • caching explanations
  • fallback behavior when AI disabled

๐Ÿ“ฆ Export Engine

Responsible for:

  • exporting entire repositories
  • exporting changed code only
  • generating AI-friendly code bundles
  • structured file aggregation

๐Ÿค– LLM Provider Layer

Supports:

  • OpenAI
  • Ollama
  • Gemini
  • HuggingFace

Provider abstraction includes:

  • timeout handling
  • model listing
  • response normalization
  • error handling

๐Ÿ’พ Cache System

Explanation results are cached inside:

.brain/cache/

This avoids repeated LLM calls for unchanged function diffs.


โš™๏ธ Installation


Requirements

  • Python >= 3.10

  • Git installed

  • Optional:

    • Ollama
    • OpenAI API access
    • Gemini API access
    • HuggingFace API access

Clone Repository

git clone <repo-url>
cd project-brain

Create Virtual Environment

Windows

python -m venv env
env\Scripts\activate

Linux/macOS

python3 -m venv env
source env/bin/activate

Install

pip install -e .

CLI Aliases

Both commands work:

brain
project-brain

โšก Quick Start (30 Seconds)


1. Initialize project-brain

brain project init

Creates:

.brain/
brain.yaml

2. Analyze Repository

brain project analyze .

Performs:

  • recursive scan
  • AST parsing
  • metadata generation

Stores results inside:

.brain/data.json

3. Inspect Git Changes

brain diff show

Default behavior:

HEAD~1 โ†’ HEAD

Shows:

  • modified files
  • added files
  • deleted files
  • function-level changes

4. Export AI-Friendly Context

brain export full_code

Creates:

.brain/exports/full_code.txt

๐Ÿง  Command Reference


๐Ÿ“ Project Commands


brain project init

Initialize project-brain.

Syntax

brain project init

What It Does

Creates:

  • .brain/
  • .brain/cache/
  • .brain/data.json
  • .brain/index.json
  • brain.yaml

Notes

  • Existing files are preserved
  • Safe to rerun

brain project analyze

Analyze repository structure.

Syntax

brain project analyze [path]

Arguments

Argument Default Description
path . Root directory

Internal Behavior

  • recursively traverses directories

  • skips ignored paths

  • skips binary files

  • optionally skips tests

  • extracts:

    • functions
    • classes
    • hashes
    • metadata

Output

.brain/data.json

Example

brain project analyze .

Edge Cases

  • invalid Python files are skipped safely
  • unreadable files do not crash analysis

brain project summary

Generate repository summary.

Syntax

brain project summary

What It Shows

  • total files
  • total functions
  • total classes
  • top files by function count
  • detected architecture hints

Output Modes

Configured using:

output:
  format: text

Supported:

  • text
  • json
  • markdown

brain project doctor

Validate environment setup.

Syntax

brain project doctor

Checks

  • project initialized
  • repository analyzed
  • git availability
  • config validity
  • provider setup
  • API key presence

Final Status

Status Meaning
READY All required checks passed
PARTIAL Some checks missing
NOT READY Critical setup missing

๐Ÿ”„ Diff Commands


brain diff show

Show repository changes.

Syntax

brain diff show [from_ref] [to_ref]

Default Behavior

If no refs provided:

brain diff show

Equivalent to:

brain diff show HEAD~1 HEAD

Git Reference Explanation

Ref Meaning
HEAD current commit
HEAD~1 previous commit
HEAD~5 5 commits before HEAD

Internal Workflow

project-brain:

  1. validates git refs
  2. runs git diff logic
  3. computes changed files
  4. extracts Python functions
  5. compares function bodies

Output Example

Files Changed: 2

Modified:
* src/api.py

Added:
* src/utils.py

Deleted:
* src/legacy.py

Function-Level Output

Functions Added:
* validate_user

Functions Modified:
* create_user

Edge Cases

  • non-Python files only receive file-level diff
  • invalid git refs fail safely
  • non-git repositories rejected

brain diff review

Generate semantic diff explanations.

Syntax

brain diff review [from_ref] [to_ref]

What It Does

  • computes git diff
  • extracts changed functions
  • builds prompts
  • calls LLM provider
  • caches results
  • generates reports

Outputs

.brain/reports/diff_<timestamp>.json
.brain/reports/diff_<timestamp>.html

HTML Report

Interactive HTML report includes:

  • grouped files
  • risk labels
  • semantic summaries
  • impact descriptions

LLM Disabled Mode

If:

provider: none

project-brain generates fallback heuristic summaries.


brain diff explain

Explain a file or function.

Syntax

brain diff explain <target>

File Example

brain diff explain src/api.py

Function Example

brain diff explain src/api.py:create_user

Behavior

Without LLM:

  • structural summary only

With LLM:

  • semantic explanation
  • risks
  • logic overview

๐Ÿ“ฆ Export Commands


brain export full_code

Export entire repository.

Syntax

brain export full_code

Output

.brain/exports/full_code.txt

Export Format

=== FILE: src/api.py ===
<content>

Behavior

  • recursively scans files
  • respects ignore rules
  • respects file size limits
  • optionally skips tests

brain export file

Manually export single file.

Syntax

brain export file <path>

Example

brain export file src/api.py

brain export dir

Manually export directory.

Syntax

brain export dir <path>

Example

brain export dir src/

brain export code_changes

Export changed code between refs.

Syntax

brain export code_changes <from_ref> <to_ref>

Example

brain export code_changes HEAD~3 HEAD

Output

=== FILE: src/api.py ===

--- FUNCTION: create_user (UPDATED) ---
OLD:
...

NEW:
...

๐Ÿงช LLM Commands


brain testllm test

Test provider connectivity.

Syntax

brain testllm test

What It Does

  • loads provider config
  • sends test prompt
  • validates response
  • optionally fetches model list

Disabled Mode

If:

provider: none

Output:

LLM disabled

โš™๏ธ Configuration

Configuration file:

brain.yaml

Example Configuration

version: "1.0"

llm:
  provider: none
  model: ""
  timeout_sec: 60

analysis:
  depth: fast
  include_tests: false
  ignore:
    - .brain/
    - .git/
    - node_modules/

diff:
  mode: function

export:
  full_code:
    include_tests: false
    max_file_size_kb: 200

  manual_add:
    allow_duplicates: true

  changes:
    mode: function
    include_context: true
    output_path: .brain/exports/code_changes.txt

explain:
  level: detailed
  include_risks: true

output:
  format: text

๐Ÿ”‘ API Key Setup

Secrets should NEVER be stored inside brain.yaml.


Windows CMD

setx OPENAI_API_KEY "your_key"
setx GEMINI_API_KEY "your_key"
setx HUGGINGFACE_API_KEY "your_key"

PowerShell

[Environment]::SetEnvironmentVariable("OPENAI_API_KEY","your_key","User")

Linux/macOS

export OPENAI_API_KEY="your_key"

๐Ÿ“ด Offline Mode

project-brain fully supports offline workflows.

Use:

llm:
  provider: none

Behavior:

  • no API calls
  • no cloud dependency
  • local-only analysis
  • fallback explanations enabled

๐Ÿ“„ Example Outputs


Analysis

๐Ÿ” Analyzing: .

๐Ÿ“‹ File Paths:
src/api.py
src/utils.py

โœ… Analysis complete

Diff Review

Function: create_user

Change:
Added validation layer

Impact:
Improves input integrity

Risk:
medium

๐Ÿ“ Project Structure

project-brain/
โ”‚
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ project_brain/
โ”‚       โ”œโ”€โ”€ cli.py
โ”‚       โ”œโ”€โ”€ core/
โ”‚       โ”œโ”€โ”€ llm/
โ”‚       โ”œโ”€โ”€ storage/
โ”‚       โ””โ”€โ”€ config/
โ”‚
โ”œโ”€โ”€ tests/
โ”œโ”€โ”€ brain.yaml
โ”œโ”€โ”€ pyproject.toml
โ””โ”€โ”€ README.md

๐Ÿชต Logging System

Logs stored inside:

.brain/logs.txt

Tracks:

  • warnings
  • provider failures
  • parsing errors
  • export failures
  • cache issues

Logging failures never crash the CLI.


๐Ÿ› ๏ธ Troubleshooting


โŒ Not a git repository

Initialize git:

git init

โŒ Invalid git reference

Check refs:

git log --oneline

โŒ Empty export

Possible causes:

  • ignored paths
  • file size limits
  • tests excluded

โŒ Provider failures

Check:

  • API keys
  • internet connectivity
  • provider model name

โŒ Missing API key

Verify environment variable:

echo %OPENAI_API_KEY%

๐Ÿงช Testing & QA

Current QA status:

  • 18 automated tests passing
  • export validation
  • function diff validation
  • config validation
  • edge-case handling
  • provider fallback testing

๐Ÿ”ฎ Roadmap

Near-Term

  • semantic diff intelligence
  • integration tests
  • incremental analysis
  • performance improvements
  • rename detection

Mid-Term

  • multi-language parsing
  • plugin architecture
  • dependency graphing
  • richer semantic indexing

๐Ÿ” Security & Privacy

project-brain is designed with a local-first philosophy.

Key principles:

  • no automatic code uploads
  • offline workflows supported
  • API keys via environment variables only
  • repository data stored locally

LLM usage is fully optional.


๐Ÿค Contributing

Contributions are welcome.

Recommended workflow:

git checkout -b feature/my-feature

Guidelines:

  • keep PRs focused
  • preserve CLI consistency
  • add tests for new logic
  • avoid unnecessary dependencies

๐Ÿ“œ License

MIT License


๐Ÿง  Final Positioning

project-brain is a local-first developer intelligence CLI that transforms repositories and Git diffs into structured, explainable engineering context.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

project_brain_cli-1.0.0.tar.gz (33.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

project_brain_cli-1.0.0-py3-none-any.whl (34.2 kB view details)

Uploaded Python 3

File details

Details for the file project_brain_cli-1.0.0.tar.gz.

File metadata

  • Download URL: project_brain_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 33.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for project_brain_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 eaaece428be1ba66e050e141322aba2421e6dd41ba05bdb23bc2e2f2049872d5
MD5 e7521e73b03e9171b2c5b2b4f0599d14
BLAKE2b-256 19cae751a12179546ad8920e93e45e40f6a046d19be0104a58b4bc47d5403dfc

See more details on using hashes here.

File details

Details for the file project_brain_cli-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for project_brain_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6c4e71b4a536fd522b9a9d41df687e57abb7e9e1c487cec3d01728edaf01cab
MD5 7d0f49b89ba77c55c8569b9422e4afa3
BLAKE2b-256 17283e0f36629163d7aef6fe0708b1f96077a83af73898253de11f24abb14fb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page