This release is a pre-release and may not be stable for production use.
Deterministic Structural Change Controller for AI-assisted Python development
CodeClone helps developers use AI coding agents without losing control of structural change. Before an agent edits code, it records the intended change, maps the structural blast radius, and establishes explicit edit boundaries. After the edit, it compares the real patch with the declared scope, verifies structural regressions, and leaves an auditable review receipt.
Every finding and every gate comes from deterministic repository facts — not an LLM opinion — shared across agents, human reviewers, IDEs, reports, and CI. CodeClone does not generate or rewrite source files.
Note: Features marked
2.1 alpharequire the CodeClone 2.1 prerelease. Everything else works with the current stable release.
Quick start
Requires Python 3.10 or newer.
uvx codeclone@latest . # analyze without installing
uvx codeclone@latest . --html --open-html-report
uv tool install codeclone # install as a local tool
codeclone .
Record the accepted structural baseline once, then gate future changes against it in CI:
codeclone . --update-baseline
codeclone . --ci
The baseline separates new regressions from findings that already existed, so CI fails only on what the current change introduced.
What it provides
- Structural Change Controller —
2.1 alpha: intent-first change control, blast radius, explicit edit boundaries, patch verification, and review receipts. - Baseline-aware governance — records accepted legacy debt and separates it from regressions introduced by the current change.
- One canonical report — clones, complexity, coupling, cohesion, dead code, dependency cycles, a package/module dependency map (Module Map), public API inventory, coverage joins, and a guided finding-review queue, rendered through CLI, HTML, JSON, Markdown, SARIF, and CI from one payload.
- Engineering Memory —
2.1 alpha: local, typed, evidence-linked project knowledge and reusable histories of prior controlled changes. - Agent coordination —
2.1 alpha: conflict-safe multi-agent intents, queues, recovery, and workspace hygiene.
CodeClone requires no hosted service or cloud account. Analysis state, controller state, Engineering Memory, and trajectories are stored locally.
MCP control surface and native clients
uv tool install --prerelease allow "codeclone[mcp]"
codeclone-mcp --transport stdio
The MCP server is read-only by contract: it never mutates source files, baselines, cache, or repository state. The same canonical structural facts back every client — VS Code, Cursor, Claude Code, Codex, and Claude Desktop.
Links
- Documentation: https://orenlab.github.io/codeclone/
- Getting started: https://orenlab.github.io/codeclone/getting-started/
- Structural Change Controller: https://orenlab.github.io/codeclone/concepts/controlled-change/
- Engineering Memory: https://orenlab.github.io/codeclone/concepts/engineering-memory/
- Configuration reference: https://orenlab.github.io/codeclone/reference/configuration/
- Source: https://github.com/orenlab/codeclone
- Issues: https://github.com/orenlab/codeclone/issues
License
- Code: MPL-2.0
- Documentation: MIT
See LICENSES.md for the license scope map.
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 codeclone-2.1.0a1.tar.gz.
File metadata
- Download URL: codeclone-2.1.0a1.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56eaa52deabecfdadcaaa351fc7fa647ffce133e8c5c31c98d9b029a593cd252
|
|
| MD5 |
5cb8b3bd5132cb07971439c1733c4a1d
|
|
| BLAKE2b-256 |
b19a5dc2231fa114808719527491b9e7bfd7dc79caf7f5029c91d27b5d2039e6
|
Provenance
The following attestation bundles were made for codeclone-2.1.0a1.tar.gz:
Publisher:
publish.yml on orenlab/codeclone
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codeclone-2.1.0a1.tar.gz -
Subject digest:
56eaa52deabecfdadcaaa351fc7fa647ffce133e8c5c31c98d9b029a593cd252 - Sigstore transparency entry: 2128739875
- Sigstore integration time:
-
Permalink:
orenlab/codeclone@51a59caf7ae3c41404e9df6ccff848fcf70cfe35 -
Branch / Tag:
refs/tags/v2.1.0a1 - Owner: https://github.com/orenlab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@51a59caf7ae3c41404e9df6ccff848fcf70cfe35 -
Trigger Event:
release
-
Statement type:
File details
Details for the file codeclone-2.1.0a1-py3-none-any.whl.
File metadata
- Download URL: codeclone-2.1.0a1-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a1359d681742b3f8df74ac0c48c4d0ffa8b4f311aa4ecf5a970e9e54fefd2a5
|
|
| MD5 |
2c3b456e9396163bfdcf07e0c7bae524
|
|
| BLAKE2b-256 |
4d19d6e22192cff172b21125a7adbf35ad7bb28669a63916541d040d4f1ab840
|
Provenance
The following attestation bundles were made for codeclone-2.1.0a1-py3-none-any.whl:
Publisher:
publish.yml on orenlab/codeclone
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
codeclone-2.1.0a1-py3-none-any.whl -
Subject digest:
4a1359d681742b3f8df74ac0c48c4d0ffa8b4f311aa4ecf5a970e9e54fefd2a5 - Sigstore transparency entry: 2128739941
- Sigstore integration time:
-
Permalink:
orenlab/codeclone@51a59caf7ae3c41404e9df6ccff848fcf70cfe35 -
Branch / Tag:
refs/tags/v2.1.0a1 - Owner: https://github.com/orenlab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@51a59caf7ae3c41404e9df6ccff848fcf70cfe35 -
Trigger Event:
release
-
Statement type: