Skip to content

Repository files navigation

GitHub Activity Timeline

English | 简体中文

GitHub Activity Timeline is a local-first report generator for GitHub work history. It reads repositories from your GitHub account and selected organizations, then creates a standalone repo-by-date timeline that shows when each project was active.

Example

GitHub Activity Timeline example

Features

  • Uses your local GitHub CLI login. No repository clone is required.
  • Includes public and private repositories that the current gh login can read.
  • Scans GitHub user accounts and organizations.
  • Generates a standalone output/index.html file that can be opened directly in a browser.
  • Keeps local config and generated reports out of Git.
  • Collects fork repositories and all commit authors in the generated data.
  • Defaults to regular repositories and the current GitHub author in the report.
  • Supports repo search, owner, visibility, type, author, and minimum commit filters.
  • Supports sorting by first active date, commit count, active days, last active date, or repo name.
  • Supports timeline zoom and fit-to-width mode.

Requirements

  • Node.js 20+
  • GitHub CLI (gh)

Quick Start

No npm install step is required. Install GitHub CLI first. See the official installation guide for your operating system.

Common install commands:

# macOS
brew install gh

# Windows
winget install --id GitHub.cli

Log in to GitHub:

gh auth login
gh auth status

Follow the browser login flow and choose the GitHub account that can read the repositories you want to include. Public and private repositories are included when this account has access to them.

Generate the report:

node build-report.mjs

Open output/index.html in your browser.

Configuration

github-activity.config.json is optional. If it is missing or contains only {}, the script scans the current GitHub user from gh and uses the default date range.

Create a local config only when you want to scan organizations or override defaults:

cp github-activity.config.example.json github-activity.config.json

The config can also be {}. To include organizations, list owners explicitly:

{
  "repos": {
    "owners": [
      {
        "type": "user",
        "name": "your-github-login"
      },
      {
        "type": "org",
        "name": "your-github-org"
      }
    ]
  }
}

Supported fields:

Field Default Description
github.since One year ago Start date, in YYYY-MM-DD. Commit dates use commit.author.date.
github.until Today End date, in YYYY-MM-DD, using the configured or system time zone.
github.timezone System time zone Time zone used to group commits by day.
repos.owners Current gh login Repository owners to scan, such as GitHub users or organizations. Each item uses { "type": "user" | "org", "name": "..." }.
repos.exclude [] Full repository names to skip, such as "owner/repo-name".

All fields are optional. See github-activity.config.example.json for a complete example.

Command-line flags with the same names, such as --since, --until, --timezone, and --output, override the config file for that run.

Local Files

These files are intentionally ignored by Git:

  • github-activity.config.json: local GitHub owner and date-range config.
  • output/index.html: generated standalone activity report.

License

MIT

About

Local-first GitHub activity timeline generator.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages