Skip to main content

CodeEvolve

Evaluate how a codebase evolves from git history — taxonomy & phylogeny, Lehman/ecological signals, technical debt, ranked failure points, a provenance ledger for deliberation, a drafted repository report, and an evidence-linked refactor plan.

GitHub URL | local path
    → taxonomy + clade allocation
    → genetics (lineage, gene flow) + ecology (stages, Lehman proxies)
    → metrics + debt + weaknesses
    → provenance ledger (claim → evidence → falsifier)
    → repo report + refactor plan
    → narrative (heuristic | HF Qwen | cloud)

Install

pip install codeevolve

From source:

git clone https://github.com/ehallford11714/codeevolve.git
cd codeevolve
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
# optional local Qwen:
# pip install -e ".[hf]"

For agents (MCP)

Start here: AGENTS.md · details: docs/MCP.md · objective agent: docs/AGENT.md

pip install codeevolve
# or from source:
pip install -e .
# or from GitHub:
pip install "git+https://github.com/ehallford11714/codeevolve.git"
python -m codeevolve.mcp            # stdio MCP server (also: codeevolve-mcp)
Connect Path
Cursor MCP config .cursor/mcp.json
Agent skill .cursor/skills/codeevolve/SKILL.md
Tool loop analyze_repoprovenance_packprovenance_expand_frame / provenance_path_pack
Improve loop evolve_toward_objective (or python -m codeevolve agent --objective …)

Agents should deliberate from frames (claim → evidence → falsifier), not invent history.

# Native coding agent: propose improvements scored by CodeEvolve
python -m codeevolve --repo . agent --objective reduce_debt --max-rounds 2
python -m codeevolve --repo . agent --objective follow_refactor --apply --verify-cmd "pytest -q"

Quick start

# Default: SLM-guided taxonomy (tier=slm)
python -m codeevolve --repo path\to\repo analyze --out report.json --report-out repo_report.md --refactor-out refactor_plan.md

# Swap up for sharper evolutionary studies
python -m codeevolve --model-tier large --repo path\to\repo analyze
python -m codeevolve tiers

# GitHub URL or owner/repo (cloned under ~/.codeevolve/repos)
python -m codeevolve --repo https://github.com/org/repo analyze --max-commits 300

python -m codeevolve --repo org/repo taxonomy
python -m codeevolve --repo org/repo fatigue
python -m codeevolve --repo org/repo risk
python -m codeevolve --repo org/repo report --md-out repo_report.md
python -m codeevolve --repo org/repo refactor --md-out refactor_plan.md
python -m codeevolve hardware
from codeevolve import CodeEvolve

report = CodeEvolve("https://github.com/org/repo").analyze()
print(report.ecology.global_stage, report.debt.score)
print(report.risk.failure_points[0].title)
print(report.refactor_plan.markdown)

LLM backends (optional)

python -m codeevolve --repo . analyze --llm auto
# or: --llm hf-qwen | openai | anthropic | heuristic

$env:CODEEVOLVE_LLM_API_KEY = "..."          # OpenAI-compatible
$env:OPENAI_API_KEY = "..."
$env:ANTHROPIC_API_KEY = "..."
$env:CODEEVOLVE_HF_MODEL = "Qwen/Qwen2.5-0.5B-Instruct"
$env:CODEEVOLVE_SKIP_HF = "1"                # force no local download

hardware / --llm auto picks local Qwen vs cloud vs heuristic from RAM/VRAM/disk (iQueue-style ladder).

What it tracks

Signal Meaning
Taxonomy / clades Keyword type hierarchy + co-change clusters; every delta allocated to a clade
Build hierarchy Deep nested “what was built” tree + ecological trend narratives
Genetics File lineage, fitness, gene flow, HGT suspects
Ecology Global + per-clade stages; Lehman law proxies
Revert / stability / deps / momentum Core change-rate metrics
Debt Deprecations, TODOs, historical architecture smells
Weaknesses Ranked failure points (hotspot blast, reverts, bus factor, test gap, …)
Repo report Drafted markdown brief of evolutionary state
Refactor plan Stabilize → contain → pay down → evolve (evidence-linked)
Provenance Ledger + dynamics trajectory (basins, impulses, selection, inter-report diffs)

Docs

0.21 — PR review pack, frame-seeded steps, session delta memory, AST/CST symbol fence, blast-radius preview, coverage-gated tests, agent eval scored on objective delta (included in evaluate --suite all). 0.20 — patch engine, worktree, tool-calling, budgets/HITL. 0.19 — cognitive stack. 0.18 — objective agent + multi-provider LLMs.

python -m codeevolve --repo . provenance --pack --frame frame:basin
python -m codeevolve provenance --schema-out schemas
python -m codeevolve evaluate --suite dynamics
python examples/demo_dynamics.py
python -m codeevolve --repo . analyze --previous report.prev.json --out report.json
# Diff + dashboard + PR comment + CI gate
python -m codeevolve --repo owner/repo analyze --out report.json --previous report.prev.json --dashboard-out dash.html
python -m codeevolve --repo . coupling
python -m codeevolve --repo . clones
python -m codeevolve --repo . dependencies
python -m codeevolve --repo . offboarding
python -m codeevolve --repo . word2vec
python -m codeevolve --repo . semantic-taxonomy
# pip install -e ".[semantic]"  # MiniLM + gensim + chromadb
python -m codeevolve hardware --ensure-embed
python -m codeevolve evaluate --suite synthetic --md-out eval.md
python -m codeevolve evaluate --suite public --md-out public.md   # clones OSS tags
python -m codeevolve comment --report report.json --out pr.md
python -m codeevolve ci --report report.json --previous report.prev.json

License

MIT

Download files

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

Source Distribution

codeevolve-0.21.0.tar.gz (254.1 kB view details)

Uploaded Source

Built Distribution

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

codeevolve-0.21.0-py3-none-any.whl (284.4 kB view details)

Uploaded Python 3

File details

Details for the file codeevolve-0.21.0.tar.gz.

File metadata

  • Download URL: codeevolve-0.21.0.tar.gz
  • Upload date:
  • Size: 254.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.3

File hashes

Hashes for codeevolve-0.21.0.tar.gz
Algorithm Hash digest
SHA256 c93c40261eefbf4c7671c856666cc9b736a04db3ba48270974942ce4aa5b7eb2
MD5 f8cb75c10b2fabdb3c7ce70202273571
BLAKE2b-256 a46c5fe7dd665784bf952bf3b3885ec7074713ce4aeea8305b0509ed63639745

See more details on using hashes here.

File details

Details for the file codeevolve-0.21.0-py3-none-any.whl.

File metadata

  • Download URL: codeevolve-0.21.0-py3-none-any.whl
  • Upload date:
  • Size: 284.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.3

File hashes

Hashes for codeevolve-0.21.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d95b5b686503b03517bf40ad899e0194f16c9e4a104f5531b024ebb01f4cd502
MD5 48ce680f20aa67ad3158903710b7929b
BLAKE2b-256 17695f8ce36f1fb836e13d72c356005d3e3d9acb331a7cf4ff7f5f7b8da61f06

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 Sentry Error logging StatusPage Status page