Skip to main content

SessionCost

See where every token of your AI coding chat went, and what to fix to send fewer.

PyPI License: MIT Works with HOL Guard

Every turn of a chat on one path; tap a turn to see the calls inside it

Every message you send makes the agent send the whole chat again. SessionCost shows each turn on one path, the calls inside it, and the fixes that would have sent less, measured from your own chat.

▶ Watch the 1-minute video tour on YouTube · pictures use a made-up demo chat

Install

Pick the way that suits you. Each one adds /sessioncost to every agent on your computer: Claude Code, Codex, Cursor and Antigravity.

1. Not technical? One line, nothing else needed

  1. Open a terminal. Windows: press the Windows key, type powershell, press Enter. Mac: press Cmd + Space, type terminal, press Enter.

  2. Paste the line for your computer and press Enter:

    Windows irm https://raw.githubusercontent.com/kish21/sessioncost/main/install.ps1 | iex
    Mac / Linux curl -fsSL https://raw.githubusercontent.com/kish21/sessioncost/main/install.sh | sh
  3. Wait about a minute. It ends with /sessioncost added for each agent it found.

2. Use the command line? Install from PyPI

Needs Python 3.10 or newer.

python -m pip install -U sessioncost     # -U also updates an older copy
python -m sessioncost setup              # adds /sessioncost to your agents

On Mac or Linux use python3 if python is not found. python -m works even when Windows cannot find the sessioncost command (common with the Microsoft Store Python). Prefer isolated tools? pipx install sessioncost or uv tool install sessioncost, then sessioncost setup.

3. Prefer plugins? Add it from your agent's plugin list

Plugins need Python 3.10 or newer on the computer (way 1 does not).

Agent How
Claude Code In a chat: /plugin marketplace add kish21/sessioncost, then /plugin install sessioncost@sessioncost. Or type /plugin, open Marketplaces, add kish21/sessioncost, and install sessioncost from the Plugins tab. (Needs Git.)
Codex First, in a terminal: codex plugin marketplace add kish21/sessioncost. Then Codex app: open Customize → Plugins, choose sessioncost, click Install plugin. Codex CLI: type /plugins, pick sessioncost, install it. Start a new chat afterwards.
Cursor Open Customize → Plugins, choose From GitHub Repository (or Add Marketplace), paste https://github.com/kish21/sessioncost, then install sessioncost and restart Cursor. If no plugin shows up (some Cursor versions import a repo without listing its plugins), use way 1.
Antigravity With the Antigravity command line: agy plugin install https://github.com/kish21/sessioncost, then start a new chat. In the Antigravity app, use way 1 (it adds /sessioncost to Antigravity directly).

Use one way per agent: with the plugin installed, you don't need the copy from way 1 or 2 in that agent.

Staying up to date

Not every agent updates a plugin by itself. The simple way: type /sessioncost update in a chat, or run sessioncost update in a terminal (python -m sessioncost update on Windows). It updates every copy of SessionCost on the computer, each the right way, and tells you what it did.

Agent New versions
Claude Code Once: /plugin → Marketplaces → sessioncost → Enable auto-update. From then on each new version arrives by itself.
Codex Codex looks for a new version when it starts. To be sure: codex plugin marketplace upgrade.
Cursor Customize → the marketplace with SessionCost → Refresh.
Antigravity, and way 1 or 2 sessioncost update, or paste the install line again.

Then, in your agent

Restart the agent, open any chat, and type /sessioncost (or ask: "run sessioncost"). The report opens in your browser.

Agent Where /sessioncost is added
Claude Code ~/.claude/skills/sessioncost (or the plugin)
Codex (CLI, IDE, app) ~/.codex/skills/sessioncost
Cursor ~/.cursor/skills/sessioncost
Antigravity ~/.gemini/config/skills/sessioncost

Installed another agent later? Run sessioncost setup again (or paste the line from way 1 again).

/sessioncost in a Claude Code chat

What you get

How much was sent, and how much the fixes would cut

9.9M tokens sent, 5.4M with the fixes, and the three biggest fixes

What to fix: each fix with its saving and the rule to paste to your agent. Tick "I did this" and it stops repeating.

Recommended rules and fix cards

Deeper fixes: one button checks 30 more patterns, from a catalog built on 200+ real agent sessions.

After the deeper fixes: 9.9M tokens sent, 2.8M with all 16 fixes

Private

  • Reads your agent's log on your computer. No AI model is called.
  • Nothing is sent unless you press Send the summary to the fix engine, and then only numbers and yes/no marks, never your chat, code or file names. The report shows the exact summary first.
  • Don't want the button? sessioncost --engine-url off.

More

Which agents, and how exact
Agent Tokens
Claude Code exact, from its log
Codex exact, from its log
Antigravity exact, from its log
Cursor estimated from text size; exact with your usage export (--cursor-usage file.csv)
Use it from a terminal
sessioncost                 # the newest chat of this folder's project
sessioncost list            # recent chats
sessioncost 3f2a9c1e        # one chat, by the start of its id
sessioncost setup           # add /sessioncost to your agents again
sessioncost clean           # delete old reports, keep the latest

Options: --no-open, --json, --subscription (money as API-equivalent on Pro/Max plans), --design classic, --engine-url off.

Update, or fix a problem
  • Update: /sessioncost update in a chat (or sessioncost update), then restart your agent. Pasting the install line again works too.
  • /sessioncost does nothing: restart the agent after installing.
  • "sessioncost is not recognized" (Windows): use python -m sessioncost instead of sessioncost.
  • Windows says scripts are disabled: run powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/kish21/sessioncost/main/install.ps1 | iex".
  • Updated with pip: python -m pip install -U sessioncost, then python -m sessioncost setup. Plugin: /plugin → Marketplaces → sessioncost → Update, then restart Claude Code (or turn on Enable auto-update there once).
  • "git not found" when adding the plugin: use way 1 instead; it needs neither Git nor Python.
  • The deeper fixes take a while: the engine sleeps when idle; the first check can take up to a minute.
How the money is counted

Each kind of token is priced on its own: new input, written to the cache, re-read from the cache (about a tenth of the price), and output. Prices are the public API's, dated in the report; override them in ~/.sessioncost/prices.json. On a subscription, --subscription labels the money as API-equivalent.

MIT license · made by kish21

Metadata

Release files for sessioncost 0.5.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sessioncost 0.5.14
File Size Uploaded Provenance
sessioncost-0.5.14.tar.gz 506.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for sessioncost 0.5.14
File Interpreter ABI Platform
sessioncost-0.5.14-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / sessioncost-0.5.14.tar.gz

Download URL sessioncost-0.5.14.tar.gz
Size 506.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dddcaac290ba9e024fa3f77a8d8041c868ee969f94a1ba8cb56d23ea363eaac4
BLAKE2b-256 checksum
How to use checksums
2d13673299d94b7a6d697ecf90739ad8e39974e270fd8bffb01b8b7b23258e09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / sessioncost-0.5.14-py3-none-any.whl

Download URL sessioncost-0.5.14-py3-none-any.whl
Size 515.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53e8ddc536f300e5b51fd2857abeaf0be204594634194a662c9f2b5194e66ee3
BLAKE2b-256 checksum
How to use checksums
2d2510055e7e454934da28a4b87e56894ad43246057237987d2c0cc9e61cb983
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for sessioncost 0.5.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page