Skip to content

TUI: show real-time TPS (tokens/sec) in the bottom status bar #57275

Closed as duplicate

Description

@LivioGama

Feature request

Show tokens per second (TPS) in the OpenCode TUI bottom status bar, updated live as a model generates.

Motivation

OpenCode already reports tokens: {input, output, reasoning} per turn (visible in --format json and the API), but the TUI only shows the raw counts. A live TPS figure is the single most useful number for comparing models and spotting regressions in throughput — especially when users switch providers/models mid-session.

What's already available (no new data needed)

Each streamed text part carries a generation window:

{"type":"text","part":{"text":"...","time":{"start":1792469081557,"end":1792469083585}}}

and step_finish reports tokens.output. So:

TPS = tokens.output / ((time.end - time.start) / 1000)

is computable from data OpenCode already collects. This is exactly what a small external benchmark script has to reconstruct today (see the linked discussion), which is why surfacing it in the TUI would save users the workaround.

Suggested UX

  • Bottom status bar: a compact TPS: 59.9 (or TPS: 59.9 (avg 61.2)) updated on step_finish.
  • Optional: dim/gray it when the model is still generating (use time.start as the start of the current window, now as the live estimate).
  • Hide it when tokens.output isn't reported by the provider (some providers omit usage), rather than showing 0.

Why not just the counts?

Counts alone don't tell you how fast a model is — a 120-token reply in 2s vs 10s is a very different experience, and the difference is invisible from output: 120. TPS makes the speed dimension visible at a glance, which is increasingly important now that users can switch between 20+ providers/models in one session.

Scope note

This is a TUI surfacing change only — no provider/API changes required. The data is already there; it just needs to be rendered.

Related

  • External workaround: a small opencode run --format json based script that computes TPS from time + tokens.output per model. Happy to share if useful.

Activity

  1. opencode-agent commented on Oct 20, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed write-up! I think this is a duplicate of #47914, which asks for the same thing: a live tokens-per-second figure in the TUI status bar while the model generates, plus a final or average value.

    Possible duplicates and related issues, ordered by likelihood:

    The v2 TUI already shows tok/s for each completed turn, in the line under each assistant reply (agent · model · duration · N tok/s). You can turn it on or off in /settings → Session → TPS. What's still missing is the live, status-bar version, which #47914 covers.

    The bot will close this issue as a duplicate in 1 day unless you reply explaining how your request is different.

  2. LivioGama commented on Oct 20, 2026

    @LivioGama
    Author

    Closing — this is being handled locally via a CLI plugin instead of an upstream feature request.

  3. opencode-agent commented on Oct 21, 2026

    @opencode-agent
    Contributor

    We haven't heard back, so I'm closing this as a duplicate of #47914, which asks for the same live tokens-per-second figure in the TUI status bar. You can follow it there and add a 👍 or any details, such as your external benchmark script.

    In the meantime, the v2 TUI shows tok/s for each completed turn in the line under each assistant reply. You can turn it on or off in /settings → Session → TPS.

    If your request is different from #47914, reply here and explain how, and the issue can be reopened. Thanks again for the detailed write-up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions