vibestats 1.3.13 → 1.4.1

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.
Files changed (159) hide show
  1. package/README.md +15 -3
  2. package/dist/index.js +1010 -199
  3. package/dist/web/404.html +1 -0
  4. package/dist/web/_next/static/chunks/231.de8a9ee791ed9eef.js +1 -0
  5. package/dist/web/_next/static/chunks/498-74a3a367cb8442f0.js +1 -0
  6. package/dist/web/_next/static/chunks/562.a5731acd5543100e.js +1 -0
  7. package/dist/web/_next/static/chunks/816-8960921093d57453.js +1 -0
  8. package/dist/web/_next/static/chunks/832-93b990b7ceeaa2c5.js +1 -0
  9. package/dist/web/_next/static/chunks/971-0ab6a23b2af361a6.js +1 -0
  10. package/dist/web/_next/static/chunks/app/_not-found/page-91f35a114767b957.js +1 -0
  11. package/dist/web/_next/static/chunks/app/activity/[slug]/page-bd4706aecd453508.js +1 -0
  12. package/dist/web/_next/static/chunks/app/activity/page-5d0587c1d5910e68.js +1 -0
  13. package/dist/web/_next/static/chunks/app/changelog/page-5d0587c1d5910e68.js +1 -0
  14. package/dist/web/_next/static/chunks/app/compare/[slug]/page-5d0587c1d5910e68.js +1 -0
  15. package/dist/web/_next/static/chunks/app/compare/page-5d0587c1d5910e68.js +1 -0
  16. package/dist/web/_next/static/chunks/app/dashboard/activity/page-e84049538e03061e.js +1 -0
  17. package/dist/web/_next/static/chunks/app/dashboard/layout-bd4706aecd453508.js +1 -0
  18. package/dist/web/_next/static/chunks/app/dashboard/page-4834f263664e8663.js +1 -0
  19. package/dist/web/_next/static/chunks/app/dashboard/usage/page-b42b457b8fd3865c.js +1 -0
  20. package/dist/web/_next/static/chunks/app/dashboard/wrapped/page-268dced4ee2726f7.js +1 -0
  21. package/dist/web/_next/static/chunks/app/docs/commands/page-5d0587c1d5910e68.js +1 -0
  22. package/dist/web/_next/static/chunks/app/docs/page-5d0587c1d5910e68.js +1 -0
  23. package/dist/web/_next/static/chunks/app/features/[slug]/page-5d0587c1d5910e68.js +1 -0
  24. package/dist/web/_next/static/chunks/app/features/page-5d0587c1d5910e68.js +1 -0
  25. package/dist/web/_next/static/chunks/app/guides/[slug]/page-5d0587c1d5910e68.js +1 -0
  26. package/dist/web/_next/static/chunks/app/guides/page-5d0587c1d5910e68.js +1 -0
  27. package/dist/web/_next/static/chunks/app/images/[...slug]/route-bd4706aecd453508.js +1 -0
  28. package/dist/web/_next/static/chunks/app/layout-6ebd9b17af55ec02.js +1 -0
  29. package/dist/web/_next/static/chunks/app/page-dfb7bbdb5999dc75.js +1 -0
  30. package/dist/web/_next/static/chunks/app/robots.txt/route-bd4706aecd453508.js +1 -0
  31. package/dist/web/_next/static/chunks/app/s/[slug]/route-bd4706aecd453508.js +1 -0
  32. package/dist/web/_next/static/chunks/app/sitemap.xml/route-bd4706aecd453508.js +1 -0
  33. package/dist/web/_next/static/chunks/app/usage/[slug]/page-bd4706aecd453508.js +1 -0
  34. package/dist/web/_next/static/chunks/app/use-cases/[slug]/page-5d0587c1d5910e68.js +1 -0
  35. package/dist/web/_next/static/chunks/app/use-cases/page-5d0587c1d5910e68.js +1 -0
  36. package/dist/web/_next/static/chunks/app/wrapped/[slug]/page-bd4706aecd453508.js +1 -0
  37. package/dist/web/_next/static/chunks/app/wrapped/page-66b00de7736097db.js +1 -0
  38. package/dist/web/_next/static/chunks/c476d598-9099ed8b975ae1d6.js +1 -0
  39. package/dist/web/_next/static/chunks/framework-1c6a486f6592f084.js +1 -0
  40. package/dist/web/_next/static/chunks/main-app-6619364ab1f13fb7.js +1 -0
  41. package/dist/web/_next/static/chunks/main-f6fa273a9100cc16.js +1 -0
  42. package/dist/web/_next/static/chunks/pages/_app-55552e79b4ca5b96.js +1 -0
  43. package/dist/web/_next/static/chunks/pages/_error-da3c1b00689f457b.js +1 -0
  44. package/dist/web/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  45. package/dist/web/_next/static/chunks/webpack-175b2f5685d7557b.js +1 -0
  46. package/dist/web/_next/static/css/335de1248158d380.css +3 -0
  47. package/dist/web/_next/static/gPirvBMhpRSdtR0tsMj2H/_buildManifest.js +1 -0
  48. package/dist/web/_next/static/gPirvBMhpRSdtR0tsMj2H/_ssgManifest.js +1 -0
  49. package/dist/web/activity.html +1 -0
  50. package/dist/web/activity.txt +19 -0
  51. package/dist/web/changelog.html +1 -0
  52. package/dist/web/changelog.txt +60 -0
  53. package/dist/web/compare/claude-code-vs-codex-cli-tracking.html +1 -0
  54. package/dist/web/compare/claude-code-vs-codex-cli-tracking.txt +25 -0
  55. package/dist/web/compare/daily-vs-monthly-ai-usage-reports.html +1 -0
  56. package/dist/web/compare/daily-vs-monthly-ai-usage-reports.txt +24 -0
  57. package/dist/web/compare/local-vs-cloud-ai-analytics.html +1 -0
  58. package/dist/web/compare/local-vs-cloud-ai-analytics.txt +25 -0
  59. package/dist/web/compare/manual-tracking-vs-vibestats.html +1 -0
  60. package/dist/web/compare/manual-tracking-vs-vibestats.txt +24 -0
  61. package/dist/web/compare/querystring-shares-vs-stored-share-pages.html +1 -0
  62. package/dist/web/compare/querystring-shares-vs-stored-share-pages.txt +25 -0
  63. package/dist/web/compare/session-breakdown-vs-model-breakdown.html +1 -0
  64. package/dist/web/compare/session-breakdown-vs-model-breakdown.txt +25 -0
  65. package/dist/web/compare/single-source-vs-combined-tracking.html +1 -0
  66. package/dist/web/compare/single-source-vs-combined-tracking.txt +25 -0
  67. package/dist/web/compare/terminal-table-vs-json-output.html +1 -0
  68. package/dist/web/compare/terminal-table-vs-json-output.txt +24 -0
  69. package/dist/web/compare/token-volume-vs-cost-estimation.html +1 -0
  70. package/dist/web/compare/token-volume-vs-cost-estimation.txt +24 -0
  71. package/dist/web/compare/wrapped-vs-activity-heatmap.html +1 -0
  72. package/dist/web/compare/wrapped-vs-activity-heatmap.txt +25 -0
  73. package/dist/web/compare.html +1 -0
  74. package/dist/web/compare.txt +32 -0
  75. package/dist/web/dashboard/activity.html +1 -0
  76. package/dist/web/dashboard/activity.txt +20 -0
  77. package/dist/web/dashboard/usage.html +1 -0
  78. package/dist/web/dashboard/usage.txt +20 -0
  79. package/dist/web/dashboard/wrapped.html +1 -0
  80. package/dist/web/dashboard/wrapped.txt +20 -0
  81. package/dist/web/dashboard.html +1 -0
  82. package/dist/web/dashboard.txt +20 -0
  83. package/dist/web/docs/commands.html +1 -0
  84. package/dist/web/docs/commands.txt +33 -0
  85. package/dist/web/docs.html +1 -0
  86. package/dist/web/docs.txt +25 -0
  87. package/dist/web/features/ai-coding-activity-heatmap.html +1 -0
  88. package/dist/web/features/ai-coding-activity-heatmap.txt +25 -0
  89. package/dist/web/features/ai-coding-wrapped.html +1 -0
  90. package/dist/web/features/ai-coding-wrapped.txt +24 -0
  91. package/dist/web/features/claude-code-stats.html +1 -0
  92. package/dist/web/features/claude-code-stats.txt +24 -0
  93. package/dist/web/features/claude-diagnostics.html +1 -0
  94. package/dist/web/features/claude-diagnostics.txt +24 -0
  95. package/dist/web/features/codex-cli-stats.html +1 -0
  96. package/dist/web/features/codex-cli-stats.txt +24 -0
  97. package/dist/web/features/combined-ai-coding-stats.html +1 -0
  98. package/dist/web/features/combined-ai-coding-stats.txt +25 -0
  99. package/dist/web/features/json-and-automation-exports.html +1 -0
  100. package/dist/web/features/json-and-automation-exports.txt +25 -0
  101. package/dist/web/features/model-breakdown.html +1 -0
  102. package/dist/web/features/model-breakdown.txt +24 -0
  103. package/dist/web/features/privacy-first-analytics.html +1 -0
  104. package/dist/web/features/privacy-first-analytics.txt +25 -0
  105. package/dist/web/features/session-breakdown.html +1 -0
  106. package/dist/web/features/session-breakdown.txt +24 -0
  107. package/dist/web/features/share-pages.html +1 -0
  108. package/dist/web/features/share-pages.txt +24 -0
  109. package/dist/web/features/token-and-cost-tracking.html +1 -0
  110. package/dist/web/features/token-and-cost-tracking.txt +24 -0
  111. package/dist/web/features.html +1 -0
  112. package/dist/web/features.txt +33 -0
  113. package/dist/web/guides/how-to-build-ai-activity-heatmap.html +1 -0
  114. package/dist/web/guides/how-to-build-ai-activity-heatmap.txt +24 -0
  115. package/dist/web/guides/how-to-compare-model-usage.html +1 -0
  116. package/dist/web/guides/how-to-compare-model-usage.txt +24 -0
  117. package/dist/web/guides/how-to-create-ai-coding-wrapped.html +1 -0
  118. package/dist/web/guides/how-to-create-ai-coding-wrapped.txt +24 -0
  119. package/dist/web/guides/how-to-measure-ai-token-costs.html +1 -0
  120. package/dist/web/guides/how-to-measure-ai-token-costs.txt +24 -0
  121. package/dist/web/guides/how-to-read-claude-diagnostics.html +1 -0
  122. package/dist/web/guides/how-to-read-claude-diagnostics.txt +24 -0
  123. package/dist/web/guides/how-to-share-ai-coding-stats.html +1 -0
  124. package/dist/web/guides/how-to-share-ai-coding-stats.txt +24 -0
  125. package/dist/web/guides/how-to-track-claude-code-usage.html +1 -0
  126. package/dist/web/guides/how-to-track-claude-code-usage.txt +24 -0
  127. package/dist/web/guides/how-to-track-codex-cli-usage.html +1 -0
  128. package/dist/web/guides/how-to-track-codex-cli-usage.txt +24 -0
  129. package/dist/web/guides.html +1 -0
  130. package/dist/web/guides.txt +27 -0
  131. package/dist/web/index.html +1 -0
  132. package/dist/web/index.txt +23 -0
  133. package/dist/web/robots.txt +7 -0
  134. package/dist/web/sitemap.xml +279 -0
  135. package/dist/web/use-cases/ai-agencies.html +1 -0
  136. package/dist/web/use-cases/ai-agencies.txt +23 -0
  137. package/dist/web/use-cases/consultants.html +1 -0
  138. package/dist/web/use-cases/consultants.txt +23 -0
  139. package/dist/web/use-cases/engineering-managers.html +1 -0
  140. package/dist/web/use-cases/engineering-managers.txt +24 -0
  141. package/dist/web/use-cases/freelancers.html +1 -0
  142. package/dist/web/use-cases/freelancers.txt +23 -0
  143. package/dist/web/use-cases/indie-hackers.html +1 -0
  144. package/dist/web/use-cases/indie-hackers.txt +23 -0
  145. package/dist/web/use-cases/monthly-reporting.html +1 -0
  146. package/dist/web/use-cases/monthly-reporting.txt +23 -0
  147. package/dist/web/use-cases/open-source-maintainers.html +1 -0
  148. package/dist/web/use-cases/open-source-maintainers.txt +24 -0
  149. package/dist/web/use-cases/personal-retrospectives.html +1 -0
  150. package/dist/web/use-cases/personal-retrospectives.txt +24 -0
  151. package/dist/web/use-cases/researchers.html +1 -0
  152. package/dist/web/use-cases/researchers.txt +23 -0
  153. package/dist/web/use-cases/weekly-reviews.html +1 -0
  154. package/dist/web/use-cases/weekly-reviews.txt +23 -0
  155. package/dist/web/use-cases.html +1 -0
  156. package/dist/web/use-cases.txt +31 -0
  157. package/dist/web/wrapped.html +1 -0
  158. package/dist/web/wrapped.txt +20 -0
  159. package/package.json +7 -8
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><!--gPirvBMhpRSdtR0tsMj2H--><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/app/features/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>AI coding share pages | vibestats</title><meta name="description" content="Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."/><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,AI coding share pages,Claude Code share page,Codex usage share"/><link rel="canonical" href="https://vibestats.wolfai.dev/features/share-pages"/><meta property="og:title" content="AI coding share pages | vibestats"/><meta property="og:description" content="Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."/><meta property="og:url" content="https://vibestats.wolfai.dev/features/share-pages"/><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 share pages | vibestats"/><meta name="twitter:description" content="Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."/><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><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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"AI coding share pages","description":"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.","url":"https://vibestats.wolfai.dev/features/share-pages","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Features","item":"https://vibestats.wolfai.dev/features"},{"@type":"ListItem","position":3,"name":"AI coding share pages","item":"https://vibestats.wolfai.dev/features/share-pages"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can vibestats help with ai coding share pages?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is built to support ai coding share pages with local reporting, aggregate pages, and command-line workflows."}},{"@type":"Question","name":"Does this stay local?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output."}},{"@type":"Question","name":"Where should I start?","acceptedAnswer":{"@type":"Answer","text":"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/features">Features</a><span>/</span><span class="text-slate-700">AI coding share pages</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Feature</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">AI coding share pages</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Feature</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">AI coding share pages in vibestats is designed for developers who want to share results with clients, teammates, or public audiences without leaking raw chat content.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] 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">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Hosted aggregate share pages</li><li>Supports usage, wrapped, and activity reports</li><li>Better communication surface than raw command output</li></ul></article><article class="rounded-[1.8rem] 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">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --share</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --wrapped --quiet</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --activity --share --days 365</code></div></article></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">What ai coding share pages means</h2><p class="mt-4 text-sm leading-7 text-slate-600">AI coding share pages is about getting a clear, local view of AI coding activity without building custom spreadsheets or one-off scripts.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Who this is for</h2><p class="mt-4 text-sm leading-7 text-slate-600">Developers who want to share results with clients, teammates, or public audiences without leaking raw chat content.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">How vibestats handles it</h2><p class="mt-4 text-sm leading-7 text-slate-600">vibestats can turn aggregate usage data into hosted share pages for usage reports, wrapped summaries, and activity heatmaps while keeping the payload at the stats level.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">What you get back</h2><p class="mt-4 text-sm leading-7 text-slate-600">You can communicate usage, trends, and outcomes in a hosted format that is easier to review than a local terminal screenshot.</p></article></section><section class="mt-6 rounded-[1.8rem] 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">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Can vibestats help with ai coding share pages?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Yes. vibestats is built to support ai coding share pages with local reporting, aggregate pages, and command-line workflows.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Does this stay local?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Where should I start?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/features">View all <!-- -->features</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/compare/querystring-shares-vs-stored-share-pages"><span class="block font-semibold text-slate-950">compare querystring-shares-vs-stored-share-pages</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/guides/how-to-share-ai-coding-stats"><span class="block font-semibold text-slate-950">guides how-to-share-ai-coding-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/privacy-first-analytics"><span class="block font-semibold text-slate-950">features privacy-first-analytics</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</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\":\"gPirvBMhpRSdtR0tsMj2H\",\"p\":\"\",\"c\":[\"\",\"features\",\"share-pages\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"features\",{\"children\":[[\"slug\",\"share-pages\",\"d\"],{\"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\":[\"features\",[\"$\",\"$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\":[[\"slug\",\"share-pages\",\"d\"],[\"$\",\"$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]},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,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"180\",\"static/chunks/app/features/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5f7,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"AI coding share pages\",\"description\":\"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.\",\"url\":\"https://vibestats.wolfai.dev/features/share-pages\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Features\",\"item\":\"https://vibestats.wolfai.dev/features\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"AI coding share pages\",\"item\":\"https://vibestats.wolfai.dev/features/share-pages\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Can vibestats help with ai coding share pages?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. vibestats is built to support ai coding share pages with local reporting, aggregate pages, and command-line workflows.\"}},{\"@type\":\"Question\",\"name\":\"Does this stay local?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output.\"}},{\"@type\":\"Question\",\"name\":\"Where should I start?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/features\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Features\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"AI coding share pages\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"AI coding share pages\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Feature\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],\"$L12\"]}],\"$L13\"]}]]}],\"$L14\",null,null,\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"AI coding share pages in vibestats is designed for developers who want to share results with clients, teammates, or public audiences without leaking raw chat content.\"}]\n13:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] 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\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Hosted aggregate share pages\",{\"children\":\"Hosted aggregate share pages\"}],[\"$\",\"li\",\"Supports usage, wrapped, and activity reports\",{\"children\":\"Supports usage, wrapped, and activity reports\"}],[\"$\",\"li\",\"Better communication surface than raw command output\",{\"children\":\"Better communication surface than raw command output\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] 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\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats --share\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --share\"}],[\"$\",\"code\",\"npx vibestats --wrapped --quiet\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --wrapped --quiet\"}],[\"$\",\"code\",\"npx vibestats --activity --share --days 365\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --activity --share --days 365\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"What ai coding share pages means\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"What ai coding share pages means\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"AI coding share pages is about getting a clear, local view of AI coding activity without building custom spreadsheets or one-off scripts.\"}]]}],[\"$\",\"article\",\"Who this is for\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Who this is for\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Developers who want to share results with clients, teammates, or public audiences without leaking raw chat content.\"}]]}],[\"$\",\"article\",\"How vibestats handles it\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"How vibestats handles it\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"vibestats can turn aggregate usage data into hosted share pages for usage reports, wrapped summaries, and activity heatmaps while keeping the payload at the stats level.\"}]]}],[\"$\",\"article\",\"What you get back\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"What you get back\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"You can communicate usage, trends, and outcomes in a hosted format that is easier to review than a local terminal screenshot.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] 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\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Can vibestats help with ai coding share pages?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Can vibestats help with ai coding share pages?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Yes. vibestats is built to support ai coding share pages with local reporting, aggregate pages, and command-line workflows.\"}]]}],[\"$\",\"article\",\"Does this stay local?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Does this stay local?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output.\"}]]}],[\"$\",\"article\",\"Where should I start?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Where should I start?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/features\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"features\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/compare/querystring-shares-vs-stored-share-pages\",{\"href\":\"/compare/querystring-shares-vs-stored-share-pages\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"compare querystring-shares-vs-stored-share-pages\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/guides/how-to-share-ai-coding-stats\",{\"href\":\"/guides/how-to-share-ai-coding-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"guides how-to-share-ai-coding-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/privacy-first-analytics\",{\"href\":\"/features/privacy-first-analytics\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features privacy-first-analytics\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\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 share pages | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.\"}],[\"$\",\"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,AI coding share pages,Claude Code share page,Codex usage share\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/features/share-pages\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"AI coding share pages | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/features/share-pages\"}],[\"$\",\"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 share pages | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
@@ -0,0 +1,24 @@
1
+ 1:"$Sreact.fragment"
2
+ 2:I[7437,["177","static/chunks/app/layout-6ebd9b17af55ec02.js"],""]
3
+ 3:I[5965,[],""]
4
+ 4:I[3609,[],""]
5
+ 6:I[496,[],"OutletBoundary"]
6
+ 8:I[3737,[],"AsyncMetadataOutlet"]
7
+ a:I[496,[],"ViewportBoundary"]
8
+ c:I[496,[],"MetadataBoundary"]
9
+ d:"$Sreact.suspense"
10
+ f:I[2207,[],""]
11
+ :HL["/_next/static/css/335de1248158d380.css","style"]
12
+ 0:{"P":null,"b":"gPirvBMhpRSdtR0tsMj2H","p":"","c":["","features","share-pages"],"i":false,"f":[[["",{"children":["features",{"children":[["slug","share-pages","d"],{"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":["features",["$","$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":[["slug","share-pages","d"],["$","$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]},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
+ 11:I[4816,["816","static/chunks/816-8960921093d57453.js","180","static/chunks/app/features/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
14
+ 10:T5f7,[{"@context":"https://schema.org","@type":"WebPage","name":"AI coding share pages","description":"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.","url":"https://vibestats.wolfai.dev/features/share-pages","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Features","item":"https://vibestats.wolfai.dev/features"},{"@type":"ListItem","position":3,"name":"AI coding share pages","item":"https://vibestats.wolfai.dev/features/share-pages"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can vibestats help with ai coding share pages?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is built to support ai coding share pages with local reporting, aggregate pages, and command-line workflows."}},{"@type":"Question","name":"Does this stay local?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output."}},{"@type":"Question","name":"Where should I start?","acceptedAnswer":{"@type":"Answer","text":"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics."}}]}]5:["$","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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$10"}}],["$","div",null,{"className":"mx-auto max-w-7xl","children":[["$","header",null,{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-3 text-sm text-slate-500","children":[["$","$L11",null,{"href":"/","className":"transition hover:text-orange-700","children":"vibestats"}],["$","span",null,{"children":"/"}],["$","$L11",null,{"href":"/features","className":"transition hover:text-orange-700","children":"Features"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"AI coding share pages"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Feature"}],["$","h1",null,{"className":"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl","children":"AI coding share pages"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."}],["$","div",null,{"className":"mt-6 grid gap-3 md:grid-cols-3","children":[["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Intent"}],["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Feature"}]]}],["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Focus"}],"$L12"]}],"$L13"]}]]}],"$L14",null,null,"$L15","$L16","$L17"]}]]}]
15
+ 12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"AI coding share pages in vibestats is designed for developers who want to share results with clients, teammates, or public audiences without leaking raw chat content."}]
16
+ 13:["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Next step"}],["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":["$","$L11",null,{"href":"/docs/commands","className":"text-slate-900 transition hover:text-orange-700","children":"Open the command reference"}]}]]}]
17
+ 14:["$","section",null,{"className":"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]","children":[["$","article",null,{"className":"rounded-[1.8rem] 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":"Highlights"}],["$","ul",null,{"className":"mt-4 space-y-3 text-sm leading-7 text-slate-600","children":[["$","li","Hosted aggregate share pages",{"children":"Hosted aggregate share pages"}],["$","li","Supports usage, wrapped, and activity reports",{"children":"Supports usage, wrapped, and activity reports"}],["$","li","Better communication surface than raw command output",{"children":"Better communication surface than raw command output"}]]}]]}],["$","article",null,{"className":"rounded-[1.8rem] 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":"Relevant commands"}],["$","div",null,{"className":"mt-4 grid gap-3","children":[["$","code","npx vibestats --share",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --share"}],["$","code","npx vibestats --wrapped --quiet",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --wrapped --quiet"}],["$","code","npx vibestats --activity --share --days 365",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --activity --share --days 365"}]]}]]}]]}]
18
+ 15:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","What ai coding share pages means",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"What ai coding share pages means"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"AI coding share pages is about getting a clear, local view of AI coding activity without building custom spreadsheets or one-off scripts."}]]}],["$","article","Who this is for",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"Who this is for"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Developers who want to share results with clients, teammates, or public audiences without leaking raw chat content."}]]}],["$","article","How vibestats handles it",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"How vibestats handles it"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"vibestats can turn aggregate usage data into hosted share pages for usage reports, wrapped summaries, and activity heatmaps while keeping the payload at the stats level."}]]}],["$","article","What you get back",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"What you get back"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"You can communicate usage, trends, and outcomes in a hosted format that is easier to review than a local terminal screenshot."}]]}]]}]
19
+ 16:["$","section",null,{"className":"mt-6 rounded-[1.8rem] 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":"FAQ"}],["$","div",null,{"className":"mt-4 grid gap-4 md:grid-cols-2","children":[["$","article","Can vibestats help with ai coding share pages?",{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5","children":[["$","h2",null,{"className":"text-lg font-semibold text-slate-950","children":"Can vibestats help with ai coding share pages?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Yes. vibestats is built to support ai coding share pages with local reporting, aggregate pages, and command-line workflows."}]]}],["$","article","Does this stay local?",{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5","children":[["$","h2",null,{"className":"text-lg font-semibold text-slate-950","children":"Does this stay local?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output."}]]}],["$","article","Where should I start?",{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5","children":[["$","h2",null,{"className":"text-lg font-semibold text-slate-950","children":"Where should I start?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics."}]]}]]}]]}]
20
+ 17:["$","section",null,{"className":"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","div",null,{"className":"flex items-center justify-between gap-4","children":[["$","div",null,{"children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Related pages"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"Continue by intent"}]]}],["$","$L11",null,{"href":"/features","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","features"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$L11","/compare/querystring-shares-vs-stored-share-pages",{"href":"/compare/querystring-shares-vs-stored-share-pages","className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white","children":[["$","span",null,{"className":"block font-semibold text-slate-950","children":"compare querystring-shares-vs-stored-share-pages"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/guides/how-to-share-ai-coding-stats",{"href":"/guides/how-to-share-ai-coding-stats","className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white","children":[["$","span",null,{"className":"block font-semibold text-slate-950","children":"guides how-to-share-ai-coding-stats"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/features/privacy-first-analytics",{"href":"/features/privacy-first-analytics","className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white","children":[["$","span",null,{"className":"block font-semibold text-slate-950","children":"features privacy-first-analytics"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
21
+ b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
22
+ 7:null
23
+ 9:{"metadata":[["$","title","0",{"children":"AI coding share pages | vibestats"}],["$","meta","1",{"name":"description","content":"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."}],["$","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,AI coding share pages,Claude Code share page,Codex usage share"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/features/share-pages"}],["$","meta","5",{"property":"og:title","content":"AI coding share pages | vibestats"}],["$","meta","6",{"property":"og:description","content":"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/features/share-pages"}],["$","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 share pages | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses."}]],"error":null,"digest":"$undefined"}
24
+ e:"$9:metadata"
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><!--gPirvBMhpRSdtR0tsMj2H--><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/app/features/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Token and cost tracking | vibestats</title><meta name="description" content="Track input, output, cache, total token volume, and estimated cost across AI coding sessions."/><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,AI token tracking,AI coding cost tracking,Claude Code token cost report"/><link rel="canonical" href="https://vibestats.wolfai.dev/features/token-and-cost-tracking"/><meta property="og:title" content="Token and cost tracking | vibestats"/><meta property="og:description" content="Track input, output, cache, total token volume, and estimated cost across AI coding sessions."/><meta property="og:url" content="https://vibestats.wolfai.dev/features/token-and-cost-tracking"/><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="Token and cost tracking | vibestats"/><meta name="twitter:description" content="Track input, output, cache, total token volume, and estimated cost across AI coding sessions."/><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><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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Token and cost tracking","description":"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.","url":"https://vibestats.wolfai.dev/features/token-and-cost-tracking","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Features","item":"https://vibestats.wolfai.dev/features"},{"@type":"ListItem","position":3,"name":"Token and cost tracking","item":"https://vibestats.wolfai.dev/features/token-and-cost-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can vibestats help with token and cost tracking?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is built to support token and cost tracking with local reporting, aggregate pages, and command-line workflows."}},{"@type":"Question","name":"Does this stay local?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output."}},{"@type":"Question","name":"Where should I start?","acceptedAnswer":{"@type":"Answer","text":"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/features">Features</a><span>/</span><span class="text-slate-700">Token and cost tracking</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Feature</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Token and cost tracking</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Track input, output, cache, total token volume, and estimated cost across AI coding sessions.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Feature</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">Token and cost tracking in vibestats is designed for developers who need a usable token and cost tracker for ai coding workflows.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] 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">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>Input, output, cache read, and cache write visibility</li><li>Estimated cost alongside usage volume</li><li>Works across source-specific and combined views</li></ul></article><article class="rounded-[1.8rem] 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">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --total</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --last 7</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats usage all --daily</code></div></article></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">What token and cost tracking means</h2><p class="mt-4 text-sm leading-7 text-slate-600">Token and cost tracking is about getting a clear, local view of AI coding activity without building custom spreadsheets or one-off scripts.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Who this is for</h2><p class="mt-4 text-sm leading-7 text-slate-600">Developers who need a usable token and cost tracker for AI coding workflows.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">How vibestats handles it</h2><p class="mt-4 text-sm leading-7 text-slate-600">vibestats keeps token categories visible, estimates cost from the aggregated usage, and lets you compare totals across time windows, sources, and report shapes.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">What you get back</h2><p class="mt-4 text-sm leading-7 text-slate-600">You can understand usage spikes in budget terms, separate token volume from price signals, and build a better mental model for AI coding spend.</p></article></section><section class="mt-6 rounded-[1.8rem] 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">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Can vibestats help with token and cost tracking?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Yes. vibestats is built to support token and cost tracking with local reporting, aggregate pages, and command-line workflows.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Does this stay local?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Where should I start?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/features">View all <!-- -->features</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/guides/how-to-measure-ai-token-costs"><span class="block font-semibold text-slate-950">guides how-to-measure-ai-token-costs</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/compare/token-volume-vs-cost-estimation"><span class="block font-semibold text-slate-950">compare token-volume-vs-cost-estimation</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/model-breakdown"><span class="block font-semibold text-slate-950">features model-breakdown</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</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\":\"gPirvBMhpRSdtR0tsMj2H\",\"p\":\"\",\"c\":[\"\",\"features\",\"token-and-cost-tracking\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"features\",{\"children\":[[\"slug\",\"token-and-cost-tracking\",\"d\"],{\"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\":[\"features\",[\"$\",\"$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\":[[\"slug\",\"token-and-cost-tracking\",\"d\"],[\"$\",\"$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]},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,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"180\",\"static/chunks/app/features/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T615,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Token and cost tracking\",\"description\":\"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.\",\"url\":\"https://vibestats.wolfai.dev/features/token-and-cost-tracking\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Features\",\"item\":\"https://vibestats.wolfai.dev/features\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Token and cost tracking\",\"item\":\"https://vibestats.wolfai.dev/features/token-and-cost-tracking\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Can vibestats help with token and cost tracking?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. vibestats is built to support token and cost tracking with local reporting, aggregate pages, and command-line workflows.\"}},{\"@type\":\"Question\",\"name\":\"Does this stay local?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output.\"}},{\"@type\":\"Question\",\"name\":\"Where should I start?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/features\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Features\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Token and cost tracking\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Token and cost tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Feature\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],\"$L12\"]}],\"$L13\"]}]]}],\"$L14\",null,null,\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Token and cost tracking in vibestats is designed for developers who need a usable token and cost tracker for ai coding workflows.\"}]\n13:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] 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\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"Input, output, cache read, and cache write visibility\",{\"children\":\"Input, output, cache read, and cache write visibility\"}],[\"$\",\"li\",\"Estimated cost alongside usage volume\",{\"children\":\"Estimated cost alongside usage volume\"}],[\"$\",\"li\",\"Works across source-specific and combined views\",{\"children\":\"Works across source-specific and combined views\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] 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\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats --total\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --total\"}],[\"$\",\"code\",\"npx vibestats --last 7\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --last 7\"}],[\"$\",\"code\",\"npx vibestats usage all --daily\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats usage all --daily\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"What token and cost tracking means\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"What token and cost tracking means\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Token and cost tracking is about getting a clear, local view of AI coding activity without building custom spreadsheets or one-off scripts.\"}]]}],[\"$\",\"article\",\"Who this is for\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Who this is for\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Developers who need a usable token and cost tracker for AI coding workflows.\"}]]}],[\"$\",\"article\",\"How vibestats handles it\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"How vibestats handles it\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"vibestats keeps token categories visible, estimates cost from the aggregated usage, and lets you compare totals across time windows, sources, and report shapes.\"}]]}],[\"$\",\"article\",\"What you get back\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"What you get back\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"You can understand usage spikes in budget terms, separate token volume from price signals, and build a better mental model for AI coding spend.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] 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\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Can vibestats help with token and cost tracking?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Can vibestats help with token and cost tracking?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Yes. vibestats is built to support token and cost tracking with local reporting, aggregate pages, and command-line workflows.\"}]]}],[\"$\",\"article\",\"Does this stay local?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Does this stay local?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output.\"}]]}],[\"$\",\"article\",\"Where should I start?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Where should I start?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/features\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"features\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/guides/how-to-measure-ai-token-costs\",{\"href\":\"/guides/how-to-measure-ai-token-costs\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"guides how-to-measure-ai-token-costs\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/compare/token-volume-vs-cost-estimation\",{\"href\":\"/compare/token-volume-vs-cost-estimation\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"compare token-volume-vs-cost-estimation\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/model-breakdown\",{\"href\":\"/features/model-breakdown\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features model-breakdown\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\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\":\"Token and cost tracking | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.\"}],[\"$\",\"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,AI token tracking,AI coding cost tracking,Claude Code token cost report\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/features/token-and-cost-tracking\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Token and cost tracking | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/features/token-and-cost-tracking\"}],[\"$\",\"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\":\"Token and cost tracking | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
@@ -0,0 +1,24 @@
1
+ 1:"$Sreact.fragment"
2
+ 2:I[7437,["177","static/chunks/app/layout-6ebd9b17af55ec02.js"],""]
3
+ 3:I[5965,[],""]
4
+ 4:I[3609,[],""]
5
+ 6:I[496,[],"OutletBoundary"]
6
+ 8:I[3737,[],"AsyncMetadataOutlet"]
7
+ a:I[496,[],"ViewportBoundary"]
8
+ c:I[496,[],"MetadataBoundary"]
9
+ d:"$Sreact.suspense"
10
+ f:I[2207,[],""]
11
+ :HL["/_next/static/css/335de1248158d380.css","style"]
12
+ 0:{"P":null,"b":"gPirvBMhpRSdtR0tsMj2H","p":"","c":["","features","token-and-cost-tracking"],"i":false,"f":[[["",{"children":["features",{"children":[["slug","token-and-cost-tracking","d"],{"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":["features",["$","$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":[["slug","token-and-cost-tracking","d"],["$","$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]},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
+ 11:I[4816,["816","static/chunks/816-8960921093d57453.js","180","static/chunks/app/features/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
14
+ 10:T615,[{"@context":"https://schema.org","@type":"WebPage","name":"Token and cost tracking","description":"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.","url":"https://vibestats.wolfai.dev/features/token-and-cost-tracking","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Features","item":"https://vibestats.wolfai.dev/features"},{"@type":"ListItem","position":3,"name":"Token and cost tracking","item":"https://vibestats.wolfai.dev/features/token-and-cost-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Can vibestats help with token and cost tracking?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is built to support token and cost tracking with local reporting, aggregate pages, and command-line workflows."}},{"@type":"Question","name":"Does this stay local?","acceptedAnswer":{"@type":"Answer","text":"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output."}},{"@type":"Question","name":"Where should I start?","acceptedAnswer":{"@type":"Answer","text":"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics."}}]}]5:["$","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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$10"}}],["$","div",null,{"className":"mx-auto max-w-7xl","children":[["$","header",null,{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-3 text-sm text-slate-500","children":[["$","$L11",null,{"href":"/","className":"transition hover:text-orange-700","children":"vibestats"}],["$","span",null,{"children":"/"}],["$","$L11",null,{"href":"/features","className":"transition hover:text-orange-700","children":"Features"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"Token and cost tracking"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Feature"}],["$","h1",null,{"className":"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl","children":"Token and cost tracking"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Track input, output, cache, total token volume, and estimated cost across AI coding sessions."}],["$","div",null,{"className":"mt-6 grid gap-3 md:grid-cols-3","children":[["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Intent"}],["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Feature"}]]}],["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Focus"}],"$L12"]}],"$L13"]}]]}],"$L14",null,null,"$L15","$L16","$L17"]}]]}]
15
+ 12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Token and cost tracking in vibestats is designed for developers who need a usable token and cost tracker for ai coding workflows."}]
16
+ 13:["$","div",null,{"className":"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4","children":[["$","div",null,{"className":"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Next step"}],["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":["$","$L11",null,{"href":"/docs/commands","className":"text-slate-900 transition hover:text-orange-700","children":"Open the command reference"}]}]]}]
17
+ 14:["$","section",null,{"className":"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]","children":[["$","article",null,{"className":"rounded-[1.8rem] 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":"Highlights"}],["$","ul",null,{"className":"mt-4 space-y-3 text-sm leading-7 text-slate-600","children":[["$","li","Input, output, cache read, and cache write visibility",{"children":"Input, output, cache read, and cache write visibility"}],["$","li","Estimated cost alongside usage volume",{"children":"Estimated cost alongside usage volume"}],["$","li","Works across source-specific and combined views",{"children":"Works across source-specific and combined views"}]]}]]}],["$","article",null,{"className":"rounded-[1.8rem] 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":"Relevant commands"}],["$","div",null,{"className":"mt-4 grid gap-3","children":[["$","code","npx vibestats --total",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --total"}],["$","code","npx vibestats --last 7",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --last 7"}],["$","code","npx vibestats usage all --daily",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats usage all --daily"}]]}]]}]]}]
18
+ 15:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","What token and cost tracking means",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"What token and cost tracking means"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Token and cost tracking is about getting a clear, local view of AI coding activity without building custom spreadsheets or one-off scripts."}]]}],["$","article","Who this is for",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"Who this is for"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Developers who need a usable token and cost tracker for AI coding workflows."}]]}],["$","article","How vibestats handles it",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"How vibestats handles it"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"vibestats keeps token categories visible, estimates cost from the aggregated usage, and lets you compare totals across time windows, sources, and report shapes."}]]}],["$","article","What you get back",{"className":"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","h2",null,{"className":"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"What you get back"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"You can understand usage spikes in budget terms, separate token volume from price signals, and build a better mental model for AI coding spend."}]]}]]}]
19
+ 16:["$","section",null,{"className":"mt-6 rounded-[1.8rem] 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":"FAQ"}],["$","div",null,{"className":"mt-4 grid gap-4 md:grid-cols-2","children":[["$","article","Can vibestats help with token and cost tracking?",{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5","children":[["$","h2",null,{"className":"text-lg font-semibold text-slate-950","children":"Can vibestats help with token and cost tracking?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Yes. vibestats is built to support token and cost tracking with local reporting, aggregate pages, and command-line workflows."}]]}],["$","article","Does this stay local?",{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5","children":[["$","h2",null,{"className":"text-lg font-semibold text-slate-950","children":"Does this stay local?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Yes. vibestats is local-first. Prompts and responses stay out of the hosted pages unless you intentionally publish aggregate share output."}]]}],["$","article","Where should I start?",{"className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5","children":[["$","h2",null,{"className":"text-lg font-semibold text-slate-950","children":"Where should I start?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Start with the command reference, then use the related links below to jump into wrapped reports, activity heatmaps, share pages, or diagnostics."}]]}]]}]]}]
20
+ 17:["$","section",null,{"className":"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]","children":[["$","div",null,{"className":"flex items-center justify-between gap-4","children":[["$","div",null,{"children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Related pages"}],["$","h2",null,{"className":"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950","children":"Continue by intent"}]]}],["$","$L11",null,{"href":"/features","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","features"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$L11","/guides/how-to-measure-ai-token-costs",{"href":"/guides/how-to-measure-ai-token-costs","className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white","children":[["$","span",null,{"className":"block font-semibold text-slate-950","children":"guides how-to-measure-ai-token-costs"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/compare/token-volume-vs-cost-estimation",{"href":"/compare/token-volume-vs-cost-estimation","className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white","children":[["$","span",null,{"className":"block font-semibold text-slate-950","children":"compare token-volume-vs-cost-estimation"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/features/model-breakdown",{"href":"/features/model-breakdown","className":"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white","children":[["$","span",null,{"className":"block font-semibold text-slate-950","children":"features model-breakdown"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
21
+ b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
22
+ 7:null
23
+ 9:{"metadata":[["$","title","0",{"children":"Token and cost tracking | vibestats"}],["$","meta","1",{"name":"description","content":"Track input, output, cache, total token volume, and estimated cost across AI coding sessions."}],["$","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,AI token tracking,AI coding cost tracking,Claude Code token cost report"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/features/token-and-cost-tracking"}],["$","meta","5",{"property":"og:title","content":"Token and cost tracking | vibestats"}],["$","meta","6",{"property":"og:description","content":"Track input, output, cache, total token volume, and estimated cost across AI coding sessions."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/features/token-and-cost-tracking"}],["$","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":"Token and cost tracking | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Track input, output, cache, total token volume, and estimated cost across AI coding sessions."}]],"error":null,"digest":"$undefined"}
24
+ e:"$9:metadata"
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><!--gPirvBMhpRSdtR0tsMj2H--><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/app/features/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Features | vibestats</title><meta name="description" content="Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics."/><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,AI coding analytics features,Claude Code stats features,Codex CLI analytics features"/><link rel="canonical" href="https://vibestats.wolfai.dev/features"/><meta property="og:title" content="Features | vibestats"/><meta property="og:description" content="Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics."/><meta property="og:url" content="https://vibestats.wolfai.dev/features"/><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="Features | vibestats"/><meta name="twitter:description" content="Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics."/><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><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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">{"@context":"https://schema.org","@type":"CollectionPage","name":"AI coding analytics features","description":"Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.","url":"https://vibestats.wolfai.dev/features","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Claude Code stats","url":"https://vibestats.wolfai.dev/features/claude-code-stats"},{"@type":"ListItem","position":2,"name":"Codex CLI stats","url":"https://vibestats.wolfai.dev/features/codex-cli-stats"},{"@type":"ListItem","position":3,"name":"Combined AI coding stats","url":"https://vibestats.wolfai.dev/features/combined-ai-coding-stats"},{"@type":"ListItem","position":4,"name":"AI coding wrapped","url":"https://vibestats.wolfai.dev/features/ai-coding-wrapped"},{"@type":"ListItem","position":5,"name":"AI coding activity heatmap","url":"https://vibestats.wolfai.dev/features/ai-coding-activity-heatmap"},{"@type":"ListItem","position":6,"name":"Token and cost tracking","url":"https://vibestats.wolfai.dev/features/token-and-cost-tracking"},{"@type":"ListItem","position":7,"name":"Model breakdown","url":"https://vibestats.wolfai.dev/features/model-breakdown"},{"@type":"ListItem","position":8,"name":"Session breakdown","url":"https://vibestats.wolfai.dev/features/session-breakdown"},{"@type":"ListItem","position":9,"name":"AI coding share pages","url":"https://vibestats.wolfai.dev/features/share-pages"},{"@type":"ListItem","position":10,"name":"Privacy-first analytics","url":"https://vibestats.wolfai.dev/features/privacy-first-analytics"},{"@type":"ListItem","position":11,"name":"Claude diagnostics","url":"https://vibestats.wolfai.dev/features/claude-diagnostics"},{"@type":"ListItem","position":12,"name":"JSON and automation exports","url":"https://vibestats.wolfai.dev/features/json-and-automation-exports"}]}}</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Feature library</p><h1 class="mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">AI coding analytics features</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.</p><div class="mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">12<!-- --> pages</strong><span class="mt-2 block">Built around real vibestats workflows instead of generic SEO filler.</span></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">Internal links</strong><span class="mt-2 block">Each page connects to related features, guides, and use cases.</span></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">Search intent</strong><span class="mt-2 block">Every page is focused on one product or reporting question.</span></div></div></header><section class="mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3"><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/claude-code-stats"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Claude Code stats</h2><p class="mt-4 text-sm leading-7 text-slate-600">Track Claude Code usage locally with daily, monthly, session, model, token, and cost reports.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Daily, monthly, total, session, and model views</li><li>Token and estimated cost reporting</li><li>Works with wrapped pages and activity heatmaps</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/codex-cli-stats"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Codex CLI stats</h2><p class="mt-4 text-sm leading-7 text-slate-600">Track OpenAI Codex CLI usage locally with token, cost, session, model, and date-based reports.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Dedicated Codex source mode</li><li>Daily, monthly, total, session, and model reporting</li><li>Fits side-by-side with combined and wrapped views</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/combined-ai-coding-stats"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Combined AI coding stats</h2><p class="mt-4 text-sm leading-7 text-slate-600">Merge Claude-compatible and Codex CLI usage into one view for daily reporting, wrapped summaries, and activity analysis.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>One combined scope across supported local sources</li><li>Useful for retrospectives and weekly reporting</li><li>Pairs well with activity and wrapped pages</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/ai-coding-wrapped"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">AI coding wrapped</h2><p class="mt-4 text-sm leading-7 text-slate-600">Create a wrapped-style annual recap for Claude Code and Codex CLI usage with totals, streaks, and model mix.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Year-style recap with totals and streaks</li><li>Readable for both solo devs and teams</li><li>Backed by local aggregate data instead of prompts</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/ai-coding-activity-heatmap"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">AI coding activity heatmap</h2><p class="mt-4 text-sm leading-7 text-slate-600">Generate GitHub-style activity heatmaps for Claude Code and Codex CLI usage with streaks and rolling totals.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>GitHub-style calendar view</li><li>Recent totals and streaks in the same surface</li><li>Useful for weekly and monthly retrospectives</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/token-and-cost-tracking"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Token and cost tracking</h2><p class="mt-4 text-sm leading-7 text-slate-600">Track input, output, cache, total token volume, and estimated cost across AI coding sessions.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Input, output, cache read, and cache write visibility</li><li>Estimated cost alongside usage volume</li><li>Works across source-specific and combined views</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/model-breakdown"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Model breakdown</h2><p class="mt-4 text-sm leading-7 text-slate-600">Inspect which Claude-compatible or Codex models dominated your usage and how their token share changed over time.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Group usage by model instead of date</li><li>Useful for stack reviews and experimentation</li><li>Pairs well with wrapped summaries and cost views</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/session-breakdown"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Session breakdown</h2><p class="mt-4 text-sm leading-7 text-slate-600">Inspect AI coding usage per session so you can separate heavy sessions from routine daily activity.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Per-session reporting</li><li>Useful for debugging spikes and outliers</li><li>Supports main-session vs subagent-aware workflows</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/share-pages"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">AI coding share pages</h2><p class="mt-4 text-sm leading-7 text-slate-600">Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Hosted aggregate share pages</li><li>Supports usage, wrapped, and activity reports</li><li>Better communication surface than raw command output</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/privacy-first-analytics"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Privacy-first analytics</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use local-first AI coding analytics without sending prompts, responses, or project paths to a hosted dashboard.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Local-first reporting model</li><li>Aggregate shares instead of raw transcripts</li><li>Fits privacy-sensitive development workflows</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/claude-diagnostics"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Claude diagnostics</h2><p class="mt-4 text-sm leading-7 text-slate-600">Inspect local Claude account state, cache freshness, and usage-data limit signals without external API access.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Reads local Claude state only when requested</li><li>Useful for debugging and limit visibility</li><li>Complements session and usage reports</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/features/json-and-automation-exports"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Feature</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">JSON and automation exports</h2><p class="mt-4 text-sm leading-7 text-slate-600">Generate machine-readable vibestats output for dashboards, automations, scripts, and downstream analytics.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Machine-readable JSON output</li><li>Fits shell scripts and downstream systems</li><li>Useful for custom dashboards and weekly reports</li></ul></a></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,[],\"\"]\n9:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n5:T79b,"])</script><script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"CollectionPage\",\"name\":\"AI coding analytics features\",\"description\":\"Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.\",\"url\":\"https://vibestats.wolfai.dev/features\",\"mainEntity\":{\"@type\":\"ItemList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Claude Code stats\",\"url\":\"https://vibestats.wolfai.dev/features/claude-code-stats\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Codex CLI stats\",\"url\":\"https://vibestats.wolfai.dev/features/codex-cli-stats\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Combined AI coding stats\",\"url\":\"https://vibestats.wolfai.dev/features/combined-ai-coding-stats\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"AI coding wrapped\",\"url\":\"https://vibestats.wolfai.dev/features/ai-coding-wrapped\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"AI coding activity heatmap\",\"url\":\"https://vibestats.wolfai.dev/features/ai-coding-activity-heatmap\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Token and cost tracking\",\"url\":\"https://vibestats.wolfai.dev/features/token-and-cost-tracking\"},{\"@type\":\"ListItem\",\"position\":7,\"name\":\"Model breakdown\",\"url\":\"https://vibestats.wolfai.dev/features/model-breakdown\"},{\"@type\":\"ListItem\",\"position\":8,\"name\":\"Session breakdown\",\"url\":\"https://vibestats.wolfai.dev/features/session-breakdown\"},{\"@type\":\"ListItem\",\"position\":9,\"name\":\"AI coding share pages\",\"url\":\"https://vibestats.wolfai.dev/features/share-pages\"},{\"@type\":\"ListItem\",\"position\":10,\"name\":\"Privacy-first analytics\",\"url\":\"https://vibestats.wolfai.dev/features/privacy-first-analytics\"},{\"@type\":\"ListItem\",\"position\":11,\"name\":\"Claude diagnostics\",\"url\":\"https://vibestats.wolfai.dev/features/claude-diagnostics\"},{\"@type\":\"ListItem\",\"position\":12,\"name\":\"JSON and automation exports\",\"url\":\"https://vibestats.wolfai.dev/features/json-and-automation-exports\"}]}}"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"gPirvBMhpRSdtR0tsMj2H\",\"p\":\"\",\"c\":[\"\",\"features\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"features\",{\"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\":[\"features\",[\"$\",\"$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\":[[\"$\",\"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%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5\"}}],\"$L6\"]}],null,\"$L7\"]}],{},null,false]},null,false]},null,false],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"944\",\"static/chunks/app/features/page-5d0587c1d5910e68.js\"],\"\"]\n18:I[496,[],\"OutletBoundary\"]\n1a:I[3737,[],\"AsyncMetadataOutlet\"]\n1c:I[496,[],\"ViewportBoundary\"]\n1e:I[496,[],\"MetadataBoundary\"]\n1f:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Feature library\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"AI coding analytics features\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":[12,\" pages\"]}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Built around real vibestats workflows instead of generic SEO filler.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":\"Internal links\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Each page connects to related features, guides, and use cases.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":\"Search intent\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Every page is focused on one product or reporting question.\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3\",\"children\":[[\"$\",\"$La\",\"claude-code-stats\",{\"href\":\"/features/claude-code-stats\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Claude Code stats\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Track Claude Code usage locally with daily, monthly, session, model, token, and cost reports.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Daily, monthly, total, session, and model views\",{\"children\":\"Daily, monthly, total, session, and model views\"}],[\"$\",\"li\",\"Token and estimated cost reporting\",{\"children\":\"Token and estimated cost reporting\"}],[\"$\",\"li\",\"Works with wrapped pages and activity heatmaps\",{\"children\":\"Works with wrapped pages and activity heatmaps\"}]]}]]}],[\"$\",\"$La\",\"codex-cli-stats\",{\"href\":\"/features/codex-cli-stats\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Codex CLI stats\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Track OpenAI Codex CLI usage locally with token, cost, session, model, and date-based reports.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[\"$Lb\",\"$Lc\",\"$Ld\"]}]]}],\"$Le\",\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$L18\",null,{\"children\":[\"$L19\",[\"$\",\"$L1a\",null,{\"promise\":\"$@1b\"}]]}]\n8:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1c\",null,{\"children\":\"$L1d\"}],null],[\"$\",\"$L1e\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1f\",null,{\"fallback\":null,\"children\":\"$L20\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"li\",\"Dedicated Codex source mode\",{\"children\":\"Dedicated Codex source mode\"}]\nc:[\"$\",\"li\",\"Daily, monthly, total, session, and model reporting\",{\"children\":\"Daily, monthly, total, session, and model reporting\"}]\nd:[\"$\",\"li\",\"Fits side-by-side with combined and wrapped views\",{\"children\":\"Fits side-by-side with combined and wrapped views\"}]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"$La\",\"combined-ai-coding-stats\",{\"href\":\"/features/combined-ai-coding-stats\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Combined AI coding stats\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Merge Claude-compatible and Codex CLI usage into one view for daily reporting, wrapped summaries, and activity analysis.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"One combined scope across supported local sources\",{\"children\":\"One combined scope across supported local sources\"}],[\"$\",\"li\",\"Useful for retrospectives and weekly reporting\",{\"children\":\"Useful for retrospectives and weekly reporting\"}],[\"$\",\"li\",\"Pairs well with activity and wrapped pages\",{\"children\":\"Pairs well with activity and wrapped pages\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$La\",\"ai-coding-wrapped\",{\"href\":\"/features/ai-coding-wrapped\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"AI coding wrapped\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Create a wrapped-style annual recap for Claude Code and Codex CLI usage with totals, streaks, and model mix.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Year-style recap with totals and streaks\",{\"children\":\"Year-style recap with totals and streaks\"}],[\"$\",\"li\",\"Readable for both solo devs and teams\",{\"children\":\"Readable for both solo devs and teams\"}],[\"$\",\"li\",\"Backed by local aggregate data instead of prompts\",{\"children\":\"Backed by local aggregate data instead of prompts\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"$La\",\"ai-coding-activity-heatmap\",{\"href\":\"/features/ai-coding-activity-heatmap\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"AI coding activity heatmap\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Generate GitHub-style activity heatmaps for Claude Code and Codex CLI usage with streaks and rolling totals.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"GitHub-style calendar view\",{\"children\":\"GitHub-style calendar view\"}],[\"$\",\"li\",\"Recent totals and streaks in the same surface\",{\"children\":\"Recent totals and streaks in the same surface\"}],[\"$\",\"li\",\"Useful for weekly and monthly retrospectives\",{\"children\":\"Useful for weekly and monthly retrospectives\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$La\",\"token-and-cost-tracking\",{\"href\":\"/features/token-and-cost-tracking\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Token and cost tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Track input, output, cache, total token volume, and estimated cost across AI coding sessions.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Input, output, cache read, and cache write visibility\",{\"children\":\"Input, output, cache read, and cache write visibility\"}],[\"$\",\"li\",\"Estimated cost alongside usage volume\",{\"children\":\"Estimated cost alongside usage volume\"}],[\"$\",\"li\",\"Works across source-specific and combined views\",{\"children\":\"Works across source-specific and combined views\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"$La\",\"model-breakdown\",{\"href\":\"/features/model-breakdown\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Model breakdown\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Inspect which Claude-compatible or Codex models dominated your usage and how their token share changed over time.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Group usage by model instead of date\",{\"children\":\"Group usage by model instead of date\"}],[\"$\",\"li\",\"Useful for stack reviews and experimentation\",{\"children\":\"Useful for stack reviews and experimentation\"}],[\"$\",\"li\",\"Pairs well with wrapped summaries and cost views\",{\"children\":\"Pairs well with wrapped summaries and cost views\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"$La\",\"session-breakdown\",{\"href\":\"/features/session-breakdown\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Session breakdown\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Inspect AI coding usage per session so you can separate heavy sessions from routine daily activity.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Per-session reporting\",{\"children\":\"Per-session reporting\"}],[\"$\",\"li\",\"Useful for debugging spikes and outliers\",{\"children\":\"Useful for debugging spikes and outliers\"}],[\"$\",\"li\",\"Supports main-session vs subagent-aware workflows\",{\"children\":\"Supports main-session vs subagent-aware workflows\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"$La\",\"share-pages\",{\"href\":\"/features/share-pages\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"AI coding share pages\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Publish aggregate usage, wrapped, and activity pages without exposing raw prompts or responses.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Hosted aggregate share pages\",{\"children\":\"Hosted aggregate share pages\"}],[\"$\",\"li\",\"Supports usage, wrapped, and activity reports\",{\"children\":\"Supports usage, wrapped, and activity reports\"}],[\"$\",\"li\",\"Better communication surface than raw command output\",{\"children\":\"Better communication surface than raw command output\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"$La\",\"privacy-first-analytics\",{\"href\":\"/features/privacy-first-analytics\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Privacy-first analytics\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use local-first AI coding analytics without sending prompts, responses, or project paths to a hosted dashboard.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Local-first reporting model\",{\"children\":\"Local-first reporting model\"}],[\"$\",\"li\",\"Aggregate shares instead of raw transcripts\",{\"children\":\"Aggregate shares instead of raw transcripts\"}],[\"$\",\"li\",\"Fits privacy-sensitive development workflows\",{\"children\":\"Fits privacy-sensitive development workflows\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"$La\",\"claude-diagnostics\",{\"href\":\"/features/claude-diagnostics\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Claude diagnostics\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Inspect local Claude account state, cache freshness, and usage-data limit signals without external API access.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Reads local Claude state only when requested\",{\"children\":\"Reads local Claude state only when requested\"}],[\"$\",\"li\",\"Useful for debugging and limit visibility\",{\"children\":\"Useful for debugging and limit visibility\"}],[\"$\",\"li\",\"Complements session and usage reports\",{\"children\":\"Complements session and usage reports\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"$La\",\"json-and-automation-exports\",{\"href\":\"/features/json-and-automation-exports\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Feature\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"JSON and automation exports\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Generate machine-readable vibestats output for dashboards, automations, scripts, and downstream analytics.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Machine-readable JSON output\",{\"children\":\"Machine-readable JSON output\"}],[\"$\",\"li\",\"Fits shell scripts and downstream systems\",{\"children\":\"Fits shell scripts and downstream systems\"}],[\"$\",\"li\",\"Useful for custom dashboards and weekly reports\",{\"children\":\"Useful for custom dashboards and weekly reports\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n19:null\n"])</script><script>self.__next_f.push([1,"1b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Features | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.\"}],[\"$\",\"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,AI coding analytics features,Claude Code stats features,Codex CLI analytics features\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/features\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Features | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/features\"}],[\"$\",\"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\":\"Features | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Explore vibestats feature pages for Claude Code stats, Codex CLI stats, wrapped summaries, activity heatmaps, cost tracking, and privacy-first AI coding analytics.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"20:\"$1b:metadata\"\n"])</script></body></html>