Skip to main content

Repo Time Machine

Watch any Git repository being built, commit by commit.

PyPI Python Version License


Ever wondered what a repository looked like five years ago?

Repo Time Machine turns Git history into an interactive timeline. Drag through time — or hit play — and watch files, contributors, languages, and project structure evolve.

Repo Time Machine Demo

What it does

Point it at any Git repository — local or public GitHub — and it generates a self-contained HTML file with:

  • Interactive timeline slider
  • Playback controls (0.5x to 5x speed)
  • File tree at each point in history
  • Language breakdown over time
  • Repository growth chart
  • Auto-detected milestones (first commit, tests, CI, Docker, etc.)
  • Interesting statistics

No server needed. Just open the HTML file in a browser.

Installation

pip install repo-time-machine

Requires Python 3.10+ and Git.

Usage

Analyze a local repository

repo-time-machine .
repo-time-machine /path/to/repo

Analyze a public GitHub repository

repo-time-machine https://github.com/pallets/flask

Open in browser automatically

repo-time-machine https://github.com/user/repo --open

Options

repo-time-machine . --output timeline.html    # Custom output file
repo-time-machine . --max-commits 500         # Limit commits analyzed
repo-time-machine . --sample 200              # Control snapshot count
repo-time-machine . --verbose                 # Show progress
repo-time-machine --version                   # Show version

Features

Interactive Timeline

Drag the slider to travel through the repository's history. The file tree, commit details, language breakdown, and statistics all update in real-time.

Playback Mode

Hit Play and watch the repository build itself. Control speed from 0.5x to 5x.

File Tree

See the complete directory structure at any point in time. Directories are collapsible.

Language Detection

Automatic language breakdown based on file extensions. Supports 40+ languages.

Growth Chart

SVG chart showing file count growth over the repository's lifetime.

Milestone Detection

Automatically identifies interesting moments:

  • 🚀 First commit
  • 👥 First outside contributor
  • 🧪 Tests introduced
  • ⚙️ CI introduced
  • 🐳 Docker added
  • 🔥 Biggest commit
  • 🗑️ Biggest deletion
  • 📦 Dependency file added
  • 📦 Commit #100, #1000, etc.

Statistics

  • Repository age
  • Total commits and contributors
  • Most active contributor
  • Busiest day
  • Most changed file
  • Biggest commit and deletion

Performance

Repo Time Machine handles large repositories efficiently:

Commits Behavior
≤ 1,000 Analyze every commit
1,001–10,000 Sample ~1,000 commits
> 10,000 Sample ~1,500 commits

Milestone commits are always preserved regardless of sampling.

Example output:

Cloning repository...
Found 8,421 commits
Analyzing commit stats...
Detecting milestones...
Sampling 1,000 commits for visualization
Generating timeline...
Created repo-time-machine.html

Privacy & Security

  • 100% local — no data leaves your machine
  • No accounts — no authentication required
  • No telemetry — no analytics or tracking
  • Safe cloning — repository code is never executed
  • Only Git metadata and file listings are inspected

Examples

# Analyze Flask
repo-time-machine https://github.com/pallets/flask --open

# Analyze React
repo-time-machine https://github.com/facebook/react --sample 500

# Analyze your own project
cd my-project
repo-time-machine . --open

Contributing

Contributions welcome!

git clone https://github.com/user/repo-time-machine.git
cd repo-time-machine
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -e ".[dev]"

Run tests:

pytest

Roadmap

  • Cumulative additions/deletions chart
  • Contributor activity timeline
  • File heatmap (most-changed files)
  • Branch comparison
  • Export to video/GIF
  • Custom milestone patterns

License

MIT — see LICENSE. ""

Metadata

Release files for repo-time-machine 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repo-time-machine 0.1.0
File Size Uploaded
repo_time_machine-0.1.0.tar.gz 23.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for repo-time-machine 0.1.0
File Interpreter ABI Platform
repo_time_machine-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.5 kB

Release files / repo_time_machine-0.1.0.tar.gz

Download URL repo_time_machine-0.1.0.tar.gz
Size 23.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b49fc587a7ee06c6c0705aeee8e5fc3ac158f765c9813427c03b516b68addd0c
BLAKE2b-256 checksum
How to use checksums
48c78367f37867dd7a722a2c449f27416d0b1172767a428ad956216261222ff5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release files / repo_time_machine-0.1.0-py3-none-any.whl

Download URL repo_time_machine-0.1.0-py3-none-any.whl
Size 20.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8aee13ebaae2a4e58990ab4100771c4f14b21686d41849cd7f693c935b93ba8
BLAKE2b-256 checksum
How to use checksums
e8b58beff40e5351da4361b2c82772cba5e8fbacdf4da543a162be4d3963984a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page