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.
- package/dist/index.js +13 -2
- package/dist/web/404.html +1 -1
- package/dist/web/activity.html +1 -1
- package/dist/web/activity.txt +1 -1
- package/dist/web/changelog.html +1 -1
- package/dist/web/changelog.txt +54 -53
- package/dist/web/compare/claude-code-vs-codex-cli-tracking.html +1 -1
- package/dist/web/compare/claude-code-vs-codex-cli-tracking.txt +1 -1
- package/dist/web/compare/daily-vs-monthly-ai-usage-reports.html +1 -1
- package/dist/web/compare/daily-vs-monthly-ai-usage-reports.txt +1 -1
- package/dist/web/compare/local-vs-cloud-ai-analytics.html +1 -1
- package/dist/web/compare/local-vs-cloud-ai-analytics.txt +1 -1
- package/dist/web/compare/manual-tracking-vs-vibestats.html +1 -1
- package/dist/web/compare/manual-tracking-vs-vibestats.txt +1 -1
- package/dist/web/compare/querystring-shares-vs-stored-share-pages.html +1 -1
- package/dist/web/compare/querystring-shares-vs-stored-share-pages.txt +1 -1
- package/dist/web/compare/session-breakdown-vs-model-breakdown.html +1 -1
- package/dist/web/compare/session-breakdown-vs-model-breakdown.txt +1 -1
- package/dist/web/compare/single-source-vs-combined-tracking.html +1 -1
- package/dist/web/compare/single-source-vs-combined-tracking.txt +1 -1
- package/dist/web/compare/terminal-table-vs-json-output.html +1 -1
- package/dist/web/compare/terminal-table-vs-json-output.txt +1 -1
- package/dist/web/compare/token-volume-vs-cost-estimation.html +1 -1
- package/dist/web/compare/token-volume-vs-cost-estimation.txt +1 -1
- package/dist/web/compare/wrapped-vs-activity-heatmap.html +1 -1
- package/dist/web/compare/wrapped-vs-activity-heatmap.txt +1 -1
- package/dist/web/compare.html +1 -1
- package/dist/web/compare.txt +1 -1
- package/dist/web/dashboard/activity.html +1 -1
- package/dist/web/dashboard/activity.txt +1 -1
- package/dist/web/dashboard/usage.html +1 -1
- package/dist/web/dashboard/usage.txt +1 -1
- package/dist/web/dashboard/wrapped.html +1 -1
- package/dist/web/dashboard/wrapped.txt +1 -1
- package/dist/web/dashboard.html +1 -1
- package/dist/web/dashboard.txt +1 -1
- package/dist/web/docs/commands.html +1 -1
- package/dist/web/docs/commands.txt +1 -1
- package/dist/web/docs.html +1 -1
- package/dist/web/docs.txt +1 -1
- package/dist/web/features/ai-coding-activity-heatmap.html +1 -1
- package/dist/web/features/ai-coding-activity-heatmap.txt +1 -1
- package/dist/web/features/ai-coding-wrapped.html +1 -1
- package/dist/web/features/ai-coding-wrapped.txt +1 -1
- package/dist/web/features/claude-code-stats.html +1 -1
- package/dist/web/features/claude-code-stats.txt +1 -1
- package/dist/web/features/claude-diagnostics.html +1 -1
- package/dist/web/features/claude-diagnostics.txt +1 -1
- package/dist/web/features/codex-cli-stats.html +1 -1
- package/dist/web/features/codex-cli-stats.txt +1 -1
- package/dist/web/features/combined-ai-coding-stats.html +1 -1
- package/dist/web/features/combined-ai-coding-stats.txt +1 -1
- package/dist/web/features/json-and-automation-exports.html +1 -1
- package/dist/web/features/json-and-automation-exports.txt +1 -1
- package/dist/web/features/model-breakdown.html +1 -1
- package/dist/web/features/model-breakdown.txt +1 -1
- package/dist/web/features/privacy-first-analytics.html +1 -1
- package/dist/web/features/privacy-first-analytics.txt +1 -1
- package/dist/web/features/session-breakdown.html +1 -1
- package/dist/web/features/session-breakdown.txt +1 -1
- package/dist/web/features/share-pages.html +1 -1
- package/dist/web/features/share-pages.txt +1 -1
- package/dist/web/features/token-and-cost-tracking.html +1 -1
- package/dist/web/features/token-and-cost-tracking.txt +1 -1
- package/dist/web/features.html +1 -1
- package/dist/web/features.txt +1 -1
- package/dist/web/guides/how-to-build-ai-activity-heatmap.html +1 -1
- package/dist/web/guides/how-to-build-ai-activity-heatmap.txt +1 -1
- package/dist/web/guides/how-to-compare-model-usage.html +1 -1
- package/dist/web/guides/how-to-compare-model-usage.txt +1 -1
- package/dist/web/guides/how-to-create-ai-coding-wrapped.html +1 -1
- package/dist/web/guides/how-to-create-ai-coding-wrapped.txt +1 -1
- package/dist/web/guides/how-to-measure-ai-token-costs.html +1 -1
- package/dist/web/guides/how-to-measure-ai-token-costs.txt +1 -1
- package/dist/web/guides/how-to-read-claude-diagnostics.html +1 -1
- package/dist/web/guides/how-to-read-claude-diagnostics.txt +1 -1
- package/dist/web/guides/how-to-share-ai-coding-stats.html +1 -1
- package/dist/web/guides/how-to-share-ai-coding-stats.txt +1 -1
- package/dist/web/guides/how-to-track-claude-code-usage.html +1 -1
- package/dist/web/guides/how-to-track-claude-code-usage.txt +1 -1
- package/dist/web/guides/how-to-track-codex-cli-usage.html +1 -1
- package/dist/web/guides/how-to-track-codex-cli-usage.txt +1 -1
- package/dist/web/guides.html +1 -1
- package/dist/web/guides.txt +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +1 -1
- package/dist/web/sitemap.xml +46 -46
- package/dist/web/use-cases/ai-agencies.html +1 -1
- package/dist/web/use-cases/ai-agencies.txt +1 -1
- package/dist/web/use-cases/consultants.html +1 -1
- package/dist/web/use-cases/consultants.txt +1 -1
- package/dist/web/use-cases/engineering-managers.html +1 -1
- package/dist/web/use-cases/engineering-managers.txt +1 -1
- package/dist/web/use-cases/freelancers.html +1 -1
- package/dist/web/use-cases/freelancers.txt +1 -1
- package/dist/web/use-cases/indie-hackers.html +1 -1
- package/dist/web/use-cases/indie-hackers.txt +1 -1
- package/dist/web/use-cases/monthly-reporting.html +1 -1
- package/dist/web/use-cases/monthly-reporting.txt +1 -1
- package/dist/web/use-cases/open-source-maintainers.html +1 -1
- package/dist/web/use-cases/open-source-maintainers.txt +1 -1
- package/dist/web/use-cases/personal-retrospectives.html +1 -1
- package/dist/web/use-cases/personal-retrospectives.txt +1 -1
- package/dist/web/use-cases/researchers.html +1 -1
- package/dist/web/use-cases/researchers.txt +1 -1
- package/dist/web/use-cases/weekly-reviews.html +1 -1
- package/dist/web/use-cases/weekly-reviews.txt +1 -1
- package/dist/web/use-cases.html +1 -1
- package/dist/web/use-cases.txt +1 -1
- package/dist/web/wrapped.html +1 -1
- package/dist/web/wrapped.txt +1 -1
- package/package.json +7 -8
- /package/dist/web/_next/static/{3pcP-Y7gHe02EnmTXxc9b → bkF3quPLxz4vmu3191LYm}/_buildManifest.js +0 -0
- /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":"
|
|
12
|
+
0:{"P":null,"b":"bkF3quPLxz4vmu3191LYm","p":"","c":["","compare","session-breakdown-vs-model-breakdown"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","session-breakdown-vs-model-breakdown","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","session-breakdown-vs-model-breakdown","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:T5cd,[{"@context":"https://schema.org","@type":"WebPage","name":"Session breakdown vs model breakdown","description":"Compare session-oriented reporting with model-oriented reporting for vibestats usage analysis.","url":"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown","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":"Session breakdown vs model breakdown","item":"https://vibestats.wolfai.dev/compare/session-breakdown-vs-model-breakdown"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Session breakdown or Model breakdown?","acceptedAnswer":{"@type":"Answer","text":"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."}},{"@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":"Session breakdown vs model breakdown"}]]}],["$","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":"Session breakdown vs model breakdown"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare session-oriented reporting with model-oriented reporting for vibestats usage analysis."}],["$","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":"The right answer depends on whether you are debugging activity structure or model mix."}]
|
|
@@ -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/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Single-source vs combined tracking | vibestats</title><meta name="description" content="Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."/><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,single source vs combined tracking,combined AI coding analytics,multi tool AI usage reporting"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"/><meta property="og:title" content="Single-source vs combined tracking | vibestats"/><meta property="og:description" content="Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Single-source vs combined tracking | vibestats"/><meta name="twitter:description" content="Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Single-source vs combined tracking","description":"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Single-source vs combined tracking","item":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Single-source tracking or Combined tracking?","acceptedAnswer":{"@type":"Answer","text":"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."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Single-source vs combined tracking</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Single-source vs combined tracking</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">Single-source views are sharper. Combined views are broader.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>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></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats claude</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats codex</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats all</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Tool-specific debugging and clean accountability.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">High-level reporting across the full AI coding workflow.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Noise</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Lower, because one source explains the result.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Higher, but closer to real multi-tool usage.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Management value</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful for source-specific questions.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful for one consolidated story.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Single-source tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Tool-specific debugging and clean accountability. Noise: Lower, because one source explains the result. Management value: Useful for source-specific questions.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Combined tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: High-level reporting across the full AI coding workflow. Noise: Higher, but closer to real multi-tool usage. Management value: Useful for one consolidated story.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use 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.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Single-source tracking or Combined tracking?</h2><p class="mt-3 text-sm leading-7 text-slate-600">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.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/combined-ai-coding-stats"><span class="block font-semibold text-slate-950">features combined-ai-coding-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/claude-code-stats"><span class="block font-semibold text-slate-950">features claude-code-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/codex-cli-stats"><span class="block font-semibold text-slate-950">features codex-cli-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"compare\",\"single-source-vs-combined-tracking\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"single-source-vs-combined-tracking\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"compare\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"single-source-vs-combined-tracking\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5ca,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Single-source vs combined tracking\",\"description\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\",\"url\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Single-source vs combined tracking\",\"item\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Single-source tracking or Combined tracking?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"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.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Single-source vs combined tracking\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Single-source vs combined tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],\"$L12\"]}],\"$L13\"]}]]}],\"$L14\",null,\"$L15\",\"$L16\",\"$L17\",\"$L18\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Single-source views are sharper. Combined views are broader.\"}]\n13:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"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.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats claude\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats claude\"}],[\"$\",\"code\",\"npx vibestats codex\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats codex\"}],[\"$\",\"code\",\"npx vibestats all\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats all\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Tool-specific debugging and clean accountability.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"High-level reporting across the full AI coding workflow.\"}]]}],[\"$\",\"tr\",\"Noise\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Noise\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Lower, because one source explains the result.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Higher, but closer to real multi-tool usage.\"}]]}],[\"$\",\"tr\",\"Management value\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Management value\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful for source-specific questions.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful for one consolidated story.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Single-source tracking wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Single-source tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Tool-specific debugging and clean accountability. Noise: Lower, because one source explains the result. Management value: Useful for source-specific questions.\"}]]}],[\"$\",\"article\",\"Where Combined tracking wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Combined tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: High-level reporting across the full AI coding workflow. Noise: Higher, but closer to real multi-tool usage. Management value: Useful for one consolidated story.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use 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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Single-source tracking or Combined tracking?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Single-source tracking or Combined tracking?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"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.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/combined-ai-coding-stats\",{\"href\":\"/features/combined-ai-coding-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features combined-ai-coding-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/claude-code-stats\",{\"href\":\"/features/claude-code-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features claude-code-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/codex-cli-stats\",{\"href\":\"/features/codex-cli-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features codex-cli-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Single-source vs combined tracking | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"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,single source vs combined tracking,combined AI coding analytics,multi tool AI usage reporting\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Single-source vs combined tracking | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Single-source vs combined tracking | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9: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/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Single-source vs combined tracking | vibestats</title><meta name="description" content="Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."/><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,single source vs combined tracking,combined AI coding analytics,multi tool AI usage reporting"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"/><meta property="og:title" content="Single-source vs combined tracking | vibestats"/><meta property="og:description" content="Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"/><meta property="og:site_name" content="vibestats"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Single-source vs combined tracking | vibestats"/><meta name="twitter:description" content="Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Single-source vs combined tracking","description":"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Single-source vs combined tracking","item":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Single-source tracking or Combined tracking?","acceptedAnswer":{"@type":"Answer","text":"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."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Single-source vs combined tracking</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Single-source vs combined tracking</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">Single-source views are sharper. Combined views are broader.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>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></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats claude</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats codex</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats all</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Tool-specific debugging and clean accountability.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">High-level reporting across the full AI coding workflow.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Noise</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Lower, because one source explains the result.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Higher, but closer to real multi-tool usage.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Management value</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful for source-specific questions.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Useful for one consolidated story.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Single-source tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Tool-specific debugging and clean accountability. Noise: Lower, because one source explains the result. Management value: Useful for source-specific questions.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Combined tracking wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: High-level reporting across the full AI coding workflow. Noise: Higher, but closer to real multi-tool usage. Management value: Useful for one consolidated story.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Use 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.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Single-source tracking or Combined tracking?</h2><p class="mt-3 text-sm leading-7 text-slate-600">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.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/combined-ai-coding-stats"><span class="block font-semibold text-slate-950">features combined-ai-coding-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/claude-code-stats"><span class="block font-semibold text-slate-950">features claude-code-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/codex-cli-stats"><span class="block font-semibold text-slate-950">features codex-cli-stats</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkF3quPLxz4vmu3191LYm\",\"p\":\"\",\"c\":[\"\",\"compare\",\"single-source-vs-combined-tracking\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"single-source-vs-combined-tracking\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/335de1248158d380.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-config\",\"strategy\":\"beforeInteractive\",\"children\":\"window.WOLF_ANALYTICS_CONFIG = {\\\"apiUrl\\\":\\\"https://analapi.wolfai.dev\\\",\\\"projectApiKey\\\":\\\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\\\",\\\"mode\\\":\\\"intl\\\",\\\"sourceApp\\\":\\\"vibestats\\\"};\"}],[\"$\",\"$L2\",null,{\"id\":\"wolf-analytics-script\",\"src\":\"https://analytics.wolfai.dev/wolf-analytics.min.js\",\"strategy\":\"beforeInteractive\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased min-h-screen bg-background text-foreground\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"compare\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"single-source-vs-combined-tracking\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T5ca,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Single-source vs combined tracking\",\"description\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\",\"url\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\",\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"vibestats\",\"url\":\"https://vibestats.wolfai.dev/\"}},{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"vibestats\",\"item\":\"https://vibestats.wolfai.dev/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Compare\",\"item\":\"https://vibestats.wolfai.dev/compare\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Single-source vs combined tracking\",\"item\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Single-source tracking or Combined tracking?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"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.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Single-source vs combined tracking\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"h1\",null,{\"className\":\"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl\",\"children\":\"Single-source vs combined tracking\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],\"$L12\"]}],\"$L13\"]}]]}],\"$L14\",null,\"$L15\",\"$L16\",\"$L17\",\"$L18\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Single-source views are sharper. Combined views are broader.\"}]\n13:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"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.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats claude\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats claude\"}],[\"$\",\"code\",\"npx vibestats codex\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats codex\"}],[\"$\",\"code\",\"npx vibestats all\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats all\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Tool-specific debugging and clean accountability.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"High-level reporting across the full AI coding workflow.\"}]]}],[\"$\",\"tr\",\"Noise\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Noise\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Lower, because one source explains the result.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Higher, but closer to real multi-tool usage.\"}]]}],[\"$\",\"tr\",\"Management value\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Management value\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful for source-specific questions.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Useful for one consolidated story.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Single-source tracking wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Single-source tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Tool-specific debugging and clean accountability. Noise: Lower, because one source explains the result. Management value: Useful for source-specific questions.\"}]]}],[\"$\",\"article\",\"Where Combined tracking wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Combined tracking wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: High-level reporting across the full AI coding workflow. Noise: Higher, but closer to real multi-tool usage. Management value: Useful for one consolidated story.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Use 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.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Single-source tracking or Combined tracking?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Single-source tracking or Combined tracking?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"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.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/combined-ai-coding-stats\",{\"href\":\"/features/combined-ai-coding-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features combined-ai-coding-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/claude-code-stats\",{\"href\":\"/features/claude-code-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features claude-code-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/features/codex-cli-stats\",{\"href\":\"/features/codex-cli-stats\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features codex-cli-stats\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Single-source vs combined tracking | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"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,single source vs combined tracking,combined AI coding analytics,multi tool AI usage reporting\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Single-source vs combined tracking | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"vibestats\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:title\",\"content\":\"Single-source vs combined tracking | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -9,7 +9,7 @@ c:I[496,[],"MetadataBoundary"]
|
|
|
9
9
|
d:"$Sreact.suspense"
|
|
10
10
|
f:I[2207,[],""]
|
|
11
11
|
:HL["/_next/static/css/335de1248158d380.css","style"]
|
|
12
|
-
0:{"P":null,"b":"
|
|
12
|
+
0:{"P":null,"b":"bkF3quPLxz4vmu3191LYm","p":"","c":["","compare","single-source-vs-combined-tracking"],"i":false,"f":[[["",{"children":["compare",{"children":[["slug","single-source-vs-combined-tracking","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/335de1248158d380.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","head",null,{"children":[["$","$L2",null,{"id":"wolf-analytics-config","strategy":"beforeInteractive","children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};"}],["$","$L2",null,{"id":"wolf-analytics-script","src":"https://analytics.wolfai.dev/wolf-analytics.min.js","strategy":"beforeInteractive"}]]}],["$","body",null,{"className":"antialiased min-h-screen bg-background text-foreground","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":["compare",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["slug","single-source-vs-combined-tracking","d"],["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L5",null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
|
|
13
13
|
11:I[4816,["816","static/chunks/816-8960921093d57453.js","874","static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js"],""]
|
|
14
14
|
10:T5ca,[{"@context":"https://schema.org","@type":"WebPage","name":"Single-source vs combined tracking","description":"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI.","url":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking","isPartOf":{"@type":"WebSite","name":"vibestats","url":"https://vibestats.wolfai.dev/"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"vibestats","item":"https://vibestats.wolfai.dev/"},{"@type":"ListItem","position":2,"name":"Compare","item":"https://vibestats.wolfai.dev/compare"},{"@type":"ListItem","position":3,"name":"Single-source vs combined tracking","item":"https://vibestats.wolfai.dev/compare/single-source-vs-combined-tracking"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Single-source tracking or Combined tracking?","acceptedAnswer":{"@type":"Answer","text":"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."}},{"@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":"Single-source vs combined tracking"}]]}],["$","p",null,{"className":"mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500","children":"Comparison"}],["$","h1",null,{"className":"mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl","children":"Single-source vs combined tracking"}],["$","p",null,{"className":"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg","children":"Compare one-source reporting with combined reporting for AI coding workflows across Claude Code and Codex CLI."}],["$","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":"Single-source views are sharper. Combined views are broader."}]
|
|
@@ -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/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Terminal table vs JSON output | vibestats</title><meta name="description" content="Compare human-readable terminal tables with JSON output for vibestats reporting and automation."/><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,terminal table vs json output,CLI output vs json,developer analytics automation"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"/><meta property="og:title" content="Terminal table vs JSON output | vibestats"/><meta property="og:description" content="Compare human-readable terminal tables with JSON output for vibestats reporting and automation."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"/><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="Terminal table vs JSON output | vibestats"/><meta name="twitter:description" content="Compare human-readable terminal tables with JSON output for vibestats reporting and automation."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Terminal table vs JSON output","description":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output","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":"Terminal table vs JSON output","item":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Terminal tables or JSON output?","acceptedAnswer":{"@type":"Answer","text":"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Terminal table vs JSON output</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Terminal table vs JSON output</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare human-readable terminal tables with JSON output for vibestats reporting and automation.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">These outputs solve different downstream problems.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>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></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --total</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --json</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Quick human review in the terminal.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Scripts, agents, dashboards, and pipelines.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Speed</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Faster when you only need to inspect the result.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Better when another system consumes the result.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Tradeoff</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Readable, but harder to automate.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Flexible, but less pleasant for eyeballing.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Terminal tables wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Quick human review in the terminal. Speed: Faster when you only need to inspect the result. Tradeoff: Readable, but harder to automate.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where JSON output wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Scripts, agents, dashboards, and pipelines. Speed: Better when another system consumes the result. Tradeoff: Flexible, but less pleasant for eyeballing.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Terminal tables or JSON output?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/json-and-automation-exports"><span class="block font-semibold text-slate-950">features json-and-automation-exports</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/engineering-managers"><span class="block font-semibold text-slate-950">use-cases engineering-managers</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/guides/how-to-compare-model-usage"><span class="block font-semibold text-slate-950">guides how-to-compare-model-usage</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"3pcP-Y7gHe02EnmTXxc9b\",\"p\":\"\",\"c\":[\"\",\"compare\",\"terminal-table-vs-json-output\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"terminal-table-vs-json-output\",\"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\",\"terminal-table-vs-json-output\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T577,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Terminal table vs JSON output\",\"description\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\",\"url\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\",\"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\":\"Terminal table vs JSON output\",\"item\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Terminal tables or JSON output?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Terminal table vs JSON output\"}]]}],[\"$\",\"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\":\"Terminal table vs JSON output\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"These outputs solve different downstream problems.\"}]]}],\"$L12\"]}]]}],\"$L13\",null,\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"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.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats --total\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --total\"}],[\"$\",\"code\",\"npx vibestats --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Quick human review in the terminal.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Scripts, agents, dashboards, and pipelines.\"}]]}],[\"$\",\"tr\",\"Speed\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Speed\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Faster when you only need to inspect the result.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Better when another system consumes the result.\"}]]}],[\"$\",\"tr\",\"Tradeoff\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Tradeoff\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Readable, but harder to automate.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Flexible, but less pleasant for eyeballing.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Terminal tables wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Terminal tables wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Quick human review in the terminal. Speed: Faster when you only need to inspect the result. Tradeoff: Readable, but harder to automate.\"}]]}],[\"$\",\"article\",\"Where JSON output wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where JSON output wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Scripts, agents, dashboards, and pipelines. Speed: Better when another system consumes the result. Tradeoff: Flexible, but less pleasant for eyeballing.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Terminal tables or JSON output?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Terminal tables or JSON output?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/json-and-automation-exports\",{\"href\":\"/features/json-and-automation-exports\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features json-and-automation-exports\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/engineering-managers\",{\"href\":\"/use-cases/engineering-managers\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases engineering-managers\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/guides/how-to-compare-model-usage\",{\"href\":\"/guides/how-to-compare-model-usage\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"guides how-to-compare-model-usage\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Terminal table vs JSON output | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"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,terminal table vs json output,CLI output vs json,developer analytics automation\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Terminal table vs JSON output | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"}],[\"$\",\"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\":\"Terminal table vs JSON output | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9: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/%5Bslug%5D/page-5d0587c1d5910e68.js" async=""></script><link rel="preload" href="https://analytics.wolfai.dev/wolf-analytics.min.js" as="script"/><title>Terminal table vs JSON output | vibestats</title><meta name="description" content="Compare human-readable terminal tables with JSON output for vibestats reporting and automation."/><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,terminal table vs json output,CLI output vs json,developer analytics automation"/><link rel="canonical" href="https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"/><meta property="og:title" content="Terminal table vs JSON output | vibestats"/><meta property="og:description" content="Compare human-readable terminal tables with JSON output for vibestats reporting and automation."/><meta property="og:url" content="https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"/><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="Terminal table vs JSON output | vibestats"/><meta name="twitter:description" content="Compare human-readable terminal tables with JSON output for vibestats reporting and automation."/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"window.WOLF_ANALYTICS_CONFIG = {\"apiUrl\":\"https://analapi.wolfai.dev\",\"projectApiKey\":\"wa_rMSm5mgj44W_9LzMsKCwwAipAtxPynp1tn4PbxN_Oa8\",\"mode\":\"intl\",\"sourceApp\":\"vibestats\"};","id":"wolf-analytics-config"}])</script><script>(self.__next_s=self.__next_s||[]).push(["https://analytics.wolfai.dev/wolf-analytics.min.js",{"id":"wolf-analytics-script"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="antialiased min-h-screen bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div><main class="min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12"><script type="application/ld+json">[{"@context":"https://schema.org","@type":"WebPage","name":"Terminal table vs JSON output","description":"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.","url":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output","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":"Terminal table vs JSON output","item":"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output"}]},{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Should I choose Terminal tables or JSON output?","acceptedAnswer":{"@type":"Answer","text":"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human."}},{"@type":"Question","name":"Is this comparison about replacing everything with one report?","acceptedAnswer":{"@type":"Answer","text":"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack."}}]}]</script><div class="mx-auto max-w-7xl"><header class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><div class="flex flex-wrap items-center gap-3 text-sm text-slate-500"><a class="transition hover:text-orange-700" href="/">vibestats</a><span>/</span><a class="transition hover:text-orange-700" href="/compare">Compare</a><span>/</span><span class="text-slate-700">Terminal table vs JSON output</span></div><p class="mt-5 text-[0.72rem] font-semibold uppercase tracking-[0.28em] text-slate-500">Comparison</p><h1 class="mt-4 max-w-5xl font-[family-name:var(--font-display)] text-5xl leading-none text-slate-950 md:text-7xl">Terminal table vs JSON output</h1><p class="mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg">Compare human-readable terminal tables with JSON output for vibestats reporting and automation.</p><div class="mt-6 grid gap-3 md:grid-cols-3"><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Intent</div><div class="mt-2 text-sm leading-6 text-slate-700">Comparison</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Focus</div><div class="mt-2 text-sm leading-6 text-slate-700">These outputs solve different downstream problems.</div></div><div class="rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4"><div class="text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Next step</div><div class="mt-2 text-sm leading-6 text-slate-700"><a class="text-slate-900 transition hover:text-orange-700" href="/docs/commands">Open the command reference</a></div></div></div></header><section class="mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Highlights</p><ul class="mt-4 space-y-3 text-sm leading-7 text-slate-600"><li>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></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Relevant commands</p><div class="mt-4 grid gap-3"><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --total</code><code class="rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700">npx vibestats --json</code></div></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Comparison</p><div class="mt-5 overflow-x-auto"><table class="min-w-full border-separate border-spacing-y-3 text-left text-sm"><thead><tr class="text-slate-500"><th class="px-4 py-2 font-medium">Dimension</th><th class="px-4 py-2 font-medium">Left side</th><th class="px-4 py-2 font-medium">Right side</th></tr></thead><tbody><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Best for</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Quick human review in the terminal.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Scripts, agents, dashboards, and pipelines.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Speed</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Faster when you only need to inspect the result.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Better when another system consumes the result.</td></tr><tr class="align-top"><td class="rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900">Tradeoff</td><td class="bg-slate-50 px-4 py-4 leading-7 text-slate-600">Readable, but harder to automate.</td><td class="rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600">Flexible, but less pleasant for eyeballing.</td></tr></tbody></table></div></section><section class="mt-6 grid gap-4 md:grid-cols-2"><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where Terminal tables wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Quick human review in the terminal. Speed: Faster when you only need to inspect the result. Tradeoff: Readable, but harder to automate.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Where JSON output wins</h2><p class="mt-4 text-sm leading-7 text-slate-600">Best for: Scripts, agents, dashboards, and pipelines. Speed: Better when another system consumes the result. Tradeoff: Flexible, but less pleasant for eyeballing.</p></article><article class="rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><h2 class="font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Decision rule</h2><p class="mt-4 text-sm leading-7 text-slate-600">Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.</p></article></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">FAQ</p><div class="mt-4 grid gap-4 md:grid-cols-2"><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Should I choose Terminal tables or JSON output?</h2><p class="mt-3 text-sm leading-7 text-slate-600">Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.</p></article><article class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5"><h2 class="text-lg font-semibold text-slate-950">Is this comparison about replacing everything with one report?</h2><p class="mt-3 text-sm leading-7 text-slate-600">No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.</p></article></div></section><section class="mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]"><div class="flex items-center justify-between gap-4"><div><p class="text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500">Related pages</p><h2 class="mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950">Continue by intent</h2></div><a class="text-sm font-medium text-slate-700 transition hover:text-orange-700" href="/compare">View all <!-- -->compare</a></div><div class="mt-5 grid gap-4 md:grid-cols-3"><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/features/json-and-automation-exports"><span class="block font-semibold text-slate-950">features json-and-automation-exports</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/use-cases/engineering-managers"><span class="block font-semibold text-slate-950">use-cases engineering-managers</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a><a class="rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white" href="/guides/how-to-compare-model-usage"><span class="block font-semibold text-slate-950">guides how-to-compare-model-usage</span><span class="mt-2 block">Open the related vibestats page and continue the workflow from there.</span></a></div></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-175b2f5685d7557b.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7437,[\"177\",\"static/chunks/app/layout-6ebd9b17af55ec02.js\"],\"\"]\n3:I[5965,[],\"\"]\n4:I[3609,[],\"\"]\n6:I[496,[],\"OutletBoundary\"]\n8:I[3737,[],\"AsyncMetadataOutlet\"]\na:I[496,[],\"ViewportBoundary\"]\nc:I[496,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[2207,[],\"\"]\n:HL[\"/_next/static/css/335de1248158d380.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkF3quPLxz4vmu3191LYm\",\"p\":\"\",\"c\":[\"\",\"compare\",\"terminal-table-vs-json-output\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"compare\",{\"children\":[[\"slug\",\"terminal-table-vs-json-output\",\"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\",\"terminal-table-vs-json-output\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"11:I[4816,[\"816\",\"static/chunks/816-8960921093d57453.js\",\"874\",\"static/chunks/app/compare/%5Bslug%5D/page-5d0587c1d5910e68.js\"],\"\"]\n10:T577,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",\"name\":\"Terminal table vs JSON output\",\"description\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\",\"url\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\",\"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\":\"Terminal table vs JSON output\",\"item\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"}]},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Should I choose Terminal tables or JSON output?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}},{\"@type\":\"Question\",\"name\":\"Is this comparison about replacing everything with one report?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}}]}]"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"className\":\"min-h-screen bg-[radial-gradient(circle_at_top_left,_rgba(253,186,116,0.22),_transparent_35%),linear-gradient(180deg,#fff9f1_0%,#fff1de_100%)] px-4 py-8 text-slate-900 md:px-8 md:py-12\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$10\"}}],[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl\",\"children\":[[\"$\",\"header\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 text-sm text-slate-500\",\"children\":[[\"$\",\"$L11\",null,{\"href\":\"/\",\"className\":\"transition hover:text-orange-700\",\"children\":\"vibestats\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"transition hover:text-orange-700\",\"children\":\"Compare\"}],[\"$\",\"span\",null,{\"children\":\"/\"}],[\"$\",\"span\",null,{\"className\":\"text-slate-700\",\"children\":\"Terminal table vs JSON output\"}]]}],[\"$\",\"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\":\"Terminal table vs JSON output\"}],[\"$\",\"p\",null,{\"className\":\"mt-5 max-w-3xl text-base leading-7 text-slate-600 md:text-lg\",\"children\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-3 md:grid-cols-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Intent\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"Comparison\"}]]}],[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Focus\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":\"These outputs solve different downstream problems.\"}]]}],\"$L12\"]}]]}],\"$L13\",null,\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"rounded-[1.3rem] border border-slate-200 bg-slate-50 px-4 py-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-[0.7rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Next step\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-sm leading-6 text-slate-700\",\"children\":[\"$\",\"$L11\",null,{\"href\":\"/docs/commands\",\"className\":\"text-slate-900 transition hover:text-orange-700\",\"children\":\"Open the command reference\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 lg:grid-cols-[0.8fr_1.2fr]\",\"children\":[[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Highlights\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm leading-7 text-slate-600\",\"children\":[[\"$\",\"li\",\"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.\"}]]}]]}],[\"$\",\"article\",null,{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Relevant commands\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-3\",\"children\":[[\"$\",\"code\",\"npx vibestats --total\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --total\"}],[\"$\",\"code\",\"npx vibestats --json\",{\"className\":\"rounded-[1.2rem] bg-slate-100 px-4 py-4 text-sm text-slate-700\",\"children\":\"npx vibestats --json\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)] overflow-hidden\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Comparison\"}],[\"$\",\"div\",null,{\"className\":\"mt-5 overflow-x-auto\",\"children\":[\"$\",\"table\",null,{\"className\":\"min-w-full border-separate border-spacing-y-3 text-left text-sm\",\"children\":[[\"$\",\"thead\",null,{\"children\":[\"$\",\"tr\",null,{\"className\":\"text-slate-500\",\"children\":[[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Dimension\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Left side\"}],[\"$\",\"th\",null,{\"className\":\"px-4 py-2 font-medium\",\"children\":\"Right side\"}]]}]}],[\"$\",\"tbody\",null,{\"children\":[[\"$\",\"tr\",\"Best for\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Best for\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Quick human review in the terminal.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Scripts, agents, dashboards, and pipelines.\"}]]}],[\"$\",\"tr\",\"Speed\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Speed\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Faster when you only need to inspect the result.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Better when another system consumes the result.\"}]]}],[\"$\",\"tr\",\"Tradeoff\",{\"className\":\"align-top\",\"children\":[[\"$\",\"td\",null,{\"className\":\"rounded-l-[1rem] bg-slate-50 px-4 py-4 font-semibold text-slate-900\",\"children\":\"Tradeoff\"}],[\"$\",\"td\",null,{\"className\":\"bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Readable, but harder to automate.\"}],[\"$\",\"td\",null,{\"className\":\"rounded-r-[1rem] bg-slate-50 px-4 py-4 leading-7 text-slate-600\",\"children\":\"Flexible, but less pleasant for eyeballing.\"}]]}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"section\",null,{\"className\":\"mt-6 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Where Terminal tables wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where Terminal tables wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Quick human review in the terminal. Speed: Faster when you only need to inspect the result. Tradeoff: Readable, but harder to automate.\"}]]}],[\"$\",\"article\",\"Where JSON output wins\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Where JSON output wins\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Best for: Scripts, agents, dashboards, and pipelines. Speed: Better when another system consumes the result. Tradeoff: Flexible, but less pleasant for eyeballing.\"}]]}],[\"$\",\"article\",\"Decision rule\",{\"className\":\"rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Decision rule\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-sm leading-7 text-slate-600\",\"children\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"FAQ\"}],[\"$\",\"div\",null,{\"className\":\"mt-4 grid gap-4 md:grid-cols-2\",\"children\":[[\"$\",\"article\",\"Should I choose Terminal tables or JSON output?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Should I choose Terminal tables or JSON output?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"Choose terminal tables for operator speed and scanning. Choose JSON when the next step is another tool, not another human.\"}]]}],[\"$\",\"article\",\"Is this comparison about replacing everything with one report?\",{\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-lg font-semibold text-slate-950\",\"children\":\"Is this comparison about replacing everything with one report?\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-sm leading-7 text-slate-600\",\"children\":\"No. Most teams need more than one reporting view. The useful comparison is about which view answers which question, and when vibestats should be part of the stack.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"section\",null,{\"className\":\"mt-6 rounded-[1.8rem] border border-slate-200 bg-white/95 p-6 shadow-[0_20px_40px_rgba(15,23,42,0.06)]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-[0.72rem] font-semibold uppercase tracking-[0.22em] text-slate-500\",\"children\":\"Related pages\"}],[\"$\",\"h2\",null,{\"className\":\"mt-3 font-[family-name:var(--font-display)] text-3xl leading-none text-slate-950\",\"children\":\"Continue by intent\"}]]}],[\"$\",\"$L11\",null,{\"href\":\"/compare\",\"className\":\"text-sm font-medium text-slate-700 transition hover:text-orange-700\",\"children\":[\"View all \",\"compare\"]}]]}],[\"$\",\"div\",null,{\"className\":\"mt-5 grid gap-4 md:grid-cols-3\",\"children\":[[\"$\",\"$L11\",\"/features/json-and-automation-exports\",{\"href\":\"/features/json-and-automation-exports\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"features json-and-automation-exports\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/use-cases/engineering-managers\",{\"href\":\"/use-cases/engineering-managers\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"use-cases engineering-managers\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}],[\"$\",\"$L11\",\"/guides/how-to-compare-model-usage\",{\"href\":\"/guides/how-to-compare-model-usage\",\"className\":\"rounded-[1.4rem] border border-slate-200 bg-slate-50 px-5 py-5 text-sm leading-7 text-slate-600 transition hover:border-orange-300 hover:bg-white\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block font-semibold text-slate-950\",\"children\":\"guides how-to-compare-model-usage\"}],[\"$\",\"span\",null,{\"className\":\"mt-2 block\",\"children\":\"Open the related vibestats page and continue the workflow from there.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Terminal table vs JSON output | vibestats\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"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,terminal table vs json output,CLI output vs json,developer analytics automation\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Terminal table vs JSON output | vibestats\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://vibestats.wolfai.dev/compare/terminal-table-vs-json-output\"}],[\"$\",\"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\":\"Terminal table vs JSON output | vibestats\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:description\",\"content\":\"Compare human-readable terminal tables with JSON output for vibestats reporting and automation.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|