Automatically update your pinned GitHub Gists with commit activity analysis and GitHub overview.
Supports 3 Gists:
| Gist | Description | Example |
|---|---|---|
| Activity | Commit time distribution analysis | π Morning 120 commits βββββββββββββ 25.0% |
| Overview | GitHub statistics summary | β Total Stars: 142 |
| Project | Ongoing projects with custom tags | π¦ my-project β 12 π΄ 3 v1.0 |
Analyzes your commit history and displays activity by time of day as a bar chart.
The gist title is displayed as {name}'s Commit Activity.
π Morning 73 commits βββββββββββββββββββββ 19.3%
π Daytime 142 commits ββββββββββββββββββββββ 37.6%
π Evening 112 commits ββββββββββββββββββββββ 29.6%
π Night 51 commits βββββββββββββββββββββ 13.5%
Shows your GitHub profile statistics at a glance.
β Total Stars: 142
β Total Commits: 1,234
π Total PRs: 56
π© Total Issues: 23
π¦ Contributed to: 18
Highlights ongoing projects from a list you define in config/project.json.
Each entry pulls live stars/forks/version from GitHub, and you can add custom
tags such as π§ WIP, π― Focus, or TypeScript.
π¦ everything-gemini-code β 12 π΄ 3 v1.0
A harness engineering toolkit for Gemini CLI & Antigravity.
π§ WIP π― Focus TypeScript
π¦ Github-Gist-Status β 8 π΄ 1 v1.0
β
Stable
- Create 2 Gists at gist.github.com.
- One for Activity, one for Overview
- The filename and content can be anything (they will be updated automatically)
- Copy the ID from each Gist URL.
https://gist.github.com/username/abc123...β this part
- Go to GitHub Settings > Developer settings > Personal access tokens and create a token
- Required scopes:
gist,repo(if you want to include private repo commits),read:user
Fork this repository or create a new one, then:
-
Go to Settings > Secrets and variables > Actions and add the following secrets:
Secret Value Description GH_TOKENghp_xxxxxxxxxxxxGitHub Personal Access Token GIST_ID_ACTIVITYa62343a5341...Activity Gist ID GIST_ID_OVERVIEW4b422dc6ce1...Overview Gist ID GIST_ID_PROJECT9f0a8b7c6d5...Project Gist ID (optional) Note: Enter only the ID at the end of the Gist URL, not the full URL. e.g.
https://gist.github.com/username/4b422dc6ce14fc228c191cdad3da4d9cβ4b422dc6ce14fc228c191cdad3da4d9c -
If you only want to use one Gist, just set that Gist ID. The other will be skipped automatically.
You can modify environment variables in .github/workflows/schedule.yml:
env:
TIMEZONE: Asia/Seoul # Timezone (default: Asia/Seoul)
ALL_COMMITS: 'true' # true: all-time commits / false: past year only
K_FORMAT: 'false' # true: 1.5k format / false: 1,500 format
OUTPUT_SVG: 'true' # true: also generate SVGs into output/ for README embed
OUTPUT_DIR: 'output' # SVG output directory
PROJECT_CONFIG: 'config/project.json' # Project list (skip module if file missing)- Go to the Actions tab and enable the workflow.
- It runs automatically every 7 hours and on push to
main. - You can also trigger it manually via Actions > Update Gists > Run workflow.
Pin the Gists on your GitHub profile to display them publicly.
In addition to Gists, this action generates SVG files into the output/ folder
and commits them back to the repository. You can embed them on any README using
the <picture> tag, which switches automatically between light/dark themes:
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/<user>/<repo>/main/output/activity-dark.svg" />
<img alt="Commit Activity" src="https://raw.githubusercontent.com/<user>/<repo>/main/output/activity-light.svg" />
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/<user>/<repo>/main/output/overview-dark.svg" />
<img alt="GitHub Overview" src="https://raw.githubusercontent.com/<user>/<repo>/main/output/overview-light.svg" />
</picture>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/<user>/<repo>/main/output/project-dark.svg" />
<img alt="Ongoing Projects" src="https://raw.githubusercontent.com/<user>/<repo>/main/output/project-light.svg" />
</picture>To disable SVG generation, set OUTPUT_SVG: 'false' in the workflow env.
Create config/project.json listing the projects you want to showcase. Each
project pulls stars/forks/version from GitHub automatically; you can add
optional custom tags (status, stack, focus, anything) to highlight context:
{
"title": "Ongoing Projects",
"projects": [
{
"repo": "Jamkris/everything-gemini-code",
"description": "A harness engineering toolkit for Gemini CLI & Antigravity.",
"tags": [
{ "icon": "π§", "label": "WIP" },
{ "icon": "π―", "label": "Focus" },
{ "label": "TypeScript" }
]
},
{
"repo": "Jamkris/Github-Gist-Status",
"tags": [{ "icon": "β
", "label": "Stable" }]
}
]
}repois required (owner/name).descriptionis optional β falls back to the GitHub repo description.tagsis an array of{ icon?, label }. Both fields accept any emoji or text.- If the config file is missing, the Project module is silently skipped.
# Install dependencies
npm install
# Create .env file
cp .env.example .env
# Fill in your token and Gist IDs in .env
# Run in development
npm run dev
# Build
npm run buildGithub-Gist-Status/
βββ .github/workflows/
β βββ schedule.yml # GitHub Actions (runs every 7 hours)
βββ config/
β βββ project.json # Project list (consumed by Project module)
βββ src/
β βββ index.ts # Main entry point
β βββ types.ts # Shared type definitions
β βββ api/
β β βββ graphql.ts # GraphQL client
β β βββ queries.ts # GraphQL queries
β βββ modules/
β β βββ activity.ts # Commit activity analysis module
β β βββ overview.ts # GitHub overview module
β β βββ project.ts # Project showcase module
β βββ utils/
β βββ barChart.ts # Bar chart generator (Gist text)
β βββ svg.ts # SVG builder (light/dark themes)
β βββ format.ts # Number formatting
β βββ projectConfig.ts # config/project.json loader
βββ output/ # Generated SVGs (committed by Action)
β βββ activity-{light,dark}.svg
β βββ overview-{light,dark}.svg
β βββ project-{light,dark}.svg
βββ action.yml # GitHub Action metadata
βββ package.json
βββ tsconfig.json
βββ .env.example
MIT (c) 2026 Jamkris