How to check Claude Code token usage: 5 ways
On this page
Run /usage in any Claude Code session to see your plan limits and which skills, subagents and MCP servers used them. Run /context to see what fills the window right now. For history across all sessions, npx ccusage@latest reads the logs in ~/.claude/projects/ and prints tokens per day.
There are two different questions behind "how many tokens am I using". One is how much: how close you are to a limit, or what a session cost. The other is where: which skill, subagent, MCP server or memory file the tokens went to.
Most tools answer the first question well. Fewer answer the second, and the second is the one you need when you want to use less.
Here are five ways to check, starting with what ships inside Claude Code.
1. /usage: the built-in report
Run /usage in any session. According to the Claude Code docs, it shows:
- Session block. Input, output and cache tokens for the current session, per model, with a dollar estimate at list price. It resets on
/clear. - Plan usage bars. On Pro, Max, Team and Enterprise, how much of your session and weekly limits you have used, and when each resets.
- Attribution. Recent usage split between skills, subagents, plugins and individual MCP servers, as a percentage of the total. Press
dorwto switch between the last 24 hours and the last 7 days. - Behavior flags. Long context or cache misses, flagged when one of them accounts for 10% or more of recent usage.
Best for: a quick check before a long task, and the official numbers for your plan limits.
Worth knowing: it is a snapshot you open on demand. The attribution covers skills, subagents, plugins and MCP, but not memory files, built-in tools or individual sessions. It also counts only this machine.
2. /context: what fills the window right now
/context shows what the current conversation's context window is made of: the system prompt, tools, MCP servers, memory files, skills and the messages so far.
Best for: finding out why a fresh session already starts heavy.
Worth knowing: it describes the context at this moment, not usage over time. A skill that loaded once an hour ago and was summarized away will not show up.
3. The status line: a number that stays on screen
Claude Code can run a status line script under the prompt. The script receives the session's cost, context window usage and prompt cache stats as JSON and prints whatever you choose, so the numbers stay visible while you work.
Best for: people who live in the terminal and want context size in view at all times.
Worth knowing: you write or install the script yourself, and it only sees the session it runs in.
4. ccusage: reports from your local logs
ccusage is an open-source CLI that reads the session logs Claude Code keeps under ~/.claude/projects/. Run npx ccusage@latest for a daily table of tokens and estimated cost, with monthly, per-session and 5-hour block views as subcommands.
Best for: history. Tokens per day or per month, across every session on the machine.
Worth knowing: it answers "how much" and "which model", not "which skill or MCP server".
5. A menu bar monitor
Several Mac apps put token counts in the menu bar. Most of them show totals and plan limits. SkillKeeper shows where the tokens went.
It reads the same local transcripts and splits the tokens of each time window by source:
- Skills, agents, tools and MCP servers, each with its own list, sorted by the tokens it cost.
- Commands, memory files and plugins. Memory shows each
CLAUDE.mdand memory file by the tokens it takes up on every model call it rides along with. - Sessions. Tokens per conversation, with a click to open it.
- All. Every source in one list, so a heavy MCP server and a heavy skill sit side by side.
Timeframes are the last 5 hours, 24 hours, week and month, with a chart where hovering a row lights up its share. The header shows how much of your 5-hour or weekly limit is used and when it resets. When a chat nears its model's context limit, the menu bar icon turns orange.
Everything is computed from files on your Mac. Transcripts are not uploaded anywhere. The privacy page lists what the app reads.
Best for: a live answer to "where did my tokens go today", without opening a report.
Worth knowing: it sees Claude Code only. Usage from claude.ai or another machine is not in the local transcripts, so it is not in the numbers either.
Which one to use
| You want | Use |
|---|---|
| Your official limit and reset time | /usage |
| Why this session is heavy right now | /context |
| Context size always in view in the terminal | Status line |
| Tokens per day or month, from the command line | ccusage |
| Tokens by skill, agent, MCP server, memory file and session, live | SkillKeeper |
They overlap, and that is fine. A common setup is a status line for context size, plus a menu bar monitor for the daily picture, and /usage when you want the official limit.
Once you know where the tokens go
A number on its own does not save anything. The useful moment is when one source turns out to be much bigger than you expected: an MCP server whose results fill every turn, a CLAUDE.md that has grown to 600 lines, a subagent that re-reads the whole repository.
Why Claude Code burns through tokens goes through the usual culprits and what to do about each one.
If the question is not tokens but how often each skill fires, see how to see which Claude Code skills you actually use.