Skip to content

Repository files navigation

RepoReplay — Your Git history, replayed

Turn any Git repository into a beautiful, interactive story.
One command. One standalone HTML file. Everything stays on your machine.

CI status MIT license Go 1.24+ Zero runtime dependencies

Quick start · Demo · Features · How it works · Contributing


Your repository already has a story: bursts of momentum, quiet rebuilds, people who shaped it, files that carried the hardest changes, and tags that marked a new chapter.

RepoReplay makes that story visible. It reads the Git history already on your computer and produces a polished report you can explore, share with your team, attach to a handoff, or use to showcase an open-source project.

See momentum

Explore velocity, active periods, daily rhythm, and tagged milestones without digging through raw logs.
Find the gravity

Surface the files and top-level areas carrying the most historical change.
Share one file

Send or archive a standalone report—no hosted dashboard, login, or database required.

Quick start

go install github.com/vKAYFv/reporeplay/cmd/reporeplay@latest
cd your-repository
reporeplay serve

RepoReplay opens a local report at http://127.0.0.1:4173. Want a portable artifact instead?

reporeplay build
# ✓ Report written to ./reporeplay.html

That file is the whole product experience: data, styles, charts, search, filters, and light/dark themes included.

Note

Prebuilt macOS, Linux, and Windows binaries are attached to each GitHub release. Git is the only system requirement.

See your repository in motion

RepoReplay interactive repository dashboard

The report is designed for exploration, not a static screenshot. Move through time, switch between 90 days, one year, and full history, search the commit stream, inspect hotspots, and change themes—all without a network connection.

What you'll discover

Question RepoReplay view
When did the project move fastest? Monthly velocity chart and selectable time range
What does the contribution rhythm look like? A 52-week activity heatmap anchored to repository history
Who shaped the codebase? Contributor share, activity window, and line movement
Where does change concentrate? File hotspots and top-level surface-area map
What is the repository made of? Current tracked-file mix by extension
When did meaningful chapters ship? Lightweight and annotated Git milestones
What exactly happened? Searchable commit stream with dates, files, and deltas

RepoReplay describes activity—not productivity, developer performance, or code quality. The numbers stay close to the underlying Git facts and remain explainable.

How it works

Git repository to RepoReplay to standalone HTML report

  • Private by default. Source files and commit data never leave your computer.
  • Forge-independent. Works with GitHub, GitLab, Bitbucket, self-hosted remotes, and repositories with no remote at all.
  • Portable by design. The generated report has no CDN assets, webfonts, tracking scripts, or backend calls.
  • Small attack surface. The binary uses only the Go standard library and invokes Git only for read-only history commands.
  • Safe to share deliberately. Author email addresses and remote credentials are removed from exported HTML and JSON.

Commands

reporeplay build [flags] [path]   Build reporeplay.html
reporeplay serve [flags] [path]   Preview on localhost
reporeplay version                Print version
# Choose the destination
reporeplay build --output ~/Desktop/project-story.html ../project

# Use the normalized data in another tool
reporeplay build --json --pretty . > repository-story.json

# Let the OS choose a free preview port
reporeplay serve --port 0 .

Flags must appear before the optional repository path. Run reporeplay help for the complete reference.

Metric definitions and interpretation
View Definition
Velocity Commit volume aggregated by calendar month
Contribution rhythm Daily commit activity over the final 52 weeks in repository history
Contributors Commit share and line movement grouped by author identity
File mix Extensions among files currently tracked by Git
Hotspots Files ranked by 2 × commits + √(additions + deletions)
Surface area Historical line movement grouped by top-level path
Milestones Git tags mapped to their target commits

The time control updates headline statistics, velocity, and the commit stream. Hotspots and contributor rankings intentionally describe full history so their meaning remains stable while browsing.

Important boundaries:

  • Merge strategy changes what history contains; a squash merge appears as one commit.
  • Shallow clones only contain downloaded history. Run git fetch --unshallow for the complete story.
  • Uncommitted and staged changes are excluded because RepoReplay describes recorded history.
  • Binary files count as changes but have no line delta because Git reports it as -.
  • Authors are grouped internally by commit email; addresses never appear in output.
Architecture
internal/gitrepo   read and parse Git facts
        ↓
internal/analyzer  calculate deterministic metrics
        ↓
internal/report    embed safe JSON into the static interface
        ↓
reporeplay.html    open anywhere

The report renderer HTML-escapes the embedded JSON boundary and dynamic UI content. Remote URLs are normalized before export so credentials, query strings, and fragments cannot leak into an artifact.

Development

make check     # formatting, vet, tests, and the race detector
make build     # bin/reporeplay
make demo      # generate a report for this repository

The test suite covers parser fixtures, a real temporary Git repository, binary changes, tags, detached branches, metric invariants, credential removal, and HTML script-boundary injection.

Contributing

Focused contributions are welcome. Start with CONTRIBUTING.md, use the issue templates for reproducible proposals, and report vulnerabilities privately through SECURITY.md.

Your repository has already written the history.
RepoReplay turns it into something worth exploring.

Build your first report →

License

MIT © 2026 kayfdev

About

Turn any Git repository into a beautiful, interactive story — one command, one HTML file, zero uploads.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages