Rootline
Trace the change. Find the cause.
Causal evidence analysis for software regressions: given a Git repository plus a failing test, Rootline ranks candidate causal changes with supporting and contradictory evidence — fully local, no paid services.
Status: MVP core — CLI + API over a causal evidence graph
(Python + TypeScript). The full specification lives in Rootline.md
(local working spec, git-ignored by design).
Install
uv sync
Requires Python 3.13+ and a git binary. No accounts, no paid services.
CLI usage
uv run rootline analyze ./repo \
--test-results results.xml \
--baseline main \
--max-commits 50 \
--fail-on low \
--output analysis.json
uv run rootline candidates analysis.json
uv run rootline explain analysis.json
uv run rootline report analysis.json -o report.html
uv run rootline verify <sha> --test test_create_user
uv run rootline blast-radius <sha>
uv run rootline benchmark
Exit codes: 0 clean, 1 regression found (or benchmark Top-1 miss),
2 usage/analysis error. rootline init writes a sample rootline.toml
with evidence weights.
API usage
uv run uvicorn rootline_api.app:create_app --factory --port 8000
Endpoints (GET paginated with limit/cursor):
POST /api/v1/analyses
GET /api/v1/analyses/{id}
GET /api/v1/analyses/{id}/candidates
GET /api/v1/analyses/{id}/graph
GET /api/v1/analyses/{id}/evidence/{sha}
OpenAPI docs at /docs when the server runs.
Layout
rootline/
├── apps/api/ # FastAPI (uv workspace member)
├── apps/web/ # React + Vite + Cytoscape.js (Phase 3)
├── workers/api/ # Cloudflare Python Worker demo, read-only (Phase 4)
├── packages/core/ # Evidence graph + ranking
├── packages/cli/ # Typer CLI
├── examples/ # Regression corpus with ground truth
└── tests/ # Bootstrap + unit tests
Deploy
Local-first with uv run — no Docker required. Public demo on Cloudflare
Pages + Python Worker + D1/R2, free tier without credit card. See spec §26.
License
Release files for rootline 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rootline-0.1.0.tar.gz | 114.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rootline-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 121.0 kB
Release files / rootline-0.1.0.tar.gz
| Download URL | rootline-0.1.0.tar.gz |
|---|---|
| Size | 114.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee27c8fdb463552e31f300e53be449832c06d98cc685703a44af7eed92b902d9
|
|
BLAKE2b-256 checksum How to use checksums |
67f185a8b8644a9f8bb97069b0396ccd02a3ff7fdc5b81900694ee42d318fbf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency logRelease files / rootline-0.1.0-py3-none-any.whl
| Download URL | rootline-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b84ee944e5682f4c1d4271deb717a52e72566f86f626b25f98ff8962d52cb6d4
|
|
BLAKE2b-256 checksum How to use checksums |
f83c22212f04854121775558767906c9fe7b3ddc8862b5a3448cf4ffb025c41b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.
Transparency log