newThe agent lens: see what AI wrote, commit by commit →

Your GitHub,
as a living city.

Swap github.com for commit.city on any profile, org or repo. A year of git history replays as a 3D city: every file a tower, every commit a beam of light, every bot and AI agent accounted for.

Try
Explore

Every city, so far.

People, orgs and repos that visitors have built. Each one is cached, so it opens instantly.

Full page →

GitHub's public timeline

Who's writing the code, live.

The latest public events GitHub has published, in the order they happened, sorted by who sent them: AI agents by their accounts and the branches they push (copilot/, claude/, …), other bots by their [bot] accounts. Cities also read Co-authored-by trailers; press A in any city for its split.

–
–
–
    Recognises 17 agents, from rules anyone can read and extend
    ClaudeCopilotCursorCodexDevinJulesGeminiAiderAmpOpenHandsReplit AgentLovablev0JunieSweepFactoryCodeRabbit

    Share it

    Made to be shown off.

    Every city comes with a README card, a link preview, a video clip and an embed. All of it updates when the city is rebuilt.

    A live card for your README

    Your actual skyline, frozen at today. It renders through GitHub's image proxy and links back to the 3D city.

    A commit.city README card
    [![my city](https://commit.city/api/card?t=YOU)](https://commit.city/YOU)
    Make yours →

    A clip of your year

    Hit Record in any city for a short video of the whole year playing back, wide for X and LinkedIn or vertical for Reels and Shorts. It renders in your browser.

    A city time-lapse
    REC 00:1216:99:161:1MP4 or WebM, straight from your browser

    Link previews that are the city

    Paste commit.city/you into Slack, Discord, X or LinkedIn and it unfurls into your skyline and stats.

    sindresorhus · commit cityA GitHub history, replayed as a 3D city time-lapse.A link preview image

    Embed it anywhere

    Drop the live, orbitable city into a portfolio, a blog post or a docs page. Hash parameters pick the moment, speed and camera.

    <iframe src="https://commit.city/you#embed=1"
            width="100%" height="480"></iframe>
    All parameters →

    Reading a city

    Real history, drawn to scale.

    commit.city doesn't estimate from contribution counts. It replays git itself, so a tower is exactly as tall as that file was on that day.


      Private repos

      Run it yourself. Your token never leaves your repo.

      commit.city only ever reads public data. For a city with your private work in it, run the same open-source pipeline in GitHub Actions or on your laptop. It writes one self-contained HTML page, and private repos are anonymised by default.

      GitHub Action

      Click Use this template, turn on Pages and run the workflow. It rebuilds every week and only re-reads repos that moved.

      # .github/workflows/commit-city.yml
      - uses: azank1/commit-city@v0
        with:
          token: ${{ secrets.COMMIT_CITY_TOKEN || github.token }}
      Use the template →

      Command line

      Python 3.11+ and git, no other dependencies. It picks up your gh login and writes one HTML file you can open offline.

      pipx install git+https://github.com/azank1/commit-city
      commit-city build --login you --include-private
      # → commit-city.html
      Setup guide →

      FAQ

      Questions, answered.

      What does it read? Is my code stored?

      Public repositories only. Paths and line counts come from replaying git history over GitHub's own git protocol; commit times come from git and GitHub's API. No source code is kept: a city stores paths, line counts and timestamps, the things anyone can already see on GitHub.

      How do I hide my city or leave a repo out?

      Open your city, press Share, then Sign in with GitHub. Sign-in asks for no permissions. Untick repos to leave them out, or hide your city and your repo cities entirely. More

      How does it know what an AI agent wrote?

      From the signatures agents leave: their bot accounts (like copilot-swe-agent[bot]), Co-authored-by trailers (Claude Code adds one), message footers and agent branch names. Agent work that isn't disclosed looks human. Details

      Why are my numbers lower than my contribution graph?

      GitHub's graph also counts pull requests, issues, reviews and private work. A city draws commits that landed on the default branch of a public repo, because those are what changed the code you can see. Repos too big for the hosted builder (over about 1.5 GB, like torvalds/linux) are left out, and the city's panel names them.

      Why is the first build slow?

      It replays real history from GitHub, and big repos take a minute or two. Repo records are shared between cities, so popular repos are usually cached already, and a rebuild only replays what changed.

      Is this affiliated with GitHub?

      No. commit.city is an independent, MIT-licensed open-source project. GitHub is a trademark of GitHub, Inc.

      Your turn

      What does your year look like?