@@ -33,9 +33,10 @@ func FormatReasoningEffort(effort string) string {
3333
3434// ModelContextInfo contains token usage and cost information for a model.
3535type ModelContextInfo struct {
36− ContextUsed int64
37− ModelContext int64
38− Cost float64
36+ ContextUsed int64
37+ ModelContext int64
38+ Cost float64
39+ EstimatedUsage bool
3940}
4041
4142// ModelInfo renders model information including name, provider, reasoning
@@ -74,7 +75,7 @@ func ModelInfo(t *styles.Styles, modelName, providerName, reasoningInfo string,
7475 }
7576
7677 if context != nil {
77− formattedInfo := formatTokensAndCost(t, context.ContextUsed, context.ModelContext, context.Cost)
78+ formattedInfo := formatTokensAndCost(t, context.ContextUsed, context.ModelContext, context.Cost, context.EstimatedUsage)
7879 parts = append(parts, lipgloss.NewStyle().PaddingLeft(2).Render(formattedInfo))
7980 }
8081
@@ -92,7 +93,7 @@ func ModelInfo(t *styles.Styles, modelName, providerName, reasoningInfo string,
9293
9394// formatTokensAndCost formats token usage and cost with appropriate units
9495// (K/M) and percentage of context window.
95−func formatTokensAndCost(t *styles.Styles, tokens, contextWindow int64, cost float64) string {
96+func formatTokensAndCost(t *styles.Styles, tokens, contextWindow int64, cost float64, estimated bool) string {
9697 var formattedTokens string
9798 switch {
9899 case tokens >= 1_000_000:
@@ -115,7 +116,11 @@ func formatTokensAndCost(t *styles.Styles, tokens, contextWindow int64, cost flo
115116 formattedCost := t.ModelInfo.Cost.Render(fmt.Sprintf("$%.2f", cost))
116117
117118 formattedTokens = t.ModelInfo.TokenCount.Render(fmt.Sprintf("(%s)", formattedTokens))
118− formattedPercentage := t.ModelInfo.TokenPercentage.Render(fmt.Sprintf("%d%%", int(percentage)))
119+ percentageText := fmt.Sprintf("%d%%", int(percentage))
120+ if estimated {
121+ percentageText = t.ModelInfo.EstimatedUsagePrefix.Render("~") + percentageText
122+ }
123+ formattedPercentage := t.ModelInfo.TokenPercentage.Render(percentageText)
119124 formattedTokens = fmt.Sprintf("%s %s", formattedPercentage, formattedTokens)
120125 if percentage > 80 {
121126 formattedTokens = fmt.Sprintf("%s %s", styles.LSPWarningIcon, formattedTokens)