git-stuff-done is your personal developer dashboard designed to keep you in the flow. It combines a distraction-free markdown editor for your daily work logs with AI superpowers. Track your work, manage your PRs and GitHub notifications, and generate work summaries all in one place.
- 📝 Work Log Editor — A rich hybrid editor. Type markdown naturally — headings, bold, lists, and links render inline as you type.
- 📅 Date Navigation — Browse past logs with a calendar picker. Dates that have content show a dot indicator. Use ← / → to step day by day, or click Today to jump back.
- 🪄 Linkify — Click 🪄 Linkify to resolve bare GitHub URLs to titled markdown links. Updates the log in-place.
- 📊 Work Log Summary — Generate AI-powered summaries of your work logs for daily standups or weekly reports. Choose the AI model, pick a date range, and save summaries directly to your repo in
summaries/. - ✅ TODO List — Manual TODOs with inline editing + AI-suggested action items based on your work log.
- 🔀 My PRs — Live feed of your open PRs (authored or assigned) in your GitHub org with status badges: Copilot (authored by Copilot, you're an assignee), Draft, Queued / Merging (merge queue), CI Failing (required checks only), Needs Review (awaiting human review), and unanswered comment count (excludes bots and resolved threads). Click the insert button on any PR to paste its link at the cursor in your work log.
- 🐛 My Issues — Open issues assigned to you across your GitHub org, showing labels (toggleable) and comment counts. Linked PRs appear as chips styled by state (open/draft/merged/closed). Click the insert button to paste a link at the cursor in your work log.
- 🔔 Notifications — Filtered GitHub notifications: reviews requested, mentions, assignments, and activity on your issues/PRs. Click the insert button to paste a link at the cursor. Dismiss individual notifications with the X button (reappear on reload).
- 🚀 Auto-commit & Push — Hourly auto-commit of your logs and TODOs to a git repo, with push to remote.
- ⚙️ Settings — Ignore noisy repos in notifications.
- ▤ Layout modes — Toggle between grid (2-column) and column (single-column) layouts. Hide individual panels and restore them from the ☰ menu. Preferences are saved in localStorage.
- 🌗 Dark Mode — First-class support for both light and dark themes.
- Node.js 20+
- GitHub Copilot CLI (
copilot) — installed and in your PATH. The SDK communicates with the CLI in server mode for AI features.- Installation guide
- Requires a GitHub Copilot subscription (free tier available)
- A GitHub Personal Access Token (PAT) with read-only scopes — see setup step 2 below.
- GitHub CLI (
gh) — optional, only needed if you skip the PAT step. If present and authenticated, it's used as a fallback for GitHub API access.
-
Fork, then clone your fork:
Click Fork on GitHub to create your own copy of this repo, then clone it:
git clone https://github.com/<your-username>/git-stuff-done git-stuff-done cd git-stuff-done npm install
⚠️ Do not clone this repo directly — the auto-commit feature pushes to the git remote, and you won't have push access to the original repo. -
Create a read-only GitHub PAT:
Go to https://github.com/settings/personal-access-tokens/new and create a fine-grained token with:
- Repository access: Public repositories (or select specific repos if needed)
- Permissions:
Issues→ Read-only,Pull requests→ Read-only,Notifications→ Read-only
If your org requires SSO, click Configure SSO → Authorize for your org after creating the token.
-
Configure environment:
cp .env.example .env.local
Edit
.env.local:GITHUB_READ_TOKEN— the PAT from step 2GITHUB_ORG— your GitHub org name (filters notifications, PRs, links)GIT_STUFF_DONE_DATA_DIR— (recommended) path to a separate git repo for storing logs/TODOs
-
Set up a separate repo for your logs (recommended):
Without
GIT_STUFF_DONE_DATA_DIR, logs and TODOs are stored inside the app repo itself (your fork). To keep them separate:Create a new private repo on GitHub for your logs, then clone it:
git clone https://github.com/<your-username>/my-work-logs ~/my-work-logs
Set
GIT_STUFF_DONE_DATA_DIR=~/my-work-logsin.env.local. The directory must be a git repo with a remote for auto-push to work. -
Run the dashboard:
npm run dev
| Variable | Default | Description |
|---|---|---|
GITHUB_ORG |
(none) | GitHub org to filter notifications, PRs, and links |
GITHUB_READ_TOKEN |
(falls back to gh auth token) |
Read-only GitHub token (create one with Issues, PRs, and Notifications read access) |
GIT_STUFF_DONE_DATA_DIR |
./ (app dir) |
Path to a git repo where logs/ and data/ will be stored |
- Storage: Daily logs are saved as
logs/YYYY-MM-DD.md. Summaries are saved insummaries/YYYY-MM-DD-{type}.md. TODOs live indata/todos.json. Settings indata/config.json. - Linkify: Click 🪄 Linkify in the log panel. Resolves bare GitHub URLs to titled markdown links (e.g.
[Fix auth bug (#123)](url)). Saves the result back to the same file. - Auto-commit: Every hour while the app is running, changes to
logs/,summaries/, anddata/are committed and pushed. You can also trigger a manual commit via the 🚀 button. - Timezone: All dates use America/Los_Angeles (Pacific Time). Edit
getTodayDate()insrc/lib/files.tsto change.
- Next.js 16 (App Router) + TypeScript
- Tailwind CSS v4
- Tiptap (ProseMirror) rich text editor
@github/copilot-sdkfor AI summaries- Space Grotesk + JetBrains Mono fonts
- Octokit for GitHub API
- react-resizable-panels for layout
| Light Mode | Dark Mode |
|---|---|
![]() |
![]() |
| TODO List | AI-Suggested TODOs |
|---|---|
![]() |
![]() |
| AI Summaries | |
|---|---|
![]() |
![]() |
| Calendar Picker | Alternate Layout |
|---|---|
![]() |
![]() |







