AI-powered skill & memory generator for codebases - fully local, no API keys needed
Project description
Engram CLI
AI-powered skill & memory generator for codebases. Fully local, no API keys needed.
What it does
Point Engram at any codebase and it generates structured skills (architectural knowledge) and memories (exploration sessions) using a local AI model. Zero API cost, fully air-gapped.
$ engram analyze fastapi/fastapi
╭────────────────────────────────────────╮
│ Engram v2.1.3 - Local AI Code Analyzer │
╰────────────────────────────────────────╯
Phase 1: Heuristic Analysis
Languages: Python (89%), Markdown (6%), Shell (3%)
Frameworks: FastAPI, Starlette, Pydantic, Uvicorn, pytest
Patterns: REST API, Middleware, Documentation site
Phase 2: Local Model Inference (qwen2.5-coder:7b)
[1/5] Generating architecture skill...
[2/5] Generating patterns skill...
[3/5] Generating testing skill...
[4/5] Generating project overview...
[5/5] Generating activity analysis...
╭───────── Results for fastapi/fastapi ──────────╮
│ Generated 3 skills + 2 memories │
│ Model: qwen2.5-coder:7b | Time: 42s | Cost: $0 │
╰────────────────────────────────────────────────╯
Install
# 1. Install Ollama (one-time)
brew install ollama # macOS
# or: curl -fsSL https://ollama.com/install.sh | sh # Linux
# 2. Install Engram CLI
brew install pipx && pipx install engram-cli # macOS (recommended)
# or: pip install engram-cli # Linux / virtualenv
The first run will automatically download the Qwen2.5-Coder 7B model (~4.5GB, one-time).
Usage
# Analyze current directory
engram analyze .
# Analyze a GitHub repo
engram analyze https://github.com/pallets/flask
# Shorthand
engram analyze pallets/flask
# Specify org name for output
engram analyze . --org mycompany/myrepo
# Use a larger model for better quality
engram analyze . --model qwen2.5-coder:14b
# Heuristic-only (no model, instant)
engram analyze . --skip-model
# JSON output for piping
engram analyze . --json-only | jq '.skills | length'
# List recommended models
engram models
# Browse analysis results in a local web viewer
engram browse
# Start the viewer server without opening browser
engram serve
# Check version
engram version
Output
By default, outputs both JSON and Markdown:
engram-output/myrepo/
├── engram-analysis.json # Combined analysis + generated content
├── skills/
│ ├── architecture/SKILL.md # Architecture overview
│ ├── patterns/SKILL.md # Code patterns & conventions
│ └── testing/SKILL.md # Testing strategy (if tests detected)
└── memories/
└── sessions/
├── 2026-02-13-myrepo-overview.md # Project deep dive
└── 2026-02-13-myrepo-activity.md # Recent activity analysis
Visual Browser
After analyzing repos, browse results in a local web UI with 5 tabs: Skills, Timeline (3D graph), Search, Analytics, and Sync.
# Analyze a few repos first
engram analyze .
engram analyze https://github.com/fastapi/fastapi
# Open the visual browser (auto-opens in your default browser)
engram browse
# Or start the server without opening browser
engram serve
# Then open http://localhost:8420
The viewer aggregates all repos in engram-output/ into a single dashboard. Fully air-gapped - no network requests except for loading the 3D graph library.
How it works
Layer 1: Heuristic Analysis (instant, no model)
- Walks the file tree, counts files/extensions
- Parses
package.json,Cargo.toml,go.mod,pyproject.tomlfor dependencies - Detects frameworks (React, FastAPI, Tokio, etc.) from dependency lists
- Identifies test infrastructure, CI/CD, Docker, K8s configs
- Extracts git metadata (commits, contributors, dates)
- Detects architectural patterns from directory structure
Layer 2: Local Model Inference (~40s per repo)
- Feeds heuristic context into structured prompts
- Qwen2.5-Coder 7B generates natural language skills and memories
- Produces architecture overviews, pattern analysis, testing guides
- Session memories document the exploration findings
Models
| Model | Size | RAM | Quality | Speed |
|---|---|---|---|---|
qwen2.5-coder:7b (default) |
4.5GB | 8GB | Good | ~30 tok/s |
qwen2.5-coder:14b |
8.5GB | 16GB | Very Good | ~18 tok/s |
qwen2.5-coder:32b |
18GB | 24GB | Excellent | ~10 tok/s |
deepseek-coder-v2:16b |
9GB | 16GB | Very Good | ~18 tok/s |
Development
git clone https://github.com/engram-hq/engram-cli
cd engram-cli
python -m venv .venv && source .venv/bin/activate
pip install ".[dev]"
pytest tests/ -v
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file engram_cli-2.1.3.tar.gz.
File metadata
- Download URL: engram_cli-2.1.3.tar.gz
- Upload date:
- Size: 43.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40ab4603bfdd4b1f78294ee0f4237f346186a7e3e8f179a6ac62d1f004b1cfb1
|
|
| MD5 |
0ebb0f2135907c2157117226a07591d9
|
|
| BLAKE2b-256 |
1ec706937aa9a485970dc1397ee9e5752225ac53834410bf8f57011e3eddfa94
|
File details
Details for the file engram_cli-2.1.3-py3-none-any.whl.
File metadata
- Download URL: engram_cli-2.1.3-py3-none-any.whl
- Upload date:
- Size: 38.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4496ce55250cc08137e4429360ecdc97772243f5dc288ead8cbd182097fac607
|
|
| MD5 |
15567187370d29fb9f380bd03d02d003
|
|
| BLAKE2b-256 |
997e8e6c565e1d2cdc3e945368934734b413ee2f0193181bd619d6b5e0451b4e
|