vibestats 1.4.2 → 1.4.3

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 (114) hide show
  1. package/dist/index.js +13 -2
  2. package/dist/web/404.html +1 -1
  3. package/dist/web/activity.html +1 -1
  4. package/dist/web/activity.txt +1 -1
  5. package/dist/web/changelog.html +1 -1
  6. package/dist/web/changelog.txt +54 -53
  7. package/dist/web/compare/claude-code-vs-codex-cli-tracking.html +1 -1
  8. package/dist/web/compare/claude-code-vs-codex-cli-tracking.txt +1 -1
  9. package/dist/web/compare/daily-vs-monthly-ai-usage-reports.html +1 -1
  10. package/dist/web/compare/daily-vs-monthly-ai-usage-reports.txt +1 -1
  11. package/dist/web/compare/local-vs-cloud-ai-analytics.html +1 -1
  12. package/dist/web/compare/local-vs-cloud-ai-analytics.txt +1 -1
  13. package/dist/web/compare/manual-tracking-vs-vibestats.html +1 -1
  14. package/dist/web/compare/manual-tracking-vs-vibestats.txt +1 -1
  15. package/dist/web/compare/querystring-shares-vs-stored-share-pages.html +1 -1
  16. package/dist/web/compare/querystring-shares-vs-stored-share-pages.txt +1 -1
  17. package/dist/web/compare/session-breakdown-vs-model-breakdown.html +1 -1
  18. package/dist/web/compare/session-breakdown-vs-model-breakdown.txt +1 -1
  19. package/dist/web/compare/single-source-vs-combined-tracking.html +1 -1
  20. package/dist/web/compare/single-source-vs-combined-tracking.txt +1 -1
  21. package/dist/web/compare/terminal-table-vs-json-output.html +1 -1
  22. package/dist/web/compare/terminal-table-vs-json-output.txt +1 -1
  23. package/dist/web/compare/token-volume-vs-cost-estimation.html +1 -1
  24. package/dist/web/compare/token-volume-vs-cost-estimation.txt +1 -1
  25. package/dist/web/compare/wrapped-vs-activity-heatmap.html +1 -1
  26. package/dist/web/compare/wrapped-vs-activity-heatmap.txt +1 -1
  27. package/dist/web/compare.html +1 -1
  28. package/dist/web/compare.txt +1 -1
  29. package/dist/web/dashboard/activity.html +1 -1
  30. package/dist/web/dashboard/activity.txt +1 -1
  31. package/dist/web/dashboard/usage.html +1 -1
  32. package/dist/web/dashboard/usage.txt +1 -1
  33. package/dist/web/dashboard/wrapped.html +1 -1
  34. package/dist/web/dashboard/wrapped.txt +1 -1
  35. package/dist/web/dashboard.html +1 -1
  36. package/dist/web/dashboard.txt +1 -1
  37. package/dist/web/docs/commands.html +1 -1
  38. package/dist/web/docs/commands.txt +1 -1
  39. package/dist/web/docs.html +1 -1
  40. package/dist/web/docs.txt +1 -1
  41. package/dist/web/features/ai-coding-activity-heatmap.html +1 -1
  42. package/dist/web/features/ai-coding-activity-heatmap.txt +1 -1
  43. package/dist/web/features/ai-coding-wrapped.html +1 -1
  44. package/dist/web/features/ai-coding-wrapped.txt +1 -1
  45. package/dist/web/features/claude-code-stats.html +1 -1
  46. package/dist/web/features/claude-code-stats.txt +1 -1
  47. package/dist/web/features/claude-diagnostics.html +1 -1
  48. package/dist/web/features/claude-diagnostics.txt +1 -1
  49. package/dist/web/features/codex-cli-stats.html +1 -1
  50. package/dist/web/features/codex-cli-stats.txt +1 -1
  51. package/dist/web/features/combined-ai-coding-stats.html +1 -1
  52. package/dist/web/features/combined-ai-coding-stats.txt +1 -1
  53. package/dist/web/features/json-and-automation-exports.html +1 -1
  54. package/dist/web/features/json-and-automation-exports.txt +1 -1
  55. package/dist/web/features/model-breakdown.html +1 -1
  56. package/dist/web/features/model-breakdown.txt +1 -1
  57. package/dist/web/features/privacy-first-analytics.html +1 -1
  58. package/dist/web/features/privacy-first-analytics.txt +1 -1
  59. package/dist/web/features/session-breakdown.html +1 -1
  60. package/dist/web/features/session-breakdown.txt +1 -1
  61. package/dist/web/features/share-pages.html +1 -1
  62. package/dist/web/features/share-pages.txt +1 -1
  63. package/dist/web/features/token-and-cost-tracking.html +1 -1
  64. package/dist/web/features/token-and-cost-tracking.txt +1 -1
  65. package/dist/web/features.html +1 -1
  66. package/dist/web/features.txt +1 -1
  67. package/dist/web/guides/how-to-build-ai-activity-heatmap.html +1 -1
  68. package/dist/web/guides/how-to-build-ai-activity-heatmap.txt +1 -1
  69. package/dist/web/guides/how-to-compare-model-usage.html +1 -1
  70. package/dist/web/guides/how-to-compare-model-usage.txt +1 -1
  71. package/dist/web/guides/how-to-create-ai-coding-wrapped.html +1 -1
  72. package/dist/web/guides/how-to-create-ai-coding-wrapped.txt +1 -1
  73. package/dist/web/guides/how-to-measure-ai-token-costs.html +1 -1
  74. package/dist/web/guides/how-to-measure-ai-token-costs.txt +1 -1
  75. package/dist/web/guides/how-to-read-claude-diagnostics.html +1 -1
  76. package/dist/web/guides/how-to-read-claude-diagnostics.txt +1 -1
  77. package/dist/web/guides/how-to-share-ai-coding-stats.html +1 -1
  78. package/dist/web/guides/how-to-share-ai-coding-stats.txt +1 -1
  79. package/dist/web/guides/how-to-track-claude-code-usage.html +1 -1
  80. package/dist/web/guides/how-to-track-claude-code-usage.txt +1 -1
  81. package/dist/web/guides/how-to-track-codex-cli-usage.html +1 -1
  82. package/dist/web/guides/how-to-track-codex-cli-usage.txt +1 -1
  83. package/dist/web/guides.html +1 -1
  84. package/dist/web/guides.txt +1 -1
  85. package/dist/web/index.html +1 -1
  86. package/dist/web/index.txt +1 -1
  87. package/dist/web/sitemap.xml +46 -46
  88. package/dist/web/use-cases/ai-agencies.html +1 -1
  89. package/dist/web/use-cases/ai-agencies.txt +1 -1
  90. package/dist/web/use-cases/consultants.html +1 -1
  91. package/dist/web/use-cases/consultants.txt +1 -1
  92. package/dist/web/use-cases/engineering-managers.html +1 -1
  93. package/dist/web/use-cases/engineering-managers.txt +1 -1
  94. package/dist/web/use-cases/freelancers.html +1 -1
  95. package/dist/web/use-cases/freelancers.txt +1 -1
  96. package/dist/web/use-cases/indie-hackers.html +1 -1
  97. package/dist/web/use-cases/indie-hackers.txt +1 -1
  98. package/dist/web/use-cases/monthly-reporting.html +1 -1
  99. package/dist/web/use-cases/monthly-reporting.txt +1 -1
  100. package/dist/web/use-cases/open-source-maintainers.html +1 -1
  101. package/dist/web/use-cases/open-source-maintainers.txt +1 -1
  102. package/dist/web/use-cases/personal-retrospectives.html +1 -1
  103. package/dist/web/use-cases/personal-retrospectives.txt +1 -1
  104. package/dist/web/use-cases/researchers.html +1 -1
  105. package/dist/web/use-cases/researchers.txt +1 -1
  106. package/dist/web/use-cases/weekly-reviews.html +1 -1
  107. package/dist/web/use-cases/weekly-reviews.txt +1 -1
  108. package/dist/web/use-cases.html +1 -1
  109. package/dist/web/use-cases.txt +1 -1
  110. package/dist/web/wrapped.html +1 -1
  111. package/dist/web/wrapped.txt +1 -1
  112. package/package.json +7 -8
  113. /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → bkF3quPLxz4vmu3191LYm}/_buildManifest.js +0 -0
  114. /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → bkF3quPLxz4vmu3191LYm}/_ssgManifest.js +0 -0
@@ -9,7 +9,7 @@ c:I[496,[],"MetadataBoundary"]
9
9
  d:"$Sreact.suspense"
10
10
  f:I[2207,[],""]
11
11
  :HL["/_next/static/css/335de1248158d380.css","style"]
12
- 0:{"P":null,"b":"3pcP-Y7gHe02EnmTXxc9b","p":"","c":["","compare","wrapped-vs-activity-heatmap"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","wrapped-vs-activity-heatmap","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","wrapped-vs-activity-heatmap","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}
12
+ 0:{"P":null,"b":"bkF3quPLxz4vmu3191LYm","p":"","c":["","compare","wrapped-vs-activity-heatmap"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","wrapped-vs-activity-heatmap","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","wrapped-vs-activity-heatmap","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
13
  11:I[4816,["816","static/chunks/816-8960921093d57453.js","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
14
14
  10:T5bd,[{"@context":"https://schema.org","@type":"WebPage","name":"Wrapped vs activity heatmap","description":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap","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":"Wrapped vs activity heatmap","item":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Wrapped summary or Activity heatmap?","acceptedAnswer":{"@type":"Answer","text":"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance."}},{"@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":"Wrapped vs activity heatmap"}]]}],["$","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":"Wrapped vs activity heatmap"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story."}],["$","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
15
  12:["$","div",null,{"className":"mt-2 text-sm leading-6 text-slate-700","children":"Both are recap surfaces, but they tell very different stories."}]
@@ -1 +1 @@
1
- <!DOCTYPE html><!--3pcP_Y7gHe02EnmTXxc9b--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/816-8960921093d57453.js" async=""></script><script src="/_next/static/chunks/app/compare/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Compare | vibestats</title><meta name="description" content="Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,AI coding analytics comparison,manual tracking vs vibestats,local vs cloud AI analytics"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare"/><meta property="og:title" content="Compare | vibestats"/><meta property="og:description" content="Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare"/><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="Compare | vibestats"/><meta name="twitter:description" content="Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">{"@context":"https://schema.org","@type":"CollectionPage","name":"AI coding analytics comparisons","description":"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.","url":"https://vibestats.wolfai.dev/compare","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Local vs cloud AI analytics","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"},{"@type":"ListItem","position":2,"name":"Claude Code vs Codex CLI tracking","url":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"},{"@type":"ListItem","position":3,"name":"Daily vs monthly AI usage reports","url":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"},{"@type":"ListItem","position":4,"name":"Session breakdown vs model breakdown","url":"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown"},{"@type":"ListItem","position":5,"name":"Wrapped vs activity heatmap","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"},{"@type":"ListItem","position":6,"name":"Manual tracking vs vibestats","url":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"},{"@type":"ListItem","position":7,"name":"Querystring shares vs stored share pages","url":"https://vibestats.wolfai.dev/compare/querystring-shares-vs-stored-share-pages"},{"@type":"ListItem","position":8,"name":"Terminal table vs JSON output","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"},{"@type":"ListItem","position":9,"name":"Single-source vs combined tracking","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"},{"@type":"ListItem","position":10,"name":"Token volume vs cost estimation","url":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}]}}</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison library</p><h1 class="mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">AI coding analytics comparisons</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.</p><div class="mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">10<!-- --> pages</strong><span class="mt-2 block">Built around real vibestats workflows instead of generic SEO filler.</span></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">Internal links</strong><span class="mt-2 block">Each page connects to related features, guides, and use cases.</span></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">Search intent</strong><span class="mt-2 block">Every page is focused on one product or reporting question.</span></div></div></header><section class="mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3"><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/local-vs-cloud-ai-analytics"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Local vs cloud AI analytics</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.</p><ul class="mt-5 space-y-2 text-sm leading-6 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></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/claude-code-vs-codex-cli-tracking"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Claude Code vs Codex CLI tracking</h2><p class="mt-4 text-sm leading-7 text-slate-600">Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.</p><ul class="mt-5 space-y-2 text-sm leading-6 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></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/daily-vs-monthly-ai-usage-reports"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Daily vs monthly AI usage reports</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.</p><ul class="mt-5 space-y-2 text-sm leading-6 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></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/session-breakdown-vs-model-breakdown"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Session breakdown vs model breakdown</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare session-oriented reporting with model-oriented reporting for vibestats usage analysis.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Session breakdown and Model breakdown solve different reporting jobs.</li><li>Use session breakdowns when you want to investigate behavior in actual working sessions. Use model breakdowns when you want to understand technology choice, not session shape.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/wrapped-vs-activity-heatmap"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Wrapped vs activity heatmap</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Wrapped summary and Activity heatmap solve different reporting jobs.</li><li>Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/manual-tracking-vs-vibestats"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Manual tracking vs vibestats</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Manual tracking and vibestats solve different reporting jobs.</li><li>Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/querystring-shares-vs-stored-share-pages"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Querystring shares vs stored share pages</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare querystring-based usage sharing with stored share artifacts and understand why hosted share pages are easier to maintain.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Querystring shares and Stored share pages solve different reporting jobs.</li><li>Use stored share pages when you want share URLs to behave like real pages. Querystring sharing is mostly a fallback or legacy compatibility layer.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/terminal-table-vs-json-output"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Terminal table vs JSON output</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare human-readable terminal tables with JSON output for vibestats reporting and automation.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Terminal tables and JSON output solve different reporting jobs.</li><li>Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/single-source-vs-combined-tracking"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Single-source vs combined tracking</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Single-source tracking and Combined tracking solve different reporting jobs.</li><li>Use single-source tracking when the question is about one tool. Use combined tracking when you need one narrative for the whole workflow or reporting period.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/token-volume-vs-cost-estimation"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Token volume vs cost estimation</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare token volume reporting with cost estimation and understand why both matter in vibestats.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Token volume and Cost estimation solve different reporting jobs.</li><li>Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n9:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n5:T75d,"])</script><script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"CollectionPage\",\"name\":\"AI coding analytics comparisons\",\"description\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\",\"url\":\"https://vibestats.wolfai.dev/compare\",\"mainEntity\":{\"@type\":\"ItemList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Local vs cloud AI analytics\",\"url\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Claude Code vs Codex CLI tracking\",\"url\":\"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Daily vs monthly AI usage reports\",\"url\":\"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Session breakdown vs model breakdown\",\"url\":\"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Wrapped vs activity heatmap\",\"url\":\"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Manual tracking vs vibestats\",\"url\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"},{\"@type\":\"ListItem\",\"position\":7,\"name\":\"Querystring shares vs stored share pages\",\"url\":\"https://vibestats.wolfai.dev/compare/querystring-shares-vs-stored-share-pages\"},{\"@type\":\"ListItem\",\"position\":8,\"name\":\"Terminal table vs JSON output\",\"url\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"},{\"@type\":\"ListItem\",\"position\":9,\"name\":\"Single-source vs combined tracking\",\"url\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"},{\"@type\":\"ListItem\",\"position\":10,\"name\":\"Token volume vs cost estimation\",\"url\":\"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation\"}]}}"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"compare\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5\"}}],\"$L6\"]}],null,\"$L7\"]}],{},null,false]},null,false]},null,false],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"402\",\"static/chunks/app/compare/page-5d0587c1d5910e68.js\"],\"\"]\n17:I[496,[],\"OutletBoundary\"]\n19:I[3737,[],\"AsyncMetadataOutlet\"]\n1b:I[496,[],\"ViewportBoundary\"]\n1d:I[496,[],\"MetadataBoundary\"]\n1e:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison library\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"AI coding analytics comparisons\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":[10,\" pages\"]}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Built around real vibestats workflows instead of generic SEO filler.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":\"Internal links\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Each page connects to related features, guides, and use cases.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":\"Search intent\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Every page is focused on one product or reporting question.\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3\",\"children\":[[\"$\",\"$La\",\"local-vs-cloud-ai-analytics\",{\"href\":\"/compare/local-vs-cloud-ai-analytics\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Local vs cloud AI analytics\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 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.\"}]]}]]}],[\"$\",\"$La\",\"claude-code-vs-codex-cli-tracking\",{\"href\":\"/compare/claude-code-vs-codex-cli-tracking\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\"]}],\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\"]}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$L17\",null,{\"children\":[\"$L18\",[\"$\",\"$L19\",null,{\"promise\":\"$@1a\"}]]}]\n8:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1b\",null,{\"children\":\"$L1c\"}],null],[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1e\",null,{\"fallback\":null,\"children\":\"$L1f\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}]\nc:[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Claude Code vs Codex CLI tracking\"}]\nd:[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\"}]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 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.\"}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$La\",\"daily-vs-monthly-ai-usage-reports\",{\"href\":\"/compare/daily-vs-monthly-ai-usage-reports\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Daily vs monthly AI usage reports\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"$La\",\"session-breakdown-vs-model-breakdown\",{\"href\":\"/compare/session-breakdown-vs-model-breakdown\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Session breakdown vs model breakdown\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare session-oriented reporting with model-oriented reporting for vibestats usage analysis.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Session breakdown and Model breakdown solve different reporting jobs.\",{\"children\":\"Session breakdown and Model breakdown solve different reporting jobs.\"}],[\"$\",\"li\",\"Use session breakdowns when you want to investigate behavior in actual working sessions. Use model breakdowns when you want to understand technology choice, not session shape.\",{\"children\":\"Use session breakdowns when you want to investigate behavior in actual working sessions. Use model breakdowns when you want to understand technology choice, not session shape.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$La\",\"wrapped-vs-activity-heatmap\",{\"href\":\"/compare/wrapped-vs-activity-heatmap\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Wrapped vs activity heatmap\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Wrapped summary and Activity heatmap solve different reporting jobs.\",{\"children\":\"Wrapped summary and Activity heatmap solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\",{\"children\":\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"$La\",\"manual-tracking-vs-vibestats\",{\"href\":\"/compare/manual-tracking-vs-vibestats\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Manual tracking vs vibestats\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Manual tracking and vibestats solve different reporting jobs.\",{\"children\":\"Manual tracking and vibestats solve different reporting jobs.\"}],[\"$\",\"li\",\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\",{\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"$La\",\"querystring-shares-vs-stored-share-pages\",{\"href\":\"/compare/querystring-shares-vs-stored-share-pages\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Querystring shares vs stored share pages\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare querystring-based usage sharing with stored share artifacts and understand why hosted share pages are easier to maintain.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Querystring shares and Stored share pages solve different reporting jobs.\",{\"children\":\"Querystring shares and Stored share pages solve different reporting jobs.\"}],[\"$\",\"li\",\"Use stored share pages when you want share URLs to behave like real pages. Querystring sharing is mostly a fallback or legacy compatibility layer.\",{\"children\":\"Use stored share pages when you want share URLs to behave like real pages. Querystring sharing is mostly a fallback or legacy compatibility layer.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"$La\",\"terminal-table-vs-json-output\",{\"href\":\"/compare/terminal-table-vs-json-output\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Terminal table vs JSON output\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Terminal tables and JSON output solve different reporting jobs.\",{\"children\":\"Terminal tables and JSON output solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\",{\"children\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"$La\",\"single-source-vs-combined-tracking\",{\"href\":\"/compare/single-source-vs-combined-tracking\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Single-source vs combined tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Single-source tracking and Combined tracking solve different reporting jobs.\",{\"children\":\"Single-source tracking and Combined tracking solve different reporting jobs.\"}],[\"$\",\"li\",\"Use single-source tracking when the question is about one tool. Use combined tracking when you need one narrative for the whole workflow or reporting period.\",{\"children\":\"Use single-source tracking when the question is about one tool. Use combined tracking when you need one narrative for the whole workflow or reporting period.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"$La\",\"token-volume-vs-cost-estimation\",{\"href\":\"/compare/token-volume-vs-cost-estimation\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Token volume vs cost estimation\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare token volume reporting with cost estimation and understand why both matter in vibestats.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Token volume and Cost estimation solve different reporting jobs.\",{\"children\":\"Token volume and Cost estimation solve different reporting jobs.\"}],[\"$\",\"li\",\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\",{\"children\":\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n18:null\n"])</script><script>self.__next_f.push([1,"1a:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Compare | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,AI coding analytics comparison,manual tracking vs vibestats,local vs cloud AI analytics\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Compare | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare\"}],[\"$\",\"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\":\"Compare | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"1f:\"$1a:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--bkF3quPLxz4vmu3191LYm--><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/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Compare | vibestats</title><meta name="description" content="Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,AI coding analytics comparison,manual tracking vs vibestats,local vs cloud AI analytics"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare"/><meta property="og:title" content="Compare | vibestats"/><meta property="og:description" content="Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare"/><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="Compare | vibestats"/><meta name="twitter:description" content="Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">{"@context":"https://schema.org","@type":"CollectionPage","name":"AI coding analytics comparisons","description":"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.","url":"https://vibestats.wolfai.dev/compare","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Local vs cloud AI analytics","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"},{"@type":"ListItem","position":2,"name":"Claude Code vs Codex CLI tracking","url":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"},{"@type":"ListItem","position":3,"name":"Daily vs monthly AI usage reports","url":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"},{"@type":"ListItem","position":4,"name":"Session breakdown vs model breakdown","url":"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown"},{"@type":"ListItem","position":5,"name":"Wrapped vs activity heatmap","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"},{"@type":"ListItem","position":6,"name":"Manual tracking vs vibestats","url":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"},{"@type":"ListItem","position":7,"name":"Querystring shares vs stored share pages","url":"https://vibestats.wolfai.dev/compare/querystring-shares-vs-stored-share-pages"},{"@type":"ListItem","position":8,"name":"Terminal table vs JSON output","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"},{"@type":"ListItem","position":9,"name":"Single-source vs combined tracking","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"},{"@type":"ListItem","position":10,"name":"Token volume vs cost estimation","url":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}]}}</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison library</p><h1 class="mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">AI coding analytics comparisons</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.</p><div class="mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">10<!-- --> pages</strong><span class="mt-2 block">Built around real vibestats workflows instead of generic SEO filler.</span></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">Internal links</strong><span class="mt-2 block">Each page connects to related features, guides, and use cases.</span></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><strong class="block text-slate-950">Search intent</strong><span class="mt-2 block">Every page is focused on one product or reporting question.</span></div></div></header><section class="mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3"><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/local-vs-cloud-ai-analytics"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Local vs cloud AI analytics</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.</p><ul class="mt-5 space-y-2 text-sm leading-6 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></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/claude-code-vs-codex-cli-tracking"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Claude Code vs Codex CLI tracking</h2><p class="mt-4 text-sm leading-7 text-slate-600">Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.</p><ul class="mt-5 space-y-2 text-sm leading-6 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></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/daily-vs-monthly-ai-usage-reports"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Daily vs monthly AI usage reports</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.</p><ul class="mt-5 space-y-2 text-sm leading-6 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></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/session-breakdown-vs-model-breakdown"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Session breakdown vs model breakdown</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare session-oriented reporting with model-oriented reporting for vibestats usage analysis.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Session breakdown and Model breakdown solve different reporting jobs.</li><li>Use session breakdowns when you want to investigate behavior in actual working sessions. Use model breakdowns when you want to understand technology choice, not session shape.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/wrapped-vs-activity-heatmap"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Wrapped vs activity heatmap</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Wrapped summary and Activity heatmap solve different reporting jobs.</li><li>Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/manual-tracking-vs-vibestats"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Manual tracking vs vibestats</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Manual tracking and vibestats solve different reporting jobs.</li><li>Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/querystring-shares-vs-stored-share-pages"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Querystring shares vs stored share pages</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare querystring-based usage sharing with stored share artifacts and understand why hosted share pages are easier to maintain.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Querystring shares and Stored share pages solve different reporting jobs.</li><li>Use stored share pages when you want share URLs to behave like real pages. Querystring sharing is mostly a fallback or legacy compatibility layer.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/terminal-table-vs-json-output"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Terminal table vs JSON output</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare human-readable terminal tables with JSON output for vibestats reporting and automation.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Terminal tables and JSON output solve different reporting jobs.</li><li>Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/single-source-vs-combined-tracking"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Single-source vs combined tracking</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Single-source tracking and Combined tracking solve different reporting jobs.</li><li>Use single-source tracking when the question is about one tool. Use combined tracking when you need one narrative for the whole workflow or reporting period.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a><a class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300" href="/compare/token-volume-vs-cost-estimation"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Token volume vs cost estimation</h2><p class="mt-4 text-sm leading-7 text-slate-600">Compare token volume reporting with cost estimation and understand why both matter in vibestats.</p><ul class="mt-5 space-y-2 text-sm leading-6 text-slate-600"><li>Token volume and Cost estimation solve different reporting jobs.</li><li>Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.</li><li>vibestats works best when you want local, repeatable reporting around actual AI coding usage.</li></ul></a></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n9:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n5:T75d,"])</script><script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"CollectionPage\",\"name\":\"AI coding analytics comparisons\",\"description\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\",\"url\":\"https://vibestats.wolfai.dev/compare\",\"mainEntity\":{\"@type\":\"ItemList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Local vs cloud AI analytics\",\"url\":\"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Claude Code vs Codex CLI tracking\",\"url\":\"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Daily vs monthly AI usage reports\",\"url\":\"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Session breakdown vs model breakdown\",\"url\":\"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Wrapped vs activity heatmap\",\"url\":\"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Manual tracking vs vibestats\",\"url\":\"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats\"},{\"@type\":\"ListItem\",\"position\":7,\"name\":\"Querystring shares vs stored share pages\",\"url\":\"https://vibestats.wolfai.dev/compare/querystring-shares-vs-stored-share-pages\"},{\"@type\":\"ListItem\",\"position\":8,\"name\":\"Terminal table vs JSON output\",\"url\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"},{\"@type\":\"ListItem\",\"position\":9,\"name\":\"Single-source vs combined tracking\",\"url\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"},{\"@type\":\"ListItem\",\"position\":10,\"name\":\"Token volume vs cost estimation\",\"url\":\"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation\"}]}}"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkF3quPLxz4vmu3191LYm\",\"p\":\"\",\"c\":[\"\",\"compare\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5\"}}],\"$L6\"]}],null,\"$L7\"]}],{},null,false]},null,false]},null,false],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"402\",\"static/chunks/app/compare/page-5d0587c1d5910e68.js\"],\"\"]\n17:I[496,[],\"OutletBoundary\"]\n19:I[3737,[],\"AsyncMetadataOutlet\"]\n1b:I[496,[],\"ViewportBoundary\"]\n1d:I[496,[],\"MetadataBoundary\"]\n1e:\"$Sreact.suspense\"\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison library\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-4xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"AI coding analytics comparisons\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 text-sm text-slate-600 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":[10,\" pages\"]}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Built around real vibestats workflows instead of generic SEO filler.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":\"Internal links\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Each page connects to related features, guides, and use cases.\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"block text-slate-950\",\"children\":\"Search intent\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Every page is focused on one product or reporting question.\"}]]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2 xl:grid-cols-3\",\"children\":[[\"$\",\"$La\",\"local-vs-cloud-ai-analytics\",{\"href\":\"/compare/local-vs-cloud-ai-analytics\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Local vs cloud AI analytics\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare local-first AI coding analytics with cloud dashboards and decide when vibestats fits better.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 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.\"}]]}]]}],[\"$\",\"$La\",\"claude-code-vs-codex-cli-tracking\",{\"href\":\"/compare/claude-code-vs-codex-cli-tracking\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[\"$Lb\",\"$Lc\",\"$Ld\",\"$Le\"]}],\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\"]}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$L17\",null,{\"children\":[\"$L18\",[\"$\",\"$L19\",null,{\"promise\":\"$@1a\"}]]}]\n8:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1b\",null,{\"children\":\"$L1c\"}],null],[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$1e\",null,{\"fallback\":null,\"children\":\"$L1f\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}]\nc:[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Claude Code vs Codex CLI tracking\"}]\nd:[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Understand how Claude Code tracking and Codex CLI tracking differ, and when you want separate vs combined views.\"}]\n"])</script><script>self.__next_f.push([1,"e:[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 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.\"}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"$La\",\"daily-vs-monthly-ai-usage-reports\",{\"href\":\"/compare/daily-vs-monthly-ai-usage-reports\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Daily vs monthly AI usage reports\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare daily and monthly AI coding reports and choose the right reporting cadence for vibestats.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"$La\",\"session-breakdown-vs-model-breakdown\",{\"href\":\"/compare/session-breakdown-vs-model-breakdown\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Session breakdown vs model breakdown\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare session-oriented reporting with model-oriented reporting for vibestats usage analysis.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Session breakdown and Model breakdown solve different reporting jobs.\",{\"children\":\"Session breakdown and Model breakdown solve different reporting jobs.\"}],[\"$\",\"li\",\"Use session breakdowns when you want to investigate behavior in actual working sessions. Use model breakdowns when you want to understand technology choice, not session shape.\",{\"children\":\"Use session breakdowns when you want to investigate behavior in actual working sessions. Use model breakdowns when you want to understand technology choice, not session shape.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$La\",\"wrapped-vs-activity-heatmap\",{\"href\":\"/compare/wrapped-vs-activity-heatmap\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Wrapped vs activity heatmap\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare wrapped summaries and activity heatmaps for AI coding retrospectives and decide which communication surface fits the story.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Wrapped summary and Activity heatmap solve different reporting jobs.\",{\"children\":\"Wrapped summary and Activity heatmap solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\",{\"children\":\"Choose wrapped when the goal is a polished summary page. Choose the heatmap when the goal is to show consistency, gaps, and daily coding intensity at a glance.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"$La\",\"manual-tracking-vs-vibestats\",{\"href\":\"/compare/manual-tracking-vs-vibestats\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Manual tracking vs vibestats\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare manual AI usage tracking in notes or spreadsheets with automated local reporting in vibestats.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Manual tracking and vibestats solve different reporting jobs.\",{\"children\":\"Manual tracking and vibestats solve different reporting jobs.\"}],[\"$\",\"li\",\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\",{\"children\":\"Use manual tracking only if your reporting need is tiny and temporary. Use vibestats when you want repeated, lower-friction usage analysis that does not depend on perfect memory.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"$La\",\"querystring-shares-vs-stored-share-pages\",{\"href\":\"/compare/querystring-shares-vs-stored-share-pages\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Querystring shares vs stored share pages\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare querystring-based usage sharing with stored share artifacts and understand why hosted share pages are easier to maintain.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Querystring shares and Stored share pages solve different reporting jobs.\",{\"children\":\"Querystring shares and Stored share pages solve different reporting jobs.\"}],[\"$\",\"li\",\"Use stored share pages when you want share URLs to behave like real pages. Querystring sharing is mostly a fallback or legacy compatibility layer.\",{\"children\":\"Use stored share pages when you want share URLs to behave like real pages. Querystring sharing is mostly a fallback or legacy compatibility layer.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"$La\",\"terminal-table-vs-json-output\",{\"href\":\"/compare/terminal-table-vs-json-output\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Terminal table vs JSON output\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Terminal tables and JSON output solve different reporting jobs.\",{\"children\":\"Terminal tables and JSON output solve different reporting jobs.\"}],[\"$\",\"li\",\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\",{\"children\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"$La\",\"single-source-vs-combined-tracking\",{\"href\":\"/compare/single-source-vs-combined-tracking\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Single-source vs combined tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Single-source tracking and Combined tracking solve different reporting jobs.\",{\"children\":\"Single-source tracking and Combined tracking solve different reporting jobs.\"}],[\"$\",\"li\",\"Use single-source tracking when the question is about one tool. Use combined tracking when you need one narrative for the whole workflow or reporting period.\",{\"children\":\"Use single-source tracking when the question is about one tool. Use combined tracking when you need one narrative for the whole workflow or reporting period.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"$La\",\"token-volume-vs-cost-estimation\",{\"href\":\"/compare/token-volume-vs-cost-estimation\",\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] transition hover:-translate-y-0.5 hover:border-orange-300\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Token volume vs cost estimation\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Compare token volume reporting with cost estimation and understand why both matter in vibestats.\"}],[\"$\",\"ul\",null,{\"className\":\"mt-5 space-y-2 text-sm leading-6 text-slate-600\",\"children\":[[\"$\",\"li\",\"Token volume and Cost estimation solve different reporting jobs.\",{\"children\":\"Token volume and Cost estimation solve different reporting jobs.\"}],[\"$\",\"li\",\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\",{\"children\":\"Lead with token volume when you care about behavior and intensity. Lead with cost when the question is budget, tooling choice, or spend control. Keep both when possible.\"}],[\"$\",\"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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n18:null\n"])</script><script>self.__next_f.push([1,"1a:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Compare | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics,AI coding analytics comparison,manual tracking vs vibestats,local vs cloud AI analytics\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Compare | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare\"}],[\"$\",\"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\":\"Compare | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"1f:\"$1a:metadata\"\n"])</script></body></html>
@@ -4,7 +4,7 @@
4
4
  4:I[3609,[],""]
5
5
  9:I[2207,[],""]
6
6
  :HL["/_next/static/css/335de1248158d380.css","style"]
7
- 5:T75d,{"@context":"https://schema.org","@type":"CollectionPage","name":"AI coding analytics comparisons","description":"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.","url":"https://vibestats.wolfai.dev/compare","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Local vs cloud AI analytics","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"},{"@type":"ListItem","position":2,"name":"Claude Code vs Codex CLI tracking","url":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"},{"@type":"ListItem","position":3,"name":"Daily vs monthly AI usage reports","url":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"},{"@type":"ListItem","position":4,"name":"Session breakdown vs model breakdown","url":"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown"},{"@type":"ListItem","position":5,"name":"Wrapped vs activity heatmap","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"},{"@type":"ListItem","position":6,"name":"Manual tracking vs vibestats","url":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"},{"@type":"ListItem","position":7,"name":"Querystring shares vs stored share pages","url":"https://vibestats.wolfai.dev/compare/querystring-shares-vs-stored-share-pages"},{"@type":"ListItem","position":8,"name":"Terminal table vs JSON output","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"},{"@type":"ListItem","position":9,"name":"Single-source vs combined tracking","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"},{"@type":"ListItem","position":10,"name":"Token volume vs cost estimation","url":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}]}}0:{"P":null,"b":"3pcP-Y7gHe02EnmTXxc9b","p":"","c":["","compare"],"i":false,"f":[[["",{"children":["compare",{"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":["__PAGE__",["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$5"}}],"$L6"]}],null,"$L7"]}],{},null,false]},null,false]},null,false],"$L8",false]],"m":"$undefined","G":["$9",[]],"s":false,"S":true}
7
+ 5:T75d,{"@context":"https://schema.org","@type":"CollectionPage","name":"AI coding analytics comparisons","description":"Compare local vs cloud analytics, wrapped vs activity reports, manual tracking vs vibestats, and other AI coding reporting workflows.","url":"https://vibestats.wolfai.dev/compare","mainEntity":{"@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"name":"Local vs cloud AI analytics","url":"https://vibestats.wolfai.dev/compare/local-vs-cloud-ai-analytics"},{"@type":"ListItem","position":2,"name":"Claude Code vs Codex CLI tracking","url":"https://vibestats.wolfai.dev/compare/claude-code-vs-codex-cli-tracking"},{"@type":"ListItem","position":3,"name":"Daily vs monthly AI usage reports","url":"https://vibestats.wolfai.dev/compare/daily-vs-monthly-ai-usage-reports"},{"@type":"ListItem","position":4,"name":"Session breakdown vs model breakdown","url":"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown"},{"@type":"ListItem","position":5,"name":"Wrapped vs activity heatmap","url":"https://vibestats.wolfai.dev/compare/wrapped-vs-activity-heatmap"},{"@type":"ListItem","position":6,"name":"Manual tracking vs vibestats","url":"https://vibestats.wolfai.dev/compare/manual-tracking-vs-vibestats"},{"@type":"ListItem","position":7,"name":"Querystring shares vs stored share pages","url":"https://vibestats.wolfai.dev/compare/querystring-shares-vs-stored-share-pages"},{"@type":"ListItem","position":8,"name":"Terminal table vs JSON output","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"},{"@type":"ListItem","position":9,"name":"Single-source vs combined tracking","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"},{"@type":"ListItem","position":10,"name":"Token volume vs cost estimation","url":"https://vibestats.wolfai.dev/compare/token-volume-vs-cost-estimation"}]}}0:{"P":null,"b":"bkF3quPLxz4vmu3191LYm","p":"","c":["","compare"],"i":false,"f":[[["",{"children":["compare",{"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":["__PAGE__",["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$5"}}],"$L6"]}],null,"$L7"]}],{},null,false]},null,false]},null,false],"$L8",false]],"m":"$undefined","G":["$9",[]],"s":false,"S":true}
8
8
  a:I[4816,["816","static/chunks/816-8960921093d57453.js","402","static/chunks/app/compare/page-5d0587c1d5910e68.js"],""]
9
9
  17:I[496,[],"OutletBoundary"]
10
10
  19:I[3737,[],"AsyncMetadataOutlet"]
@@ -1 +1 @@
1
- <!DOCTYPE html><!--3pcP_Y7gHe02EnmTXxc9b--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/971-0ab6a23b2af361a6.js" async=""></script><script src="/_next/static/chunks/app/dashboard/activity/page-e84049538e03061e.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats local dashboard | vibestats</title><meta name="description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics"/><meta name="robots" content="noindex, nofollow"/><link rel="canonical" href="https://vibestats.wolfai.dev"/><meta property="og:title" content="vibestats"/><meta property="og:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta property="og:url" content="https://vibestats.wolfai.dev"/><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="vibestats"/><meta name="twitter:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-stone-950 text-stone-100"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><main class="p-8 text-stone-400">Loading…</main><!--/$--><!--$--><!--/$--></div><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,[],\"\"]\n5:I[1684,[],\"ClientPageRoot\"]\n6:I[6427,[\"971\",\"static/chunks/971-0ab6a23b2af361a6.js\",\"199\",\"static/chunks/app/dashboard/activity/page-e84049538e03061e.js\"],\"default\"]\n9:I[496,[],\"OutletBoundary\"]\nb:I[3737,[],\"AsyncMetadataOutlet\"]\nd:I[496,[],\"ViewportBoundary\"]\nf:I[496,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"dashboard\",\"activity\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"activity\",{\"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\":[\"dashboard\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-stone-950 text-stone-100\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],{\"children\":[\"activity\",[\"$\",\"$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,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"vibestats local dashboard | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--bkF3quPLxz4vmu3191LYm--><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/971-0ab6a23b2af361a6.js" async=""></script><script src="/_next/static/chunks/app/dashboard/activity/page-e84049538e03061e.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats local dashboard | vibestats</title><meta name="description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics"/><meta name="robots" content="noindex, nofollow"/><link rel="canonical" href="https://vibestats.wolfai.dev"/><meta property="og:title" content="vibestats"/><meta property="og:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta property="og:url" content="https://vibestats.wolfai.dev"/><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="vibestats"/><meta name="twitter:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-stone-950 text-stone-100"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><main class="p-8 text-stone-400">Loading…</main><!--/$--><!--$--><!--/$--></div><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,[],\"\"]\n5:I[1684,[],\"ClientPageRoot\"]\n6:I[6427,[\"971\",\"static/chunks/971-0ab6a23b2af361a6.js\",\"199\",\"static/chunks/app/dashboard/activity/page-e84049538e03061e.js\"],\"default\"]\n9:I[496,[],\"OutletBoundary\"]\nb:I[3737,[],\"AsyncMetadataOutlet\"]\nd:I[496,[],\"ViewportBoundary\"]\nf:I[496,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkF3quPLxz4vmu3191LYm\",\"p\":\"\",\"c\":[\"\",\"dashboard\",\"activity\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"activity\",{\"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\":[\"dashboard\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-stone-950 text-stone-100\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],{\"children\":[\"activity\",[\"$\",\"$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,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"vibestats local dashboard | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
@@ -11,7 +11,7 @@ f:I[496,[],"MetadataBoundary"]
11
11
  10:"$Sreact.suspense"
12
12
  12:I[2207,[],""]
13
13
  :HL["/_next/static/css/335de1248158d380.css","style"]
14
- 0:{"P":null,"b":"3pcP-Y7gHe02EnmTXxc9b","p":"","c":["","dashboard","activity"],"i":false,"f":[[["",{"children":["dashboard",{"children":["activity",{"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":["dashboard",["$","$1","c",{"children":[null,["$","div",null,{"className":"min-h-screen bg-stone-950 text-stone-100","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":["activity",["$","$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,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],null,["$","$L9",null,{"children":["$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Ld",null,{"children":"$Le"}],null],["$","$Lf",null,{"children":["$","div",null,{"hidden":true,"children":["$","$10",null,{"fallback":null,"children":"$L11"}]}]}]]}],false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true}
14
+ 0:{"P":null,"b":"bkF3quPLxz4vmu3191LYm","p":"","c":["","dashboard","activity"],"i":false,"f":[[["",{"children":["dashboard",{"children":["activity",{"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":["dashboard",["$","$1","c",{"children":[null,["$","div",null,{"className":"min-h-screen bg-stone-950 text-stone-100","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":["activity",["$","$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,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],null,["$","$L9",null,{"children":["$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Ld",null,{"children":"$Le"}],null],["$","$Lf",null,{"children":["$","div",null,{"hidden":true,"children":["$","$10",null,{"fallback":null,"children":"$L11"}]}]}]]}],false]],"m":"$undefined","G":["$12",[]],"s":false,"S":true}
15
15
  7:{}
16
16
  8:"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params"
17
17
  e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -1 +1 @@
1
- <!DOCTYPE html><!--3pcP_Y7gHe02EnmTXxc9b--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/335de1248158d380.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-175b2f5685d7557b.js"/><script src="/_next/static/chunks/c476d598-9099ed8b975ae1d6.js" async=""></script><script src="/_next/static/chunks/498-74a3a367cb8442f0.js" async=""></script><script src="/_next/static/chunks/main-app-6619364ab1f13fb7.js" async=""></script><script src="/_next/static/chunks/app/layout-6ebd9b17af55ec02.js" async=""></script><script src="/_next/static/chunks/971-0ab6a23b2af361a6.js" async=""></script><script src="/_next/static/chunks/832-93b990b7ceeaa2c5.js" async=""></script><script src="/_next/static/chunks/app/dashboard/usage/page-b42b457b8fd3865c.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats local dashboard | vibestats</title><meta name="description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics"/><meta name="robots" content="noindex, nofollow"/><link rel="canonical" href="https://vibestats.wolfai.dev"/><meta property="og:title" content="vibestats"/><meta property="og:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta property="og:url" content="https://vibestats.wolfai.dev"/><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="vibestats"/><meta name="twitter:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-stone-950 text-stone-100"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><main class="p-8 text-stone-400">Loading…</main><!--/$--><!--$--><!--/$--></div><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,[],\"\"]\n5:I[1684,[],\"ClientPageRoot\"]\n6:I[2160,[\"971\",\"static/chunks/971-0ab6a23b2af361a6.js\",\"832\",\"static/chunks/832-93b990b7ceeaa2c5.js\",\"713\",\"static/chunks/app/dashboard/usage/page-b42b457b8fd3865c.js\"],\"default\"]\n9:I[496,[],\"OutletBoundary\"]\nb:I[3737,[],\"AsyncMetadataOutlet\"]\nd:I[496,[],\"ViewportBoundary\"]\nf:I[496,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"dashboard\",\"usage\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"usage\",{\"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\":[\"dashboard\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-stone-950 text-stone-100\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],{\"children\":[\"usage\",[\"$\",\"$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,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"vibestats local dashboard | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
1
+ <!DOCTYPE html><!--bkF3quPLxz4vmu3191LYm--><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/971-0ab6a23b2af361a6.js" async=""></script><script src="/_next/static/chunks/832-93b990b7ceeaa2c5.js" async=""></script><script src="/_next/static/chunks/app/dashboard/usage/page-b42b457b8fd3865c.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>vibestats local dashboard | vibestats</title><meta name="description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta name="application-name" content="vibestats"/><meta name="keywords" content="vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics"/><meta name="robots" content="noindex, nofollow"/><link rel="canonical" href="https://vibestats.wolfai.dev"/><meta property="og:title" content="vibestats"/><meta property="og:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><meta property="og:url" content="https://vibestats.wolfai.dev"/><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="vibestats"/><meta name="twitter:description" content="Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-stone-950 text-stone-100"><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><main class="p-8 text-stone-400">Loading…</main><!--/$--><!--$--><!--/$--></div><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,[],\"\"]\n5:I[1684,[],\"ClientPageRoot\"]\n6:I[2160,[\"971\",\"static/chunks/971-0ab6a23b2af361a6.js\",\"832\",\"static/chunks/832-93b990b7ceeaa2c5.js\",\"713\",\"static/chunks/app/dashboard/usage/page-b42b457b8fd3865c.js\"],\"default\"]\n9:I[496,[],\"OutletBoundary\"]\nb:I[3737,[],\"AsyncMetadataOutlet\"]\nd:I[496,[],\"ViewportBoundary\"]\nf:I[496,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n12:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkF3quPLxz4vmu3191LYm\",\"p\":\"\",\"c\":[\"\",\"dashboard\",\"usage\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"usage\",{\"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\":[\"dashboard\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-stone-950 text-stone-100\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}],{\"children\":[\"usage\",[\"$\",\"$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,{\"Component\":\"$6\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}],null,[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"vibestats local dashboard | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"vibestats,Claude Code stats,Codex CLI stats,AI coding stats,AI coding analytics,Claude Code wrapped,Codex usage tracker,developer analytics\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"link\",\"5\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Track Claude Code and OpenAI Codex CLI usage locally. Generate token, cost, wrapped, activity, and share reports without uploading prompts or responses.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>