A Chrome extension that enhances GitHub Projects with insights like velocity prediction, completion date estimation, and more.
Install from Chrome Web Store (Recommended)
Other installation methods
- Go to the Releases page
- Download the latest
.zipfile - Extract the zip file
- Open
chrome://extensions/in Chrome - Enable "Developer mode" in the top right
- Click "Load unpacked extension"
- Select the extracted folder
- Clone or download this repository
- Install dependencies:
pnpm install - Run development mode:
pnpm run dev - Chrome will open automatically with the extension loaded
- Run
pnpm run build - Open
chrome://extensions/in Chrome - Enable "Developer mode" in the top right
- Click "Load unpacked extension"
- Select the
.output/chrome-mv3folder
Extends GitHub Projects' burn-up chart with velocity analysis and completion prediction.
- π Current Velocity Display: Displays the current velocity slope calculated from past data as a dashed line
- π― Ideal Velocity Display: Displays the ideal velocity required to complete by the deadline as a solid line
- π Completion Prediction Date: Displays the predicted completion date if the current velocity is maintained
- π Statistics Panel: Displays total estimate, completed estimate, and completion percentage
Calculates and displays the average velocity across multiple iterations in bar/column charts.
Adds small, in-cell hints to Date custom fields in the list view β without adding new columns β to surface missing dates, long-running work, and overdue items.
β οΈ Missing Start / End: flags in-progress items with no start date, in-progress items with no end date, and done items with no end date- β±οΈ Age: shows how many days an in-progress item has been running, color-coded (normal / caution / warning)
- π΄ Overdue: flags not-done items past their end date
Configure your chart with the following settings:
| Setting | Value |
|---|---|
| Layout | Stacked area |
| X-axis | Time |
| Y-axis | Count of items or Sum of field (Recommended: Sum of field with a Number field for Story points) |
| Date range | Custom range (Recommended: from observation start date to release target date + 1 month) |
- Open the GitHub Project Insights page (
/insights) - When the burn-up chart is displayed, the extension will automatically activate
- A statistics panel will appear below the chart
- Velocity prediction lines will be overlaid on the chart
The deadline is automatically obtained from the end point of the graph's X-axis.
Configure your chart with the following settings:
| Setting | Value |
|---|---|
| Layout | Bar, Column, Stacked bar, or Stacked column |
| X-axis | Custom field with Iteration field type |
| Y-axis | Count of items or Sum of field (Recommended: Sum of field with a Number field for Story points) |
- Open the GitHub Project Insights page (
/insights) - When a bar/column chart with Iteration on X-axis is displayed, the extension will automatically calculate the average velocity
- The average velocity will be displayed on the chart
- Open a GitHub Project list (table) view (
/views/...) - Click Configure in the settings bar, map Start/End date fields, and Save
- Alerts appear inline next to the dates, updating as you scroll
"In progress" / "done" is guessed from the Status option name by default. To override:
- Open Configure and edit the optional In Progress statuses / Done statuses pickers (pre-filled with the current guess)
- Once saved, the picker takes full control β an unselected status gets no alert, even if it would otherwise keyword-match
- Saving both empty (Clear link) disables status-based alerts entirely, rather than reverting to the guess
| Status | Condition | Shown |
|---|---|---|
| In Progress | No start date | Start: β Missing |
| In Progress | Has a past start date | Start: Age Nd (color-coded: 0β5 normal, 6β10 caution, 11+ warning) |
| Todo or In Progress | End date is in the past | End: Overdue Nd |
| In Progress | No end date | End: β Missing |
| Done | No end date | End: β Missing |
Notes:
- The Start/End field mapping (and the optional status pickers) are stored per project (via
chrome.storage.local), so field renames don't break it (field/status IDs are used internally). - Alerts are computed from the items loaded on the page and refresh on reload; edits made after load are reflected after refreshing.
pnpm installStart the development server with Hot Module Replacement:
pnpm run devThis will:
- Start a dev server at
http://localhost:3000 - Automatically open Chrome with the extension loaded
- Auto-reload the extension when you make changes
For Firefox development:
pnpm run dev:firefoxYou can customize the browser behavior when starting the development server. Create a .env.local file in the project root and configure the following environment variables:
-
Copy the example file:
cp env.example .env.local
-
Edit
.env.localand set the following variables:
The .env.local file is included in .gitignore and will not be committed to Git. Refer to the env.example file as a template.
pnpm run buildFor Firefox:
pnpm run build:firefoxpnpm wxt zipTo create a new release, run the Bump Version workflow from the Actions tab (or gh workflow run bump-version.yml -f version=1.2.3), entering the new version number.
This will automatically:
- Update the
versionfield inpackage.jsonand commit it tomain - Trigger the Release workflow, which:
- Creates a git tag (e.g.,
v1.2.3) - Builds the extension
- Creates a GitHub Release with the built
.zipfile - Submits the build to the Chrome Web Store
- Creates a git tag (e.g.,
If the tag already exists, the release workflow will skip the release.
Manual alternative
You can also trigger a release by pushing the version bump yourself:
- Update the
versionfield inpackage.json - Commit and push to the
mainbranch
This triggers the same Release workflow.
- WXT - Next-gen Web Extension Framework
- TypeScript
- Vite (via WXT)


