{{ message }}
feat(opencode): add modelBreakdowns to JSON output#816
Closed
mjyoo2 wants to merge 1 commit into
Closed
Conversation
Add per-model token breakdown to all opencode commands for consistency with ccusage output. This enables tracking usage across different models. Modified commands: - daily: includes modelBreakdowns in JSON output - monthly: includes modelBreakdowns in JSON output - weekly: includes modelBreakdowns in JSON output - session: includes modelBreakdowns in JSON output Each breakdown contains: - modelName, inputTokens, outputTokens - cacheCreationTokens, cacheReadTokens, cost Implementation matches ccusage exactly: - TokenStats type for aggregation - createModelBreakdowns() helper function - Sorted by cost descending - Skip <synthetic> model - Fallback to 'unknown' for missing model names
Member
|
Keeping this open during triage. The feature request is still useful, but the patch targets the old standalone OpenCode command files and now conflicts with the current unified adapter/reporting architecture. The current implementation should be reworked around apps/ccusage/src/adapter/shared.ts / AgentUsageRow / commands/agent.ts so modelBreakdowns are produced by the shared aggregation path rather than duplicating per-command logic. |
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Add
modelBreakdownsfield to@ccusage/opencodeJSON output for feature parity withccusage(Claude Code).Currently
@ccusage/opencodeonly providesmodelsUsed(model name array), whileccusageprovides detailedmodelBreakdownswith per-model token counts and costs.Changes
modelBreakdownsarray to JSON output in daily, weekly, monthly, and session reportsmodelName,inputTokens,outputTokens,cacheCreationTokens,cacheReadTokens,costmodelsUsedarray is preservedBefore/After
Before
{ "daily": [{ "date": "2026-01-20", "inputTokens": 228, "outputTokens": 346277, "totalCost": 95.38, "modelsUsed": ["claude-opus-4-5", "gpt-5.2-codex"] }] }After
{ "daily": [{ "date": "2026-01-20", "inputTokens": 228, "outputTokens": 346277, "totalCost": 95.38, "modelsUsed": ["claude-opus-4-5", "gpt-5.2-codex"], "modelBreakdowns": [ { "modelName": "claude-opus-4-5", "inputTokens": 200, "outputTokens": 340000, "cacheCreationTokens": 7268400, "cacheReadTokens": 82593000, "cost": 94.50 }, { "modelName": "gpt-5.2-codex", "inputTokens": 28, "outputTokens": 6277, "cacheCreationTokens": 0, "cacheReadTokens": 0, "cost": 0.88 } ] }] }Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.