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/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Claude Code vs Codex CLI tracking | vibestats</title><meta name="description" content="Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code vs Codex CLI,Claude tracking vs Codex tracking,AI coding tool comparison"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"/><meta property="og:title" content="Claude Code vs Codex CLI tracking | vibestats"/><meta property="og:description" content="Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-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="Claude Code vs Codex CLI tracking | vibestats"/><meta name="twitter:description" content="Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."/><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":"Claude Code vs Codex CLI tracking","description":"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.","url":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-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":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Claude Code vs Codex CLI tracking","item":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Claude Code tracking or Codex CLI tracking?","acceptedAnswer":{"@type":"Answer","text":"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</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="/compare">Compare</a><span>/</span><span class="text-slate-700">Claude Code vs Codex CLI tracking</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Claude Code vs Codex CLI tracking</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.</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">Comparison</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">These are not competing products inside vibestats. They are two source-specific views that can also roll up into one combined reporting layer.</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>Claude Code tracking and Codex CLI tracking solve different reporting jobs.</li><li>Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</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 claude</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats codex</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats all</code></div></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)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Main goal</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Understand Claude-compatible local usage patterns and related diagnostics.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Understand Codex CLI session, token, and model behavior.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Best report</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Claude-specific usage tables and limit-oriented diagnostics.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Dedicated Codex totals, sessions, and source-specific trends.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">When to combine</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Combine when you switch tools across the same week or project.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Keep separate when you need tool-specific reporting or debugging.</td></tr></tbody></table></div></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">Where Claude Code tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Main goal: Understand Claude-compatible local usage patterns and related diagnostics. Best report: Claude-specific usage tables and limit-oriented diagnostics. When to combine: Combine when you switch tools across the same week or project.</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">Where Codex CLI tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Main goal: Understand Codex CLI session, token, and model behavior. Best report: Dedicated Codex totals, sessions, and source-specific trends. When to combine: Keep separate when you need tool-specific reporting or debugging.</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">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.</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">Should I choose Claude Code tracking or Codex CLI tracking?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.</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">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</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="/compare">View all <!-- -->compare</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="/features/claude-code-stats"><span class="block font-semibold text-slate-950">features claude-code-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/codex-cli-stats"><span class="block font-semibold text-slate-950">features codex-cli-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/combined-ai-coding-stats"><span class="block font-semibold text-slate-950">features combined-ai-coding-stats</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\":[\"\",\"compare\",\"claude-code-vs-codex-cli-tracking\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"claude-code-vs-codex-cli-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\":[\"compare\",[\"$\",\"$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\",\"claude-code-vs-codex-cli-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\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5c3,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Claude Code vs Codex CLI tracking\",\"description\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\",\"url\":\"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-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\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Claude Code vs Codex CLI tracking\",\"item\":\"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Claude Code tracking or Codex CLI tracking?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</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\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Claude Code vs Codex CLI tracking\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"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\":\"Claude Code vs Codex CLI tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\"}],[\"$\",\"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\":\"Comparison\"}]]}],[\"$\",\"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,\"$L15\",\"$L16\",\"$L17\",\"$L18\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"These are not competing products inside vibestats. They are two source-specific views that can also roll up into one combined reporting layer.\"}]\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\",\"Claude Code tracking and Codex CLI tracking solve different reporting jobs.\",{\"children\":\"Claude Code tracking and Codex CLI tracking solve different reporting jobs.\"}],[\"$\",\"li\",\"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.\",{\"children\":\"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"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 claude\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats claude\"}],[\"$\",\"code\",\"npx vibestats codex\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats codex\"}],[\"$\",\"code\",\"npx vibestats all\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats all\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"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)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Main goal\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Main goal\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Understand Claude-compatible local usage patterns and related diagnostics.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Understand Codex CLI session, token, and model behavior.\"}]]}],[\"$\",\"tr\",\"Best report\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best report\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Claude-specific usage tables and limit-oriented diagnostics.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Dedicated Codex totals, sessions, and source-specific trends.\"}]]}],[\"$\",\"tr\",\"When to combine\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"When to combine\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Combine when you switch tools across the same week or project.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Keep separate when you need tool-specific reporting or debugging.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Claude Code tracking wins\",{\"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\":\"Where Claude Code tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Main goal: Understand Claude-compatible local usage patterns and related diagnostics. Best report: Claude-specific usage tables and limit-oriented diagnostics. When to combine: Combine when you switch tools across the same week or project.\"}]]}],[\"$\",\"article\",\"Where Codex CLI tracking wins\",{\"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\":\"Where Codex CLI tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Main goal: Understand Codex CLI session, token, and model behavior. Best report: Dedicated Codex totals, sessions, and source-specific trends. When to combine: Keep separate when you need tool-specific reporting or debugging.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"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\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.\"}]]}]]}]\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\":[[\"$\",\"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\",\"Should I choose Claude Code tracking or Codex CLI 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\":\"Should I choose Claude Code tracking or Codex CLI tracking?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"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\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"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\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/claude-code-stats\",{\"href\":\"/features/claude-code-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\":\"features claude-code-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/codex-cli-stats\",{\"href\":\"/features/codex-cli-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\":\"features codex-cli-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/combined-ai-coding-stats\",{\"href\":\"/features/combined-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\":\"features combined-ai-coding-stats\"}],[\"$\",\"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\":\"Claude Code vs Codex CLI tracking | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code vs Codex CLI,Claude tracking vs Codex tracking,AI coding tool comparison\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Claude Code vs Codex CLI tracking | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-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\":\"Claude Code vs Codex CLI tracking | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
@@ -0,0 +1,25 @@
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":["","compare","claude-code-vs-codex-cli-tracking"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","claude-code-vs-codex-cli-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":["compare",["$","$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","claude-code-vs-codex-cli-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","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
14
+ 10:T5c3,[{"@context":"https://schema.org","@type":"WebPage","name":"Claude Code vs Codex CLI tracking","description":"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.","url":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-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":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Claude Code vs Codex CLI tracking","item":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Claude Code tracking or Codex CLI tracking?","acceptedAnswer":{"@type":"Answer","text":"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]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":"/compare","className":"transition hover:text-orange-700","children":"Compare"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"Claude Code vs Codex CLI tracking"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Comparison"}],["$","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":"Claude Code vs Codex CLI tracking"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."}],["$","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":"Comparison"}]]}],["$","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,"$L15","$L16","$L17","$L18"]}]]}]
15
+ 12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"These are not competing products inside vibestats. They are two source-specific views that can also roll up into one combined reporting layer."}]
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","Claude Code tracking and Codex CLI tracking solve different reporting jobs.",{"children":"Claude Code tracking and Codex CLI tracking solve different reporting jobs."}],["$","li","Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools.",{"children":"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools."}],["$","li","vibestats works best when you want local, repeatable reporting around actual AI coding usage.",{"children":"vibestats works best when you want local, repeatable reporting around actual AI coding usage."}]]}]]}],["$","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 claude",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats claude"}],["$","code","npx vibestats codex",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats codex"}],["$","code","npx vibestats all",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats all"}]]}]]}]]}]
18
+ 15:["$","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)] overflow-hidden","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Comparison"}],["$","div",null,{"className":"mt-5 overflow-x-auto","children":["$","table",null,{"className":"min-w-full border-separate border-spacing-y-3 text-left text-sm","children":[["$","thead",null,{"children":["$","tr",null,{"className":"text-slate-500","children":[["$","th",null,{"className":"px-4 py-2 font-medium","children":"Dimension"}],["$","th",null,{"className":"px-4 py-2 font-medium","children":"Left side"}],["$","th",null,{"className":"px-4 py-2 font-medium","children":"Right side"}]]}]}],["$","tbody",null,{"children":[["$","tr","Main goal",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Main goal"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Understand Claude-compatible local usage patterns and related diagnostics."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Understand Codex CLI session, token, and model behavior."}]]}],["$","tr","Best report",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Best report"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Claude-specific usage tables and limit-oriented diagnostics."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Dedicated Codex totals, sessions, and source-specific trends."}]]}],["$","tr","When to combine",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"When to combine"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Combine when you switch tools across the same week or project."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Keep separate when you need tool-specific reporting or debugging."}]]}]]}]]}]}]]}]
19
+ 16:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Where Claude Code tracking wins",{"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":"Where Claude Code tracking wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Main goal: Understand Claude-compatible local usage patterns and related diagnostics. Best report: Claude-specific usage tables and limit-oriented diagnostics. When to combine: Combine when you switch tools across the same week or project."}]]}],["$","article","Where Codex CLI tracking wins",{"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":"Where Codex CLI tracking wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Main goal: Understand Codex CLI session, token, and model behavior. Best report: Dedicated Codex totals, sessions, and source-specific trends. When to combine: Keep separate when you need tool-specific reporting or debugging."}]]}],["$","article","Decision rule",{"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":"Decision rule"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools."}]]}]]}]
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":[["$","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","Should I choose Claude Code tracking or Codex CLI 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":"Should I choose Claude Code tracking or Codex CLI tracking?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Keep the sources separate when you need source-specific debugging or accountability. Use combined reports when you want one AI coding story across tools."}]]}],["$","article","Is this comparison about replacing everything with one report?",{"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":"Is this comparison about replacing everything with one report?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}]]}]]}]]}]
21
+ 18:["$","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":"/compare","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","compare"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$L11","/features/claude-code-stats",{"href":"/features/claude-code-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":"features claude-code-stats"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/features/codex-cli-stats",{"href":"/features/codex-cli-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":"features codex-cli-stats"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/features/combined-ai-coding-stats",{"href":"/features/combined-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":"features combined-ai-coding-stats"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}]]}]]}]
22
+ b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
23
+ 7:null
24
+ 9:{"metadata":[["$","title","0",{"children":"Claude Code vs Codex CLI tracking | vibestats"}],["$","meta","1",{"name":"description","content":"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."}],["$","meta","2",{"name":"application-name","content":"vibestats"}],["$","meta","3",{"name":"keywords","content":"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,Claude Code vs Codex CLI,Claude tracking vs Codex tracking,AI coding tool comparison"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"}],["$","meta","5",{"property":"og:title","content":"Claude Code vs Codex CLI tracking | vibestats"}],["$","meta","6",{"property":"og:description","content":"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-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":"Claude Code vs Codex CLI tracking | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views."}]],"error":null,"digest":"$undefined"}
25
+ 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/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Daily vs monthly AI usage reports | vibestats</title><meta name="description" content="Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."/><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,daily vs monthly usage reports,AI usage reporting cadence,developer usage report comparison"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"/><meta property="og:title" content="Daily vs monthly AI usage reports | vibestats"/><meta property="og:description" content="Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"/><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="Daily vs monthly AI usage reports | vibestats"/><meta name="twitter:description" content="Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."/><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":"Daily vs monthly AI usage reports","description":"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.","url":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports","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":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Daily vs monthly AI usage reports","item":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Daily reports or Monthly reports?","acceptedAnswer":{"@type":"Answer","text":"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</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="/compare">Compare</a><span>/</span><span class="text-slate-700">Daily vs monthly AI usage reports</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Daily vs monthly AI usage reports</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.</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">Comparison</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">Most teams need both views, but not at the same moment.</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>Daily reports and Monthly reports solve different reporting jobs.</li><li>Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</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</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --monthly</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --last 30</code></div></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)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Spotting spikes, streaks, and short-term changes.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Explaining broader trends and reducing noise.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Review cadence</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Works well for weekly retrospectives and short debug loops.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Works well for planning, budgeting, and management summaries.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Tradeoff</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">More detail, more noise.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Less noise, less granularity.</td></tr></tbody></table></div></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">Where Daily reports wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Spotting spikes, streaks, and short-term changes. Review cadence: Works well for weekly retrospectives and short debug loops. Tradeoff: More detail, more noise.</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">Where Monthly reports wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Explaining broader trends and reducing noise. Review cadence: Works well for planning, budgeting, and management summaries. Tradeoff: Less noise, less granularity.</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">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.</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">Should I choose Daily reports or Monthly reports?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.</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">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</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="/compare">View all <!-- -->compare</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="/use-cases/weekly-reviews"><span class="block font-semibold text-slate-950">use-cases weekly-reviews</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="/use-cases/monthly-reporting"><span class="block font-semibold text-slate-950">use-cases monthly-reporting</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/ai-coding-activity-heatmap"><span class="block font-semibold text-slate-950">features ai-coding-activity-heatmap</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\":[\"\",\"compare\",\"daily-vs-monthly-ai-usage-reports\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"daily-vs-monthly-ai-usage-reports\",\"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\":[\"compare\",[\"$\",\"$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\",\"daily-vs-monthly-ai-usage-reports\",\"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\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5af,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Daily vs monthly AI usage reports\",\"description\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\",\"url\":\"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports\",\"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\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Daily vs monthly AI usage reports\",\"item\":\"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Daily reports or Monthly reports?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</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\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Daily vs monthly AI usage reports\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"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\":\"Daily vs monthly AI usage reports\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\"}],[\"$\",\"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\":\"Comparison\"}]]}],[\"$\",\"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\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Most teams need both views, but not at the same moment.\"}]]}],\"$L12\"]}]]}],\"$L13\",null,\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"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,"13:[\"$\",\"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\",\"Daily reports and Monthly reports solve different reporting jobs.\",{\"children\":\"Daily reports and Monthly reports solve different reporting jobs.\"}],[\"$\",\"li\",\"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.\",{\"children\":\"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"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\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats\"}],[\"$\",\"code\",\"npx vibestats --monthly\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --monthly\"}],[\"$\",\"code\",\"npx vibestats --last 30\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --last 30\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"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)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Spotting spikes, streaks, and short-term changes.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Explaining broader trends and reducing noise.\"}]]}],[\"$\",\"tr\",\"Review cadence\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Review cadence\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Works well for weekly retrospectives and short debug loops.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Works well for planning, budgeting, and management summaries.\"}]]}],[\"$\",\"tr\",\"Tradeoff\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Tradeoff\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"More detail, more noise.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Less noise, less granularity.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Daily reports wins\",{\"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\":\"Where Daily reports wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Spotting spikes, streaks, and short-term changes. Review cadence: Works well for weekly retrospectives and short debug loops. Tradeoff: More detail, more noise.\"}]]}],[\"$\",\"article\",\"Where Monthly reports wins\",{\"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\":\"Where Monthly reports wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Explaining broader trends and reducing noise. Review cadence: Works well for planning, budgeting, and management summaries. Tradeoff: Less noise, less granularity.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"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\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.\"}]]}]]}]\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\",\"Should I choose Daily reports or Monthly reports?\",{\"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\":\"Should I choose Daily reports or Monthly reports?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"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\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\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\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/use-cases/weekly-reviews\",{\"href\":\"/use-cases/weekly-reviews\",\"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\":\"use-cases weekly-reviews\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/monthly-reporting\",{\"href\":\"/use-cases/monthly-reporting\",\"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\":\"use-cases monthly-reporting\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/ai-coding-activity-heatmap\",{\"href\":\"/features/ai-coding-activity-heatmap\",\"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 ai-coding-activity-heatmap\"}],[\"$\",\"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\":\"Daily vs monthly AI usage reports | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\"}],[\"$\",\"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,daily vs monthly usage reports,AI usage reporting cadence,developer usage report comparison\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Daily vs monthly AI usage reports | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports\"}],[\"$\",\"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\":\"Daily vs monthly AI usage reports | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\"}]],\"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":["","compare","daily-vs-monthly-ai-usage-reports"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","daily-vs-monthly-ai-usage-reports","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":["compare",["$","$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","daily-vs-monthly-ai-usage-reports","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","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
14
+ 10:T5af,[{"@context":"https://schema.org","@type":"WebPage","name":"Daily vs monthly AI usage reports","description":"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.","url":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports","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":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Daily vs monthly AI usage reports","item":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Daily reports or Monthly reports?","acceptedAnswer":{"@type":"Answer","text":"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]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":"/compare","className":"transition hover:text-orange-700","children":"Compare"}],["$","span",null,{"children":"/"}],["$","span",null,{"className":"text-slate-700","children":"Daily vs monthly AI usage reports"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Comparison"}],["$","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":"Daily vs monthly AI usage reports"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."}],["$","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":"Comparison"}]]}],["$","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"}],["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Most teams need both views, but not at the same moment."}]]}],"$L12"]}]]}],"$L13",null,"$L14","$L15","$L16","$L17"]}]]}]
15
+ 12:["$","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"}]}]]}]
16
+ 13:["$","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","Daily reports and Monthly reports solve different reporting jobs.",{"children":"Daily reports and Monthly reports solve different reporting jobs."}],["$","li","Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility.",{"children":"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility."}],["$","li","vibestats works best when you want local, repeatable reporting around actual AI coding usage.",{"children":"vibestats works best when you want local, repeatable reporting around actual AI coding usage."}]]}]]}],["$","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",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats"}],["$","code","npx vibestats --monthly",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --monthly"}],["$","code","npx vibestats --last 30",{"className":"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700","children":"npx vibestats --last 30"}]]}]]}]]}]
17
+ 14:["$","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)] overflow-hidden","children":[["$","p",null,{"className":"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500","children":"Comparison"}],["$","div",null,{"className":"mt-5 overflow-x-auto","children":["$","table",null,{"className":"min-w-full border-separate border-spacing-y-3 text-left text-sm","children":[["$","thead",null,{"children":["$","tr",null,{"className":"text-slate-500","children":[["$","th",null,{"className":"px-4 py-2 font-medium","children":"Dimension"}],["$","th",null,{"className":"px-4 py-2 font-medium","children":"Left side"}],["$","th",null,{"className":"px-4 py-2 font-medium","children":"Right side"}]]}]}],["$","tbody",null,{"children":[["$","tr","Best for",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Best for"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Spotting spikes, streaks, and short-term changes."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Explaining broader trends and reducing noise."}]]}],["$","tr","Review cadence",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Review cadence"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Works well for weekly retrospectives and short debug loops."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Works well for planning, budgeting, and management summaries."}]]}],["$","tr","Tradeoff",{"className":"align-top","children":[["$","td",null,{"className":"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900","children":"Tradeoff"}],["$","td",null,{"className":"bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"More detail, more noise."}],["$","td",null,{"className":"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600","children":"Less noise, less granularity."}]]}]]}]]}]}]]}]
18
+ 15:["$","section",null,{"className":"mt-6 grid gap-4 md:grid-cols-2","children":[["$","article","Where Daily reports wins",{"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":"Where Daily reports wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Spotting spikes, streaks, and short-term changes. Review cadence: Works well for weekly retrospectives and short debug loops. Tradeoff: More detail, more noise."}]]}],["$","article","Where Monthly reports wins",{"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":"Where Monthly reports wins"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Best for: Explaining broader trends and reducing noise. Review cadence: Works well for planning, budgeting, and management summaries. Tradeoff: Less noise, less granularity."}]]}],["$","article","Decision rule",{"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":"Decision rule"}],["$","p",null,{"className":"mt-4 text-sm leading-7 text-slate-600","children":"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility."}]]}]]}]
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","Should I choose Daily reports or Monthly reports?",{"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":"Should I choose Daily reports or Monthly reports?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"Use daily reports for troubleshooting, habit tracking, and weekly review. Use monthly reports when the question is trend direction, not single-day volatility."}]]}],["$","article","Is this comparison about replacing everything with one report?",{"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":"Is this comparison about replacing everything with one report?"}],["$","p",null,{"className":"mt-3 text-sm leading-7 text-slate-600","children":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}]]}]]}]]}]
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":"/compare","className":"text-sm font-medium text-slate-700 transition hover:text-orange-700","children":["View all ","compare"]}]]}],["$","div",null,{"className":"mt-5 grid gap-4 md:grid-cols-3","children":[["$","$L11","/use-cases/weekly-reviews",{"href":"/use-cases/weekly-reviews","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":"use-cases weekly-reviews"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/use-cases/monthly-reporting",{"href":"/use-cases/monthly-reporting","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":"use-cases monthly-reporting"}],["$","span",null,{"className":"mt-2 block","children":"Open the related vibestats page and continue the workflow from there."}]]}],["$","$L11","/features/ai-coding-activity-heatmap",{"href":"/features/ai-coding-activity-heatmap","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 ai-coding-activity-heatmap"}],["$","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":"Daily vs monthly AI usage reports | vibestats"}],["$","meta","1",{"name":"description","content":"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."}],["$","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,daily vs monthly usage reports,AI usage reporting cadence,developer usage report comparison"}],["$","link","4",{"rel":"canonical","href":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"}],["$","meta","5",{"property":"og:title","content":"Daily vs monthly AI usage reports | vibestats"}],["$","meta","6",{"property":"og:description","content":"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."}],["$","meta","7",{"property":"og:url","content":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"}],["$","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":"Daily vs monthly AI usage reports | vibestats"}],["$","meta","13",{"name":"twitter:description","content":"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats."}]],"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/compare/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Local vs cloud AI analytics | vibestats</title><meta name="description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><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,local vs cloud AI analytics,privacy first developer analytics,local AI usage tracker"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"/><meta property="og:title" content="Local vs cloud AI analytics | vibestats"/><meta property="og:description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"/><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="Local vs cloud AI analytics | vibestats"/><meta name="twitter:description" content="Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better."/><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":"Local vs cloud AI analytics","description":"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics","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":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Local vs cloud AI analytics","item":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Local-first analytics or Cloud dashboards?","acceptedAnswer":{"@type":"Answer","text":"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</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="/compare">Compare</a><span>/</span><span class="text-slate-700">Local vs cloud AI analytics</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Local vs cloud AI analytics</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.</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">Comparison</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">This comparison is mostly about data boundaries and operating model, not about one side being universally better.</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>Local-first analytics and Cloud dashboards solve different reporting jobs.</li><li>Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</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 --json</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --share</code></div></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)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Data path</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Local artifacts stay on your machine until you choose to share aggregate output.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Raw or semi-raw usage often leaves the device by default.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Setup</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Fast for solo developers who already have local session data.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful when a team wants one hosted surface with centralized access.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Privacy</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Better when prompts, responses, and project paths should not leave the local environment.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful when collaboration beats strict local-only defaults.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Reporting shape</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Strong for centralized dashboards and multi-user permissions.</td></tr></tbody></table></div></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">Where Local-first analytics wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Data path: Local artifacts stay on your machine until you choose to share aggregate output. Setup: Fast for solo developers who already have local session data. Privacy: Better when prompts, responses, and project paths should not leave the local environment. Reporting shape: Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.</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">Where Cloud dashboards wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Data path: Raw or semi-raw usage often leaves the device by default. Setup: Useful when a team wants one hosted surface with centralized access. Privacy: Useful when collaboration beats strict local-only defaults. Reporting shape: Strong for centralized dashboards and multi-user permissions.</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">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</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">Should I choose Local-first analytics or Cloud dashboards?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.</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">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</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="/compare">View all <!-- -->compare</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="/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><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/share-pages"><span class="block font-semibold text-slate-950">features 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="/use-cases/consultants"><span class="block font-semibold text-slate-950">use-cases consultants</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\":[\"\",\"compare\",\"local-vs-cloud-ai-analytics\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"local-vs-cloud-ai-analytics\",\"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\":[\"compare\",[\"$\",\"$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\",\"local-vs-cloud-ai-analytics\",\"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\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5d9,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Local vs cloud AI analytics\",\"description\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\",\"url\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\",\"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\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Local vs cloud AI analytics\",\"item\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Local-first analytics or Cloud dashboards?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</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\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Local vs cloud AI analytics\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"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\":\"Local vs cloud AI analytics\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"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\":\"Comparison\"}]]}],[\"$\",\"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,\"$L15\",\"$L16\",\"$L17\",\"$L18\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"This comparison is mostly about data boundaries and operating model, not about one side being universally better.\"}]\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\",\"Local-first analytics and Cloud dashboards solve different reporting jobs.\",{\"children\":\"Local-first analytics and Cloud dashboards solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\",{\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}],[\"$\",\"li\",\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\",{\"children\":\"vibestats works best when you want local, repeatable reporting around actual AI coding usage.\"}]]}]]}],[\"$\",\"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 --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}],[\"$\",\"code\",\"npx vibestats --share\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --share\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"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)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Data path\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Data path\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Local artifacts stay on your machine until you choose to share aggregate output.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Raw or semi-raw usage often leaves the device by default.\"}]]}],[\"$\",\"tr\",\"Setup\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Setup\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Fast for solo developers who already have local session data.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful when a team wants one hosted surface with centralized access.\"}]]}],[\"$\",\"tr\",\"Privacy\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Privacy\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Better when prompts, responses, and project paths should not leave the local environment.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful when collaboration beats strict local-only defaults.\"}]]}],[\"$\",\"tr\",\"Reporting shape\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Reporting shape\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Strong for centralized dashboards and multi-user permissions.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Local-first analytics wins\",{\"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\":\"Where Local-first analytics wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Data path: Local artifacts stay on your machine until you choose to share aggregate output. Setup: Fast for solo developers who already have local session data. Privacy: Better when prompts, responses, and project paths should not leave the local environment. Reporting shape: Strong for command-line workflows, wrapped recaps, and shareable aggregate pages.\"}]]}],[\"$\",\"article\",\"Where Cloud dashboards wins\",{\"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\":\"Where Cloud dashboards wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Data path: Raw or semi-raw usage often leaves the device by default. Setup: Useful when a team wants one hosted surface with centralized access. Privacy: Useful when collaboration beats strict local-only defaults. Reporting shape: Strong for centralized dashboards and multi-user permissions.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"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\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}]]}]]}]\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\":[[\"$\",\"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\",\"Should I choose Local-first analytics or Cloud dashboards?\",{\"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\":\"Should I choose Local-first analytics or Cloud dashboards?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Choose local-first analytics when privacy, local workflow speed, or developer-controlled reporting matter most. Choose cloud dashboards when centralization and multi-user access matter more than default locality.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"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\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"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\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$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.\"}]]}],[\"$\",\"$L11\",\"/features/share-pages\",{\"href\":\"/features/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\":\"features share-pages\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/consultants\",{\"href\":\"/use-cases/consultants\",\"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\":\"use-cases consultants\"}],[\"$\",\"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\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"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,local vs cloud AI analytics,privacy first developer analytics,local AI usage tracker\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"}],[\"$\",\"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\":\"Local vs cloud AI analytics | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>