Skip to main content

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 clone to ongoing refactoring.

Status: v2 architecture scaffold. Phase 1 of ROADMAP.md is underway; the binary builds and runs end-to-end but drivers currently produce empty CodeModels. See the TODO(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 releasegit-cliffcargo-dist, with PyPI and npm wrapper workflows publishing after GitHub Releases. This is out of roadmap scope.


Repository

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

codetwin-0.2.0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

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

codetwin-0.2.0-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

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

Hashes for codetwin-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2c6cbd5cc3db3891126631b2366c8de9486209e41f78e9bfa8ac812668564d7b
MD5 92c0dc2ec2f81dc98f8b8417dceb9d78
BLAKE2b-256 e85dc0e01c2fb71f57da45c80db7fd3634d5b5f10ededd620e7054ae00786ec1

See more details on using hashes here.

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

Hashes for codetwin-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e667cc221ff105b4d906b3cc5c7a9c37244d3bd67112a6d1d8c8e333059bb79
MD5 e79b23a086bcfd4f3345f19bb729bc58
BLAKE2b-256 671a66d02820e3691642a56808ac696ec66de2df5a5cc6ea05c4d2b9ed88a37f

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