Skip to content

anxkhn/opencode-usage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opencode usage

opencode usage: token and cost stats inside OpenCode

License: GPL-3.0 opencode plugin

A tiny OpenCode plugin that adds a /usage slash command. It reads OpenCode's own local SQLite database and shows your token + cost usage for today / this week / this month / all-time, plus a per-model breakdown, in a dialog.

OpenCode Usage  ·  1,205 messages  ·  114.54M tokens  ·  $145.91 all-time
generated 2026-01-15 14:32

              MSGS    INPUT   OUTPUT     CACHE      COST
Today           41   192.4K    33.5K     3.76M     $4.90
This Week      299    1.37M   233.9K    26.53M    $37.88
This Month     768    3.49M   583.7K    68.10M    $94.88
All Time     1,205    5.50M   925.6K   108.11M   $145.91

MODELS
                              MSGS   INPUT   OUTPUT    CACHE     COST
anthropic/claude-sonnet-4-5    715   3.26M   552.1K   64.75M   $85.77
openai/gpt-5                   490   2.24M   373.4K   43.37M   $60.13

Install

Option 1: one-line installer

curl -fsSL https://raw.githubusercontent.com/anxkhn/opencode-usage/main/install.sh | bash

Option 2: let OpenCode install it

Paste this into OpenCode and let the agent do it:

Install the opencode-usage tool by reading and following
https://raw.githubusercontent.com/anxkhn/opencode-usage/main/INSTALL.md

Option 3: manual

git clone https://github.com/anxkhn/opencode-usage
cd opencode-usage
cp usage.mjs        ~/.config/opencode/usage.mjs
cp usage-plugin.ts  ~/.config/opencode/usage-plugin.ts
chmod +x ~/.config/opencode/usage.mjs

Then declare the plugin in ~/.config/opencode/tui.json (this is required: TUI plugins are not auto-discovered from a directory). Create the file, or add the entry to your existing plugin array:

{
  "$schema": "https://opencode.ai/tui.json",
  "plugin": ["./usage-plugin.ts"]
}

Fully quit and reopen OpenCode so it loads the plugin. OpenCode auto-installs the small @opencode-ai/plugin dependency on startup.

Use it

In the OpenCode TUI, type:

/usage        # also available as /cost or /tokens

A dialog pops up with today / this week / this month / all-time and your per-model breakdown. Press enter or esc to dismiss it.

Optional terminal CLI

usage.mjs also runs standalone if you ever want it outside the TUI:

node ~/.config/opencode/usage.mjs            # full overview + recent days
node ~/.config/opencode/usage.mjs today      # one window
node ~/.config/opencode/usage.mjs week
node ~/.config/opencode/usage.mjs month
node ~/.config/opencode/usage.mjs all
node ~/.config/opencode/usage.mjs daily      # per-day table (last 30 days)
node ~/.config/opencode/usage.mjs models     # per-model breakdown

How it works

usage.mjs            engine + CLI (reads the DB, aggregates, formats)
usage-plugin.ts      TUI plugin: registers the /usage slash command
tui.json             declares the plugin so the TUI loads it
test/plugin.test.mjs verifies registration + rendering with a mock host

OpenCode's TUI only loads plugins listed in tui.json, so the installer adds ./usage-plugin.ts there (dropping a file in plugin/ is not enough for a TUI plugin). Every assistant message OpenCode stores carries its own cost and tokens (input, output, reasoning, cache read/write) plus a timestamp. usage.mjs reads those rows read-only, drops messages that did no billable work, buckets the rest by local day/week/month, and prints aligned totals. OUTPUT folds in reasoning tokens; CACHE is cache read + write. The reader prefers bun:sqlite (OpenCode's runtime) and falls back to node:sqlite, so the CLI also works under plain Node 22+.

Non-default data location

The database path is resolved the way OpenCode resolves it. Override it if your data lives elsewhere:

  • OPENCODE_DB — full path to opencode.db
  • OPENCODE_DATA_DIR or XDG_DATA_HOME — the OpenCode data directory

Test

node test/plugin.test.mjs

Uninstall

rm -f ~/.config/opencode/usage.mjs ~/.config/opencode/usage-plugin.ts

Then remove the "./usage-plugin.ts" entry from ~/.config/opencode/tui.json.

License

GPL-3.0

About

the missing OpenCode /usage command showing daily, weekly, monthly and all-time token + cost stats

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors