vibestats 1.4.2 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +14 -2
- package/dist/web/404.html +1 -1
- package/dist/web/activity.html +1 -1
- package/dist/web/activity.txt +1 -1
- package/dist/web/changelog.html +1 -1
- package/dist/web/changelog.txt +55 -53
- package/dist/web/compare/claude-code-vs-codex-cli-tracking.html +1 -1
- package/dist/web/compare/claude-code-vs-codex-cli-tracking.txt +1 -1
- package/dist/web/compare/daily-vs-monthly-ai-usage-reports.html +1 -1
- package/dist/web/compare/daily-vs-monthly-ai-usage-reports.txt +1 -1
- package/dist/web/compare/local-vs-cloud-ai-analytics.html +1 -1
- package/dist/web/compare/local-vs-cloud-ai-analytics.txt +1 -1
- package/dist/web/compare/manual-tracking-vs-vibestats.html +1 -1
- package/dist/web/compare/manual-tracking-vs-vibestats.txt +1 -1
- package/dist/web/compare/querystring-shares-vs-stored-share-pages.html +1 -1
- package/dist/web/compare/querystring-shares-vs-stored-share-pages.txt +1 -1
- package/dist/web/compare/session-breakdown-vs-model-breakdown.html +1 -1
- package/dist/web/compare/session-breakdown-vs-model-breakdown.txt +1 -1
- package/dist/web/compare/single-source-vs-combined-tracking.html +1 -1
- package/dist/web/compare/single-source-vs-combined-tracking.txt +1 -1
- package/dist/web/compare/terminal-table-vs-json-output.html +1 -1
- package/dist/web/compare/terminal-table-vs-json-output.txt +1 -1
- package/dist/web/compare/token-volume-vs-cost-estimation.html +1 -1
- package/dist/web/compare/token-volume-vs-cost-estimation.txt +1 -1
- package/dist/web/compare/wrapped-vs-activity-heatmap.html +1 -1
- package/dist/web/compare/wrapped-vs-activity-heatmap.txt +1 -1
- package/dist/web/compare.html +1 -1
- package/dist/web/compare.txt +1 -1
- package/dist/web/dashboard/activity.html +1 -1
- package/dist/web/dashboard/activity.txt +1 -1
- package/dist/web/dashboard/usage.html +1 -1
- package/dist/web/dashboard/usage.txt +1 -1
- package/dist/web/dashboard/wrapped.html +1 -1
- package/dist/web/dashboard/wrapped.txt +1 -1
- package/dist/web/dashboard.html +1 -1
- package/dist/web/dashboard.txt +1 -1
- package/dist/web/docs/commands.html +1 -1
- package/dist/web/docs/commands.txt +1 -1
- package/dist/web/docs.html +1 -1
- package/dist/web/docs.txt +1 -1
- package/dist/web/features/ai-coding-activity-heatmap.html +1 -1
- package/dist/web/features/ai-coding-activity-heatmap.txt +1 -1
- package/dist/web/features/ai-coding-wrapped.html +1 -1
- package/dist/web/features/ai-coding-wrapped.txt +1 -1
- package/dist/web/features/claude-code-stats.html +1 -1
- package/dist/web/features/claude-code-stats.txt +1 -1
- package/dist/web/features/claude-diagnostics.html +1 -1
- package/dist/web/features/claude-diagnostics.txt +1 -1
- package/dist/web/features/codex-cli-stats.html +1 -1
- package/dist/web/features/codex-cli-stats.txt +1 -1
- package/dist/web/features/combined-ai-coding-stats.html +1 -1
- package/dist/web/features/combined-ai-coding-stats.txt +1 -1
- package/dist/web/features/json-and-automation-exports.html +1 -1
- package/dist/web/features/json-and-automation-exports.txt +1 -1
- package/dist/web/features/model-breakdown.html +1 -1
- package/dist/web/features/model-breakdown.txt +1 -1
- package/dist/web/features/privacy-first-analytics.html +1 -1
- package/dist/web/features/privacy-first-analytics.txt +1 -1
- package/dist/web/features/session-breakdown.html +1 -1
- package/dist/web/features/session-breakdown.txt +1 -1
- package/dist/web/features/share-pages.html +1 -1
- package/dist/web/features/share-pages.txt +1 -1
- package/dist/web/features/token-and-cost-tracking.html +1 -1
- package/dist/web/features/token-and-cost-tracking.txt +1 -1
- package/dist/web/features.html +1 -1
- package/dist/web/features.txt +1 -1
- package/dist/web/guides/how-to-build-ai-activity-heatmap.html +1 -1
- package/dist/web/guides/how-to-build-ai-activity-heatmap.txt +1 -1
- package/dist/web/guides/how-to-compare-model-usage.html +1 -1
- package/dist/web/guides/how-to-compare-model-usage.txt +1 -1
- package/dist/web/guides/how-to-create-ai-coding-wrapped.html +1 -1
- package/dist/web/guides/how-to-create-ai-coding-wrapped.txt +1 -1
- package/dist/web/guides/how-to-measure-ai-token-costs.html +1 -1
- package/dist/web/guides/how-to-measure-ai-token-costs.txt +1 -1
- package/dist/web/guides/how-to-read-claude-diagnostics.html +1 -1
- package/dist/web/guides/how-to-read-claude-diagnostics.txt +1 -1
- package/dist/web/guides/how-to-share-ai-coding-stats.html +1 -1
- package/dist/web/guides/how-to-share-ai-coding-stats.txt +1 -1
- package/dist/web/guides/how-to-track-claude-code-usage.html +1 -1
- package/dist/web/guides/how-to-track-claude-code-usage.txt +1 -1
- package/dist/web/guides/how-to-track-codex-cli-usage.html +1 -1
- package/dist/web/guides/how-to-track-codex-cli-usage.txt +1 -1
- package/dist/web/guides.html +1 -1
- package/dist/web/guides.txt +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +1 -1
- package/dist/web/sitemap.xml +46 -46
- package/dist/web/use-cases/ai-agencies.html +1 -1
- package/dist/web/use-cases/ai-agencies.txt +1 -1
- package/dist/web/use-cases/consultants.html +1 -1
- package/dist/web/use-cases/consultants.txt +1 -1
- package/dist/web/use-cases/engineering-managers.html +1 -1
- package/dist/web/use-cases/engineering-managers.txt +1 -1
- package/dist/web/use-cases/freelancers.html +1 -1
- package/dist/web/use-cases/freelancers.txt +1 -1
- package/dist/web/use-cases/indie-hackers.html +1 -1
- package/dist/web/use-cases/indie-hackers.txt +1 -1
- package/dist/web/use-cases/monthly-reporting.html +1 -1
- package/dist/web/use-cases/monthly-reporting.txt +1 -1
- package/dist/web/use-cases/open-source-maintainers.html +1 -1
- package/dist/web/use-cases/open-source-maintainers.txt +1 -1
- package/dist/web/use-cases/personal-retrospectives.html +1 -1
- package/dist/web/use-cases/personal-retrospectives.txt +1 -1
- package/dist/web/use-cases/researchers.html +1 -1
- package/dist/web/use-cases/researchers.txt +1 -1
- package/dist/web/use-cases/weekly-reviews.html +1 -1
- package/dist/web/use-cases/weekly-reviews.txt +1 -1
- package/dist/web/use-cases.html +1 -1
- package/dist/web/use-cases.txt +1 -1
- package/dist/web/wrapped.html +1 -1
- package/dist/web/wrapped.txt +1 -1
- package/package.json +7 -8
- /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → aQYb4B4UpDj-CZ4C2kvCF}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → aQYb4B4UpDj-CZ4C2kvCF}/_ssgManifest.js +0 -0
package/dist/web/wrapped.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--3pcP_Y7gHe02EnmTXxc9b--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/832-93b990b7ceeaa2c5.js" async=""></script><script src="/_next/static/chunks/app/wrapped/page-66b00de7736097db.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>AI Coding Wrapped | vibestats</title><meta name="description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap"/><link rel="canonical" href="https://vibestats.wolfai.dev/wrapped"/><meta property="og:title" content="AI Coding Wrapped | vibestats"/><meta property="og:description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><meta property="og:url" content="https://vibestats.wolfai.dev/wrapped"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="AI Coding Wrapped | vibestats"/><meta name="twitter:description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","name":"vibestats wrapped","description":"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.","url":"https://vibestats.wolfai.dev/wrapped","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}}</script><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] text-slate-900 px-4 py-8 md:px-8 md:py-12"><div class="mx-auto max-w-7xl"><header class="border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Vibestats Wrapped</p><h1 class="max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl">Your 2025 AI coding recap.</h1><p class="mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600">Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links.</p></header><section class="grid gap-4 lg:grid-cols-[1.15fr_0.85fr]"><article class="rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Command</p><code class="mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700">npx vibestats --wrapped</code><p class="mt-5 text-sm leading-7 text-slate-600">Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal.</p></article><article class="rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Includes</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Year-style recap for local AI coding sessions</li><li>Peak day, busiest month, and longest streak</li><li>Model breakdown across Claude-compatible sources and Codex</li><li>Optional share pages with aggregate stats only</li></ul></article></section><section class="mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/docs/commands#activity-wrapped"><strong class="block text-lg text-slate-950">Wrapped commands</strong><span class="mt-2 block text-sm leading-6 text-slate-600">See quiet mode, no-short mode, and related activity commands.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/activity"><strong class="block text-lg text-slate-950">Activity heatmaps</strong><span class="mt-2 block text-sm leading-6 text-slate-600">Pair your wrapped recap with a GitHub-style daily coding view.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/changelog"><strong class="block text-lg text-slate-950">Recent releases</strong><span class="mt-2 block text-sm leading-6 text-slate-600">Track how wrapped pages, shares, and model support have evolved.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"wrapped\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"wrapped\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"wrapped\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"10:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"832\",\"static/chunks/832-93b990b7ceeaa2c5.js\",\"772\",\"static/chunks/app/wrapped/page-66b00de7736097db.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"vibestats wrapped\\\",\\\"description\\\":\\\"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.\\\",\\\"url\\\":\\\"https://vibestats.wolfai.dev/wrapped\\\",\\\"isPartOf\\\":{\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"vibestats\\\",\\\"url\\\":\\\"https://vibestats.wolfai.dev/\\\"}}\"}}],[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] text-slate-900 px-4 py-8 md:px-8 md:py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Vibestats Wrapped\"}],[\"$\",\"h1\",null,{\"className\":\"max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl\",\"children\":\"Your 2025 AI coding recap.\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600\",\"children\":\"Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links.\"}]]}],[[\"$\",\"section\",null,{\"className\":\"grid gap-4 lg:grid-cols-[1.15fr_0.85fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Command\"}],[\"$\",\"code\",null,{\"className\":\"mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-sm leading-7 text-slate-600\",\"children\":\"Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal.\"}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Includes\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Year-style recap for local AI coding sessions\",{\"children\":\"Year-style recap for local AI coding sessions\"}],[\"$\",\"li\",\"Peak day, busiest month, and longest streak\",{\"children\":\"Peak day, busiest month, and longest streak\"}],[\"$\",\"li\",\"Model breakdown across Claude-compatible sources and Codex\",{\"children\":\"Model breakdown across Claude-compatible sources and Codex\"}],[\"$\",\"li\",\"Optional share pages with aggregate stats only\",{\"children\":\"Optional share pages with aggregate stats only\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/docs/commands#activity-wrapped\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Wrapped commands\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"See quiet mode, no-short mode, and related activity commands.\"}]]}],\"$L11\",\"$L12\"]}]}]]]}]}]]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/activity\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Activity heatmaps\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"Pair your wrapped recap with a GitHub-style daily coding view.\"}]]}]\n12:[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/changelog\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Recent releases\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"Track how wrapped pages, shares, and model support have evolved.\"}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/wrapped\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/wrapped\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--aQYb4B4UpDj_CZ4C2kvCF--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/832-93b990b7ceeaa2c5.js" async=""></script><script src="/_next/static/chunks/app/wrapped/page-66b00de7736097db.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>AI Coding Wrapped | vibestats</title><meta name="description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap"/><link rel="canonical" href="https://vibestats.wolfai.dev/wrapped"/><meta property="og:title" content="AI Coding Wrapped | vibestats"/><meta property="og:description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><meta property="og:url" content="https://vibestats.wolfai.dev/wrapped"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="AI Coding Wrapped | vibestats"/><meta name="twitter:description" content="Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","name":"vibestats wrapped","description":"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.","url":"https://vibestats.wolfai.dev/wrapped","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}}</script><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] text-slate-900 px-4 py-8 md:px-8 md:py-12"><div class="mx-auto max-w-7xl"><header class="border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Vibestats Wrapped</p><h1 class="max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl">Your 2025 AI coding recap.</h1><p class="mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600">Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links.</p></header><section class="grid gap-4 lg:grid-cols-[1.15fr_0.85fr]"><article class="rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Command</p><code class="mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700">npx vibestats --wrapped</code><p class="mt-5 text-sm leading-7 text-slate-600">Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal.</p></article><article class="rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Includes</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Year-style recap for local AI coding sessions</li><li>Peak day, busiest month, and longest streak</li><li>Model breakdown across Claude-compatible sources and Codex</li><li>Optional share pages with aggregate stats only</li></ul></article></section><section class="mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/docs/commands#activity-wrapped"><strong class="block text-lg text-slate-950">Wrapped commands</strong><span class="mt-2 block text-sm leading-6 text-slate-600">See quiet mode, no-short mode, and related activity commands.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/activity"><strong class="block text-lg text-slate-950">Activity heatmaps</strong><span class="mt-2 block text-sm leading-6 text-slate-600">Pair your wrapped recap with a GitHub-style daily coding view.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white" href="/changelog"><strong class="block text-lg text-slate-950">Recent releases</strong><span class="mt-2 block text-sm leading-6 text-slate-600">Track how wrapped pages, shares, and model support have evolved.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"aQYb4B4UpDj-CZ4C2kvCF\",\"p\":\"\",\"c\":[\"\",\"wrapped\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"wrapped\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"wrapped\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"10:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"832\",\"static/chunks/832-93b990b7ceeaa2c5.js\",\"772\",\"static/chunks/app/wrapped/page-66b00de7736097db.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"vibestats wrapped\\\",\\\"description\\\":\\\"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.\\\",\\\"url\\\":\\\"https://vibestats.wolfai.dev/wrapped\\\",\\\"isPartOf\\\":{\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"vibestats\\\",\\\"url\\\":\\\"https://vibestats.wolfai.dev/\\\"}}\"}}],[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] text-slate-900 px-4 py-8 md:px-8 md:py-12\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Vibestats Wrapped\"}],[\"$\",\"h1\",null,{\"className\":\"max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl\",\"children\":\"Your 2025 AI coding recap.\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600\",\"children\":\"Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links.\"}]]}],[[\"$\",\"section\",null,{\"className\":\"grid gap-4 lg:grid-cols-[1.15fr_0.85fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Command\"}],[\"$\",\"code\",null,{\"className\":\"mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-sm leading-7 text-slate-600\",\"children\":\"Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal.\"}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Includes\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Year-style recap for local AI coding sessions\",{\"children\":\"Year-style recap for local AI coding sessions\"}],[\"$\",\"li\",\"Peak day, busiest month, and longest streak\",{\"children\":\"Peak day, busiest month, and longest streak\"}],[\"$\",\"li\",\"Model breakdown across Claude-compatible sources and Codex\",{\"children\":\"Model breakdown across Claude-compatible sources and Codex\"}],[\"$\",\"li\",\"Optional share pages with aggregate stats only\",{\"children\":\"Optional share pages with aggregate stats only\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/docs/commands#activity-wrapped\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Wrapped commands\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"See quiet mode, no-short mode, and related activity commands.\"}]]}],\"$L11\",\"$L12\"]}]}]]]}]}]]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/activity\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Activity heatmaps\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"Pair your wrapped recap with a GitHub-style daily coding view.\"}]]}]\n12:[\"$\",\"$L10\",null,{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white\",\"href\":\"/changelog\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-lg text-slate-950\",\"children\":\"Recent releases\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block text-sm leading-6 text-slate-600\",\"children\":\"Track how wrapped pages, shares, and model support have evolved.\"}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code wrapped,Codex wrapped,AI coding wrapped,developer yearly recap\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/wrapped\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/wrapped\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"AI Coding Wrapped | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Generate a vibestats wrapped summary for Claude Code and Codex CLI usage, including streaks, total tokens, cost estimates, and model mix.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
package/dist/web/wrapped.txt
CHANGED
|
@@ -9,7 +9,7 @@ c:I[496,[],"MetadataBoundary"]
|
|
|
9
9
|
d:"$Sreact.suspense"
|
|
10
10
|
f:I[2207,[],""]
|
|
11
11
|
:HL["/_next/static/css/335de1248158d380.css","style"]
|
|
12
|
-
0:{"P":null,"b":"
|
|
12
|
+
0:{"P":null,"b":"aQYb4B4UpDj-CZ4C2kvCF","p":"","c":["","wrapped"],"i":false,"f":[[["",{"children":["wrapped",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/335de1248158d380.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","head",null,{"children":[["$","$L2",null,{"id":"wolf-analytics-config","strategy":"beforeInteractive","children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};"}],["$","$L2",null,{"id":"wolf-analytics-script","src":"https://analytics.wolfai.dev/wolf-analytics.min.js","strategy":"beforeInteractive"}]]}],["$","body",null,{"className":"antialiased min-h-screen bg-background text-foreground","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":["wrapped",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L5",null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
|
|
13
13
|
10:I[4816,["816","static/chunks/816-8960921093d57453.js","832","static/chunks/832-93b990b7ceeaa2c5.js","772","static/chunks/app/wrapped/page-66b00de7736097db.js"],""]
|
|
14
14
|
5:[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"vibestats wrapped\",\"description\":\"Wrapped summaries for Claude Code and Codex CLI usage with streaks, totals, model mix, and optional share pages.\",\"url\":\"https://vibestats.wolfai.dev/wrapped\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}}"}}],["$","main",null,{"className":"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] text-slate-900 px-4 py-8 md:px-8 md:py-12","children":["$","div",null,{"className":"mx-auto max-w-7xl","children":[["$","header",null,{"className":"border border-white/70 bg-white/80 shadow-[0_30px_80px_rgba(191,104,24,0.12)] backdrop-blur mb-10 rounded-[2rem] px-6 py-8 md:px-10","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Vibestats Wrapped"}],["$","h1",null,{"className":"max-w-4xl font-[family-name:var(--font-display)] leading-none text-slate-950 mt-4 text-5xl md:text-7xl","children":"Your 2025 AI coding recap."}],["$","p",null,{"className":"mt-5 text-base leading-7 md:text-lg max-w-3xl text-slate-600","children":"Turn local Claude Code and Codex CLI usage into a polished wrapped summary with streaks, totals, model mix, and optional share links."}]]}],[["$","section",null,{"className":"grid gap-4 lg:grid-cols-[1.15fr_0.85fr]","children":[["$","article",null,{"className":"rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Command"}],["$","code",null,{"className":"mt-4 block rounded-[1.4rem] bg-slate-100 px-5 py-4 text-sm text-slate-700","children":"npx vibestats --wrapped"}],["$","p",null,{"className":"mt-5 text-sm leading-7 text-slate-600","children":"Wrapped uses local aggregate stats to build a shareable year-in-review page. Quiet mode returns the URL only, while the standard output shows the report directly in the terminal."}]]}],["$","article",null,{"className":"rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Includes"}],["$","ul",null,{"className":"mt-4 space-y-3 text-sm leading-7 text-slate-600","children":[["$","li","Year-style recap for local AI coding sessions",{"children":"Year-style recap for local AI coding sessions"}],["$","li","Peak day, busiest month, and longest streak",{"children":"Peak day, busiest month, and longest streak"}],["$","li","Model breakdown across Claude-compatible sources and Codex",{"children":"Model breakdown across Claude-compatible sources and Codex"}],["$","li","Optional share pages with aggregate stats only",{"children":"Optional share pages with aggregate stats only"}]]}]]}]]}],["$","section",null,{"className":"mt-6 rounded-[2rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":["$","div",null,{"className":"grid gap-4 md:grid-cols-3","children":[["$","$L10",null,{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white","href":"/docs/commands#activity-wrapped","children":[["$","strong",null,{"className":"block text-lg text-slate-950","children":"Wrapped commands"}],["$","span",null,{"className":"mt-2 block text-sm leading-6 text-slate-600","children":"See quiet mode, no-short mode, and related activity commands."}]]}],"$L11","$L12"]}]}]]]}]}]]
|
|
15
15
|
11:["$","$L10",null,{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 transition hover:border-orange-300 hover:bg-white","href":"/activity","children":[["$","strong",null,{"className":"block text-lg text-slate-950","children":"Activity heatmaps"}],["$","span",null,{"className":"mt-2 block text-sm leading-6 text-slate-600","children":"Pair your wrapped recap with a GitHub-style daily coding view."}]]}]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibestats",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.4",
|
|
4
4
|
"description": "AI coding stats - usage tracking and annual wrapped for Claude Code & Codex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,12 +18,6 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
|
-
"scripts": {
|
|
22
|
-
"dev": "tsx src/index.ts",
|
|
23
|
-
"build": "pnpm --filter web build:static && tsup src/index.ts --format esm --dts --clean --shims && rm -rf dist/web && cp -R ../web/.next-static dist/web",
|
|
24
|
-
"test": "tsx --test \"src/*.test.ts\" \"src/**/*.test.ts\"",
|
|
25
|
-
"prepublishOnly": "pnpm build && node ../../scripts/validate-release-metadata.mjs"
|
|
26
|
-
},
|
|
27
21
|
"keywords": [
|
|
28
22
|
"claude",
|
|
29
23
|
"claude-code",
|
|
@@ -51,5 +45,10 @@
|
|
|
51
45
|
},
|
|
52
46
|
"engines": {
|
|
53
47
|
"node": ">=18.0.0"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"dev": "tsx src/index.ts",
|
|
51
|
+
"build": "pnpm --filter web build:static && tsup src/index.ts --format esm --dts --clean --shims && rm -rf dist/web && cp -R ../web/.next-static dist/web",
|
|
52
|
+
"test": "tsx --test \"src/*.test.ts\" \"src/**/*.test.ts\""
|
|
54
53
|
}
|
|
55
|
-
}
|
|
54
|
+
}
|
/package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → aQYb4B4UpDj-CZ4C2kvCF}/_buildManifest.js
RENAMED
|
File without changes
|
/package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → aQYb4B4UpDj-CZ4C2kvCF}/_ssgManifest.js
RENAMED
|
File without changes
|