Flaunt GitHub
July 30, 2026 ยท View on GitHub
Flaunt GitHub is a VS Code / Cursor extension that quietly tracks your coding activity and commits a rolling journal to a private code-tracking repo in your GitHub account. Your contribution graph stays green, and you get a searchable history of what you actually worked on.
What's new
v3.0.12
- ๐งน Dependency maintenance โ routine dev-toolchain refresh:
@types/node26.1.2,eslint10.8.0, and@vscode/test-electron3.1.0.npm auditreports 0 vulnerabilities for both the full and production trees. All changes are dev/CI tooling โ the shipped runtime (simple-git,@octokit/rest) is unchanged.
v3.0.11
- ๐ Security patch โ cleared five high-severity advisories across four build-toolchain packages:
linkify-itquadratic-complexity DoS (viamarkdown-it),brace-expansionexponential-time expansion DoS (viaminimatch),js-yamlmerge-key quadratic CPU (the advisory range widened to<4.3.0, so the previous>=4.2.0pin was still exposed), and twofast-urihost-confusion advisories. All pinned via npmoverrideswith explicit major-version ceilings so a transitive dep can't silently jump a major.@typescript-eslintupdated to 8.65.npm auditreports 0 vulnerabilities for both the full and production trees; the shipped runtime (simple-git,@octokit/rest) is unchanged.
v3.0.10
- ๐งน Dependency maintenance โ routine dev-toolchain refresh:
@types/node26.1,@typescript-eslint8.64,eslint10.7, and theactions/setup-nodeCI action to v7.npm auditreports 0 vulnerabilities for both the full and production trees. All changes are dev/CI tooling โ the shipped runtime (simple-git,@octokit/rest) is unchanged.
v3.0.9
- ๐งน Dependency maintenance โ routine dev-toolchain refresh:
@types/node26.x,@typescript-eslint8.62,@vscode/test-cli0.0.15, and theactions/checkoutCI action to v7.npm auditreports 0 vulnerabilities for both the full and production trees. All changes are dev/CI tooling โ the shipped runtime (simple-git,@octokit/rest) is unchanged.
v3.0.8
- ๐ Security patch โ cleared seven newly-disclosed
undiciadvisories (two high: TLS validation bypass in the SOCKS5 ProxyAgent and shared-cache cross-user disclosure, plus five moderate/low) reaching the build toolchain transitively through@vscode/vsce โ cheerio. Pinned toundici >=7.28.0 <8via npmoverrides, staying on the v7 linecheerioexpects.npm auditreports 0 vulnerabilities for both the full and production trees; the shipped runtime is unchanged.
v3.0.7
- ๐ Security patch โ cleared three newly-disclosed advisories in the build toolchain:
markdown-itquadratic-complexity DoS (advisory #51),form-dataCRLF injection (high), andjs-yamlmerge-key DoS, all pinned via npmoverrides.@typescript-eslintupdated to 8.61.1.npm auditreports 0 vulnerabilities for both the full and production trees; the shipped runtime is unchanged.
v3.0.6
- ๐ Marketplace listing refresh โ this "What's new" section now tracks every release (the v3.0.3โv3.0.5 entries below were previously missing from the Marketplace overview).
v3.0.5
- ๐ Zero known vulnerabilities โ cleared every open security advisory.
serialize-javascript(RCE + CPU DoS),diff(jsdiff DoS), andbrace-expansion(DoS) are pinned via npmoverrides;esbuildbumped to 0.28.1.npm auditreports 0 vulnerabilities for both the full and production trees. - โฌ๏ธ Toolchain refresh โ
@types/node,eslint+typescript-eslint, and@vscode/test-electron3.x updated. All changes are dev/build tooling โ the shipped runtime (simple-git,@octokit/rest) is unchanged.
v3.0.4
- ๐ค Reliable release automation โ tagging a version bump now consistently triggers the Release workflow (explicit
workflow_dispatch), and the dispatch path resolves the tag correctly instead of mistaking the branch name for the tag.
v3.0.3
- โฌ๏ธ
simple-git3.36 โ the one runtime dependency change shipped to users (upstream bug fixes, no behavior change), bundled with accumulated dev-toolchain and security updates.
v3.0.2
- ๐ Timezone-safe formatting โ empty / invalid
codeTracking.timeZonevalues fall back to the system zone instead of crashing the commit tick. - ๐ Per-save log lines restored โ
Saved ...,Auto-snapshot ..., andWorkspace diff snapshot ...lines appear in theFlauntGitHubLogchannel as activity happens, not just at commit time.
v3.0.0 highlights
- ๐งฑ Modular architecture โ auth, repo, interval, activity, status, commands are separate modules with unit tests.
- ๐ Tokens never persisted in
.git/configโ credentials are injected per-operation viahttp.extraheader. - ๐ Rotated journal files โ
journal/YYYY/MM.mdfor global activity andprojects/<repo>/YYYY/MM.mdfor per-project scoping (no more monolithiccoding_summary.txt). - ๐งฉ Multi-root workspace support โ every folder is tracked independently.
- โธ Pause / resume from the status bar.
- ๐ก Ignore globs โ sensible defaults (
**/.env*,**/secrets/**, keys) plus user overrides. - ๐ต๏ธ Optional path redaction โ commit
<redacted:3>.tsinstead of real paths, still track language and counts. - ๐พ Pending queue โ if a push fails, the interval's activity is persisted and retried next tick. No more lost entries.
- ๐ Single-instance file lock โ only one VS Code window drives commits per global storage.
- โ First-run consent dialog โ previews an example commit before anything is pushed.
- ๐ Webview dashboard โ languages, sessions, diff at a glance.
- ๐ท Profile badge generator โ SVG committed to your tracking repo, ready to paste in your GitHub profile README.
- ๐ค Opt-in AI daily summary โ 2-3 sentence journal entry produced by Anthropic (BYOK, Claude Haiku by default).
- ๐ค Export metrics โ JSON or CSV.
How it works
Activation
- On startup, Flaunt acquires a file lock in the extension's global storage directory. Other windows become read-only.
- First-run consent dialog shows a sample commit line. Decline โ tracking never starts.
- Credentials resolve in this order:
- Cached in Secret Storage.
codeTracking.githubToken+codeTracking.githubUsernamefrom settings (fallback; cached after first use).vscode.authentication.getSession('github', ['read:user','repo']).
- The private
code-trackingrepo is created if missing, cloned into global storage, andoriginis rewritten to a token-free URL.
Tracking loop
At each interval (default 30 min):
- Manual saves โ
Saved <path>entries. - No manual save but dirty docs โ
Auto-snapshot <path>entries, thensaveAll. - No dirty docs but workspace git diff โ
Workspace diff snapshot (+X/โY). - Entries are written to per-project monthly markdown files inside the tracking repo.
git fetchโ merge โ commit โ push via-c http.extraheader=....- Commit message format:
[Flaunt] 2026-04-22, 11:07 ยท +128/โ32 ยท flaunt-github ยท typescript ยท 7 saves - On failure, entries persist to
pending.jsonland retry next tick. setTimeoutself-chaining prevents interval overlap.
Commands (Command Palette โ "Flaunt GitHub: โฆ")
| Command | Description |
|---|---|
| Commit Now | Force an immediate commit |
| Open Dashboard | Open the webview dashboard |
| Show Metrics (log) | Text metrics dump to the output channel |
| Pause Tracking / Resume | Stop committing without uninstalling |
| Refresh GitHub Auth | Clear Secret Storage and re-authenticate |
| Reset Consent Prompt | Show the first-run dialog again |
| Open Tracking Repo | Jump to github.com in the browser |
| Generate Profile Badge | Write badges/flaunt.svg + copy markdown |
| Export Metrics | Save JSON/CSV |
| Show Log | Open the Flaunt output channel |
Click the status bar item for a quick-pick menu of all of these.
Settings
{
"codeTracking.commitInterval": 30,
"codeTracking.commitMessagePrefix": "[Flaunt]",
"codeTracking.timeZone": "",
"codeTracking.trackFileOpens": false,
"codeTracking.ignoreGlobs": [
"**/.env", "**/.env.*", "**/secrets/**",
"**/*.pem", "**/*.key", "**/id_rsa*",
"**/credentials*", "**/.aws/**", "**/.ssh/**"
],
"codeTracking.paused": false,
"codeTracking.redactPaths": false,
"codeTracking.aiSummary.enabled": false,
"codeTracking.aiSummary.anthropicApiKey": "",
"codeTracking.aiSummary.model": "claude-haiku-4-5"
}
Fallback auth (optional)
{
"codeTracking.githubToken": "ghp_...",
"codeTracking.githubUsername": "your-username"
}
Prefer the built-in Sign in with GitHub flow. These settings exist only for headless / remote environments where VS Code's auth provider isn't available.
Privacy
- The tracking repo is private by default when Flaunt creates it.
- File paths appear in commits unless
codeTracking.redactPathsis enabled. codeTracking.ignoreGlobsfilters out sensitive paths client-side before anything is logged.- No data is sent anywhere except GitHub (your own private repo) and, if you opt in, the Anthropic API for daily summaries.
Development
npm install
npm run typecheck
npm run lint
npm test # runs mocha on pure-Node unit tests
npm run build # esbuild bundle
npm run package # vsce package
Unit tests live under src/test/*.test.ts. They compile to out-test/ and run in plain Node (no Electron harness required).
Releasing
Releases are automated through three workflows. The happy path is a single commit:
- Bump
versioninpackage.json(semver). - Commit and push to
master:git commit -am "Release v<version>" git push origin master auto-tag.ymlsees the new version, checks that no matchingv<version>tag exists, and creates the tag via the GitHub REST API (git push origin <tag>is not used โ it started failing withremote: Internal Server Error).release.ymlfires on the newv*tag and:- Verifies the tag matches
package.jsonversion. - Runs typecheck, lint, tests, build.
- Packages
flaunt-github-<version>.vsix. - Creates a GitHub Release with auto-generated notes and the
.vsixasset attached. - Publishes to Open VSX if
OVSX_PATis set. - Leaves a Marketplace reminder in the workflow log โ VS Code Marketplace is published manually:
npx vsce publish --packagePath flaunt-github-<version>.vsix
- Verifies the tag matches
You can also trigger release.yml manually from the Actions tab (workflow_dispatch) by supplying a tag.
Tag conventions
- Final releases:
v3.0.2,v3.1.0, โฆ - Pre-releases (tag contains a hyphen):
v3.1.0-beta.1โ marked as GitHub pre-release automatically.
Required repo secrets
| Secret | Purpose | Required? |
|---|---|---|
OVSX_PAT | ovsx publish (Open VSX Registry). | Optional โ step is skipped if absent. |
No Marketplace secret is used by the workflow; that step is intentionally manual.
Dependency maintenance
.github/dependabot.yml opens weekly PRs for:
- npm dependencies (grouped:
@types/*, eslint + typescript-eslint, build tools). - GitHub Actions versions (so
actions/checkout@v4โv5lands as a PR rather than silent rot).
Merge those and CI re-verifies; no manual bumps needed.
License
MIT