Skip to main content

Autonomous codebase understanding agent — clone a repo, get an architecture report.

Project description

CodeNarrator

Autonomous codebase understanding agent.

Give it a Git URL and it produces an interactive HTML dependency graph plus a natural-language architecture summary of the codebase. Everything runs locally via Ollama — no API keys, no cloud calls.

Prerequisites

  • Python 3.10+
  • Ollama installed and running
  • A model pulled: ollama pull qwen2.5-coder:7b

Installation

pip install codenarrator-ai

Usage

from codenarrator import analyze

result = analyze("https://github.com/user/repo")

result.show()                  # opens the HTML report in your browser
result.to_html("report.html")  # save the HTML to a file
result.to_json("graph.json")   # export the dependency graph as JSON

Deeper exploration (30 steps instead of the default 20):

result = analyze("https://github.com/user/repo", depth="deep")

Private repositories:

result = analyze(
    "https://github.com/user/private-repo",
    api_key="your-github-token",
)

Result object

Property / Method Description
result.show() Open the HTML report in your browser
result.to_html(path) Save the HTML report to a file
result.to_json(path) Export dependency graph as JSON
result.dependency_graph List of internal edges
result.explored_files Files the agent explored
result.architecture_summary AI-generated architecture summary

Configuration

Environment variables:

Variable Purpose Default
CODENARRATOR_DATA_DIR Where clones, cache, and reports go ~/codenarrator/
OLLAMA_HOST Ollama server URL http://localhost:11434
OLLAMA_MODEL Model to use qwen2.5-coder:7b

Output

Reports and clones live under ~/codenarrator/ by default:

~/codenarrator/
├── repos/      ← cloned repositories
├── cache/      ← analysis cache (keyed by repo + git HEAD)
└── reports/    ← generated HTML reports

Supported languages

Language Full dependency graph Import extraction
Python
TypeScript
JavaScript
Java
Go
Rust
C / C++

How it works

Two layers:

Deterministic layer — file scanning, import extraction, internal-edge resolution, dependency graph computation. Pure Python, no LLM involved. Always produces a complete graph from static analysis alone.

Agentic layer — a local LLM (Qwen2.5-Coder 7B by default) explores the codebase via five tool calls:

  • read_file — inspect a source file
  • follow_import — jump to a file imported by something already read
  • search_for_pattern — regex search across the repo
  • mark_architecture_insight — record a finding
  • stop_analysis — finish the run

The model produces a natural-language architecture summary alongside the deterministic graph. If the LLM times out or returns junk, the report still renders from the deterministic layer.

Roadmap

  • Pluggable LLM backends (OpenAI, Anthropic, any OpenAI-compatible API)
  • CLI: codenarrator analyze <url>
  • Full dependency graph support for Java, Go, Rust, C/C++
  • Incremental analysis — only re-explore files changed since last run

Local development

For contributors only. End users should use pip install codenarrator-ai above.

git clone https://github.com/sharwariakre/CodeNarrator
cd CodeNarrator
pip install -e .  # for local development

# Start Ollama (separate terminal)
ollama serve
ollama pull qwen2.5-coder:7b

Optional web UI (FastAPI backend + React frontend):

# Terminal 1
cd backend && uvicorn app.main:app --reload

# Terminal 2
cd frontend && npm install && npm run dev

Run the test suite:

cd backend && python -m pytest tests/

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

codenarrator_ai-0.1.3.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

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

codenarrator_ai-0.1.3-py3-none-any.whl (46.9 kB view details)

Uploaded Python 3

File details

Details for the file codenarrator_ai-0.1.3.tar.gz.

File metadata

  • Download URL: codenarrator_ai-0.1.3.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for codenarrator_ai-0.1.3.tar.gz
Algorithm Hash digest
SHA256 3d7e65167eb4cfa706d35fe1ebb01c54168921636e9fb3754bfc21ca63d2b6af
MD5 487e1d2db5a485bb95d50b496c2f8814
BLAKE2b-256 d4667aa6ffe52bef704591cdecdbe91a076231f6fbe7d9d699741447835b161f

See more details on using hashes here.

File details

Details for the file codenarrator_ai-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for codenarrator_ai-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7a501cf190d18dd6a2a2fc06e1cc8571e431da5263d7e915fec291578bc28104
MD5 b71754bf854977e149b1269c553228c8
BLAKE2b-256 bda141ee36b056132740101166667dbdf3ed4c85084d0de9d300d7ffa4a7d021

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