Zero-config, language-agnostic CLI that turns any git repository into high-quality visual documentation.
Project description
codetwin
Zero-config, language-agnostic CLI that turns any git repository into high-quality visual documentation — useful from first
git cloneto ongoing refactoring.
Status: v2 architecture scaffold. Phase 1 of
ROADMAP.mdis underway; the binary builds and runs end-to-end but drivers currently produce emptyCodeModels. See theTODO(Phase N.x)markers in the source for concrete work items.
Install
cargo install codetwin # crates.io
uv tool install codetwin # PyPI wrapper (native binary under the hood)
npm install -g codetwin # npm wrapper
All three package managers install the same native binary. The npm/PyPI wrappers bootstrap the
binary on first run via the cargo-dist installer.
Quick start
# Zero-config run — writes docs/architecture.md with the project-overview layout.
codetwin gen
# Inspect what CodeTwin detected.
codetwin list --drivers --layouts
# Re-render on every filesystem change.
codetwin gen --watch
# Dump the intermediate representation as JSON.
codetwin gen --dump-ir > codemodel.json
# Capture / diff architectural snapshots between commits.
codetwin snapshot --ref HEAD~5
codetwin diff HEAD~5 HEAD
Global flags work on every subcommand: --verbose, --quiet, -C/--cwd, --json.
Layouts
| Name | Audience | Status |
|---|---|---|
project-overview |
Developer who just cloned the repo | Scaffolded |
architecture-map |
Architect reviewing the system | Scaffolded |
c4 |
C4-model consumers | Phase 6.a |
metrics |
Coupling / circular-dep reporting | Phase 6.b |
codetwin list --layouts prints the live registry.
Configuration (codetwin.toml)
Everything is optional. See the checked-in codetwin.toml for an annotated
starting point.
source_dirs = ["src"]
output_file = "docs/architecture.md"
layout = "project-overview"
format = "markdown" # "html" is reserved for Phase 7
exclude_patterns = ["**/target/**", "**/node_modules/**"]
# Override auto-detected drivers:
# drivers = ["rust", "python"]
[[layers]]
name = "CLI"
patterns = ["src/cli/**"]
Development
Requires Rust 1.93+ (edition 2024).
cargo fmt --all
cargo clippy --all-targets -- -D warnings
cargo test --all
cargo run -- list # exercise the CLI
See tests/README.md for the testing cheatsheet (TDD + non-TDD workflows).
Release pipeline
cargo release → git-cliff → cargo-dist, with PyPI and npm wrapper workflows publishing
after GitHub Releases. This is out of roadmap scope.
Repository
- GitHub: https://github.com/carlosferreyra/codetwin
- Roadmap:
ROADMAP.md - Changelog:
CHANGELOG.md
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 codetwin-0.2.0.tar.gz.
File metadata
- Download URL: codetwin-0.2.0.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c6cbd5cc3db3891126631b2366c8de9486209e41f78e9bfa8ac812668564d7b
|
|
| MD5 |
92c0dc2ec2f81dc98f8b8417dceb9d78
|
|
| BLAKE2b-256 |
e85dc0e01c2fb71f57da45c80db7fd3634d5b5f10ededd620e7054ae00786ec1
|
File details
Details for the file codetwin-0.2.0-py3-none-any.whl.
File metadata
- Download URL: codetwin-0.2.0-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e667cc221ff105b4d906b3cc5c7a9c37244d3bd67112a6d1d8c8e333059bb79
|
|
| MD5 |
e79b23a086bcfd4f3345f19bb729bc58
|
|
| BLAKE2b-256 |
671a66d02820e3691642a56808ac696ec66de2df5a5cc6ea05c4d2b9ed88a37f
|