Skip to content
Claudekit.ai

Usage Meter: See Your Claude Code Limits in the Status Line

You get: Your Claude Code status line shows the model, context use and how much of your 5-hour and weekly plan limits you have used.

A free Claude Code kit that puts the model, context use and your 5-hour and weekly plan usage in the status line. One setup command, no tokens used.

By Claudekit Team Editor Tran Quang Dong Published Checked 2 min read

Test level

Smoke tested Claude Code actually loaded the kit and ran one scripted task in a capped run, and the result passed our checks. How we test
Tested with
Claude Code 2.1.290
Tested on
Setup time
About 3 minutes
For
Power users

Latest lab run: · Smoke tested · Claude Code 2.1.290 · 18 of 18 checks passed

Show checks
  • Passed: files (9 files, 20262 bytes)
  • Passed: manifest (usage-meter@0.1.1)
  • Passed: manifest-paths (no custom paths)
  • Passed: frontmatter (2 skills, agents and commands)
  • Passed: hooks (no hooks)
  • Passed: shell-syntax (4 scripts pass bash -n)
  • Passed: secrets (11 Kiln Guard rules, no findings)
  • Passed: network (every referenced host is allowlisted (pattern data not scanned: lab/test.sh))
  • Passed: destructive (4 command surfaces pass Kiln Guard (pattern data not scanned: lab/test.sh))
  • Passed: lab-spec (3 expectations, 2 scripts pass bash -n)
  • Passed: marketplace (listed as usage-meter)
  • Passed: plugin-validate (1 files valid, 0 warnings)
  • Passed: kit-tests (lab/test.sh passed)
  • Passed: smoke-fixture (lab/fixture.sh ready)
  • Passed: smoke-run (3 turns, $0.0439)
  • Passed: expect:file-exists (cfg/usage-meter-statusline.sh exists)
  • Passed: expect:file-matches (cfg/settings.json matches usage-meter-statusline\.sh)
  • Passed: expect:file-matches (cfg/settings.json matches "type": "command")

Install

In a Claude Code session, add the Claudekit marketplace once, then install:

/plugin marketplace add claudekit-ai/kits
/plugin install usage-meter@claudekit

Or download the kit and start Claude Code in your project with it loaded for one session. No unzipping needed:

claude --plugin-dir ./usage-meter.zip

Or load it straight from our site:

claude --plugin-url https://claudekit.ai/kits/usage-meter.zip

A kit can run hooks with your permissions. Read its files before you install it.

Steps

  1. Install jq 1.6 or later (brew install jq or apt install jq)
  2. Download usage-meter.zip and start Claude Code with claude --plugin-dir ./usage-meter.zip
  3. Run /usage-meter:install and approve the one Bash command it asks for
  4. Send one message so Claude Code passes the rate_limits data to the status line
  5. To remove it later, run /usage-meter:uninstall

Usage Meter is a free Claude Code kit that shows your 5-hour and weekly plan usage right under the prompt. Load the plugin, run /usage-meter:install, send a message, and you get a line like this:

[Opus] ctx 8% | 5h 23% (resets 16:00) | week 41% (resets Thu 16:00)

Each percentage turns yellow from 50% and red from 80%. It reads the rate_limits and context_window fields Claude Code passes to every status line, checked against the status line docs on 25 October 2026. It is the script from our statusline guide, packaged with an installer.

Plan note: the 5-hour and weekly numbers appear only on Pro and Max (or behind a Claude apps gateway with spend limits). On an API key you get the model and context only.

Setup, step by step

  1. Install jq 1.6 or later.

  2. Download usage-meter.zip.

  3. Start Claude Code with the kit loaded:

    claude --plugin-dir ./usage-meter.zip

    To load it in every session, unzip it and move the usage-meter/ folder into ~/.claude/skills/.

  4. Run the setup once:

    /usage-meter:install

Why a setup step? A plugin cannot set statusLine itself; the plugin manifest reference says plugin settings accept only agent and subagentStatusLine. The skill copies the script to ~/.claude/usage-meter-statusline.sh, adds the statusLine entry, keeps every other setting and saves a dated backup of settings.json (for example settings.json.usage-meter-20261025-153000.bak). If you already have a status line it stops and asks before replacing it.

Permissions it needs

  • Bash, once, to run the bundled configure.sh. Claude Code asks first.
  • Writes settings.json and one script in your Claude config directory. Nothing else.
  • No network calls, no hooks, no MCP servers.

What we tested

  • Static: 28 checks. The status line prints the right line for a Pro/Max sample, an API-key sample with no rate_limits, and a weekly-only sample. Colours switch at 50% and 80%. Install keeps other settings, writes a dated backup that a reinstall never overwrites, keeps a symlinked settings.json as a symlink, refuses to replace another status line without --force, handles a path with spaces, leaves invalid JSON untouched, and uninstall removes only its own entry.
  • Smoke: one real claude -p "/usage-meter:install ./cfg" run on Claude Code 2.1.290 with Sonnet, on 25 October 2026. The script and the statusLine entry were written to the target folder. Version 0.1.1 was smoke tested again by our lab on 26 October 2026 with the same scripted task, and passed.
  • Not tested: the rendered line inside an interactive session (status lines do not run in -p mode), and Windows.

Uninstall

Run /usage-meter:uninstall, which removes the statusLine entry only if it points at this kit’s script. Then drop the --plugin-dir flag or delete ~/.claude/skills/usage-meter/.

Frequently asked questions

Why does the status line show only the model name?

Claude Code sends the 5-hour and weekly usage fields only to claude.ai Pro and Max subscribers, or behind a Claude apps gateway with spend limits, and only after the first response in a session. With an API key there are no plan limits to show.

Why does the kit need a setup command instead of working on install?

Plugins cannot set the statusLine setting. Plugin settings accept only agent and subagentStatusLine, so the kit copies its script next to your settings.json and adds the statusLine entry for you, with a backup.

Will it overwrite a status line I already have?

No. If another statusLine is configured, the install stops and shows it. It replaces it only if you rerun with --force, and it saves a dated backup of settings.json first.

Does the status line use my tokens?

No. The script runs locally on the JSON Claude Code already has and never calls the model.

Get the weekly Claude digest

New skills, MCP servers, prompts and Claude updates — one short email a week. No spam, unsubscribe anytime.

The newsletter is launching soon. Follow the RSS feed in the meantime.