opencode-session-costOpenCode TUI plugin that shows total cost of the active session plus all subagent (task) sessions in the sidebar, using only OpenCode's own local session data.
1
0
22.4
Multi-signal model
17 hours ago
2026-08-19
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-session-cost@1.1.0"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-session-cost@1.1.0"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencode-session-costopencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
Do you know how much you're really spending on a session? Subagent costs hide from you by default in OpenCode. This plugin adds a sidebar block showing your true total — session + every subagent it spawned — and lets you expand it to see the cost of each one.

Installation
This is a TUI-only plugin. It has no server-side hook and must be added
to tui.json, not opencode.json.
Quick install (recommended)
Run this from a terminal — it installs the package and adds it to your
global tui.json automatically:
opencode plugin opencode-session-cost --global
Restart the OpenCode TUI afterwards for the sidebar block to appear.
Manual install
Add this to tui.json yourself instead:
{
"plugin": [["opencode-session-cost", { "enabled": true }]]
}
Using a local checkout instead of the npm package? Point at the directory:
{
"plugin": [
["/absolute/path/to/opencode-session-cost", { "enabled": true }]
]
}
Restart the OpenCode TUI after editing tui.json.
Options
| Option | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | true |
When false, the plugin's tui() returns immediately and registers nothing. |
There is no provider allow-list and no other configuration — this works for every session regardless of model or provider.
Development
bun install
bun run typecheck # tsc --noEmit
bun test # bun:test, pure logic in src/cost.test.ts
bun run build # Bun.build (JSX) + tsc --emitDeclarationOnly (types)
Contributing
Contributions are welcome. See CONTRIBUTING.md for development setup, coding standards, and the pull request process.
License
MIT — see LICENSE.