npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

aiimpactmeter

v0.1.9

Published

AI Impact Meter: local token usage with energy and cooling-water estimates

Readme

AI Impact Meter

A tiny floating window that follows your Codex and Claude Code usage and estimates the electricity and cooling water associated with it.

Start it before you begin working, leave it in a corner of your screen, and expand it whenever you want to see the token breakdown. It refreshes every five seconds and starts from zero each time you open it.

Token counts come from your coding tool's local usage records. Electricity and water readings are estimates, not measurements of the servers handling your requests.

What's new in 0.1.9

Model-specific consumption rates. Codex and Claude Code now use separate electricity rates for the model that processed the tokens. This improves how the meter estimates electricity and on-site cooling water for sessions that switch models.

Previous release: 0.1.8

Calendar on Windows and Mac. Pick a date beside the daily switch to see that day's token usage and estimated electricity and cooling water.

Previous release: 0.1.7

Faster Windows startup: the launching terminal closes as soon as the meter is ready, without the extra three-second pause.

Previous release: 0.1.6

  • Lighter Mac glass: the floating window uses the native behind-window material with a much lighter white tint. Mac support remains experimental pending visual verification on a Mac.
  • Quieter Windows startup: ordinary launches show the update check and loaded version, then close the identified launching CMD or PowerShell shell once the meter is ready. Installation instructions are reserved for fresh installs.

Previous release: 0.1.5

  • Today's consumption: switch between usage since launch and the full local calendar day, including usage recorded before you opened the meter. Tokens, energy and water change together.
  • Keep tracking after closing the terminal: the floating meter now runs independently. Use its × button when you want to stop tracking.
  • Open automatically after installation or an accepted update: see the installed version, where to find the meter, and the command to open it again.

Previous release: 0.1.4

Available updates are now offered directly in Command Prompt or Terminal before the meter opens. You'll see the current and available versions and can answer yes or no, without expanding the window.

  • Yes: install the update, then run AiImpactMeter again to open the new version.
  • No or Enter: open the current version and keep working.
  • Ctrl+C: cancel without opening the meter or installing anything.

The floating window captions are now Data center water use and Data center energy use.

Windows now opens the bundled PowerShell file directly, removing the encoded launch command that could trigger security warnings. Antivirus protection and PowerShell security settings stay unchanged. This addresses a possible cause of the reported warning; it does not guarantee that every security product will allow the window.

Mac window support remains experimental; the terminal update prompt uses the same shared launcher on both platforms.

Previous release: 0.1.3

Updated energy estimates for cached tokens. Previously, cached input received the same energy rate as fresh input. This version gives reported cache reads a smaller, model-specific weight, and the water estimate follows the adjusted energy figure. These weights follow API price ratios; they are assumptions, not measured electricity savings.

  • See fresh input, cached/reused input, and output separately when you expand the window.
  • Keep each model's cache weight with its own usage when switching models or switching back. Unlisted models use the 5% fallback; input with missing cache information receives no discount.
  • Include supported compaction usage and improve duplicate-record handling.
  • Use clearer water and energy captions on Windows, Mac, and the terminal, with a rewritten guide to installation and everyday use.

Mac window support remains experimental. Earlier releases are summarized under Version history below.

Install and open

You need Node.js 20 or newer. With that installed, open Command Prompt on Windows or Terminal on Mac and run:

npm install --global aiimpactmeter --foreground-scripts

The installer shows the installed version and opens the floating meter on Windows and Mac. Once it says the meter is running, you can close the terminal and find the meter at the bottom-right of your desktop. A boxed IMPORTANT reminder shows the command to open it again. --foreground-scripts makes these installation messages visible; npm otherwise usually hides them.

To open it again, type:

AiImpactMeter

The npm package name is aiimpactmeter. The launch command is AiImpactMeter, without spaces. The window itself is called AI Impact Meter.

If installation scripts are disabled, or the window cannot open during installation, the package still installs. Open it with AiImpactMeter to see any launch instructions. Automated installs and installs run as the Mac root user leave opening the meter to your normal user terminal.

You can share the npm package page with others.

Mac users

The Mac floating window is experimental and needs Apple's Command Line Tools. If those are missing, run:

xcode-select --install

Finish Apple's installer, then try AiImpactMeter again. Full Xcode is not required. The first launch may take longer while Apple's tools prepare the window.

You can use the terminal display without those tools:

AiImpactMeter --terminal

Windows does not need the Apple tools. On Linux, the meter opens in the terminal.

Using the meter

The window starts small, showing Data center water use and Data center energy use. Drag it wherever you prefer; it stays above ordinary application windows.

Press the top-left chevron to see your total tokens, the Codex and Claude split, fresh input, cached/reused input, output, and the last update time. Press it again to hide the breakdown. Provider rows appear for tools with usage in the selected period. Tracking continues while the details are hidden or the window is minimized.

Large token counts use M for millions, B for billions, and T for trillions, with up to two decimal places. Hover over a count to see its exact number. This keeps the window compact; calculations and JSON output still use the full counts.

Start the meter while your coding tools are idle, before sending your next prompt. You can continue an existing chat; you do not need to start a new one. Earlier recorded usage establishes a starting point and is not added to this run's total. If an old conversation is processed again after launch, that new processing does count.

Ordinary launches show the update check and loaded version without repeating installation instructions. Tracking continues until you close the meter with ×. Reopening the meter starts a new count; previous totals are not restored. If you use --terminal or --json, keep that terminal open and press Ctrl+C to end the run.

A separate window opened by double-clicking START-WINDOWS.cmd closes naturally as soon as the meter is ready. On Windows, an interactive launch also closes its direct CMD or PowerShell shell once the meter is ready, without an extra pause. A successful update keeps its completion message visible for three seconds before closing. Use a terminal session reserved for launching the meter; closing that shell can end other work in it. Redirected launches and unidentified parent programs stay open. Mac Terminal remains open at its prompt. The floating meter keeps running independently.

Today's consumption

In the expanded meter, turn on Today's consumption with the switch to the right of the label. The first scan can take a moment; a spinning indicator and Loading today's data… show that the scan is still running. After three seconds, Looks like usage data is more! appears beneath it. Both messages clear when loading finishes or you switch back. The daily view includes usage recorded before the meter opened, follows your computer's local calendar day, and starts a new daily total at midnight. Turning it off returns to the since-launch count without resetting that count. The choice lasts for this run.

The labels follow your selection: Data center water used today, Data center energy used today, and Total tokens today in the daily view. Turning it off shows Data center water use since launch, Data center energy use since launch, and Tokens since launch.

Click the calendar icon beside the switch to pick an earlier date. On Mac, click Show day to confirm your selection. The meter shows that day's tokens, electricity and cooling water based on the local logs still available. Turn the switch off to return to usage since launch, then turn it on again to see today.

Daily tokens = the sum of input + output tokens in unique usage records dated from local midnight up to the next local midnight. Cached input is already part of input and is not added twice. Older cumulative counters establish the starting point; they are not added as today's usage. Existing branch and duplicate checks still apply. A request spanning midnight is assigned using its reported usage-record timestamp; its internal server work cannot be split precisely across midnight.

Today's view uses the same model-specific rates as the since-launch view. For each model, the meter multiplies fresh input, discounted cached input, and output by their respective rates. The rates are in kWh per million tokens. The meter adds facility overhead to the electricity estimate and uses the computing electricity to estimate on-site cooling water.

Only usage still present in readable local logs can be included. Deleted or missing logs cannot be recovered. Daily totals are rebuilt from those logs; the meter does not save a separate usage history.

The glass effect depends on your operating system and its transparency settings. On Mac, the meter blurs the desktop or windows behind it with the native popover material. The glass is translucent when macOS's Reduce Transparency accessibility setting is off. Windows may still draw a small shadow around the window.

Understanding the token breakdown

Fresh input is input processed without a reported cache hit. It can include old conversation text that needs to be processed again, as well as input whose calculations are being saved for later reuse.

Cached/reused input is input the provider reports as a cache read. It is already part of total input, so the meter does not add it a second time.

Output is what the model generates, including reported reasoning tokens. Reasoning is not added on top of an output total that already includes it.

For example, a request with 1,000 input tokens, of which 800 are cached, and 100 output tokens counts as 200 fresh + 800 cached + 100 output = 1,100 tokens.

After a model switch or compaction, the meter follows the next request's reported counts. It does not assume the cache survived, automatically mark everything fresh, or add an invented switching charge. Reported work used to create a compacted conversation is included where supported records provide it. Reading that shortened conversation afterward counts through the subsequent request's input.

Warnings and missing information

Partial data means some usage could not be collected or interpreted. Hover over the warning to see the reason.

A + ? beside fresh or cached input means some input was reported without enough information to split it into those categories. Those tokens are still in the total and receive no cache energy discount. Missing information is different from an explicitly reported zero.

The meter cannot inspect the provider's internal cache, identify which earlier request created a saved state, or reliably detect a complete saved answer returned without new generation.

What it can track

The meter reads usage records already saved on the same computer by:

  • Codex desktop local sessions and Codex terminal sessions.
  • Claude Code terminal sessions.
  • Local coding sessions in Claude Desktop's Code tab, where compatible usage records are available.

Desktop and terminal usage are combined into one Codex total and one Claude total. The meter does not watch which window is in front.

Ordinary ChatGPT or Claude chat, cloud-only tasks, remote machines, WSL, and containers are not automatically covered by a native Windows run. Their records would need to be accessible to the meter. If a tool stops saving compatible records, some work may be missing. The meter does not turn on extra logging or change your coding tool's settings.

Codex accounting has been checked against local records. Claude accounting has been checked with representative test records; real Claude coverage has not yet been verified on the development computer. Native Mac testing is also still outstanding.

How the estimates work

The meter estimates electricity and on-site cooling water from the token counts your tools report. It does not receive electricity or water readings from their data centers.

Fresh input and output have separate electricity rates. When the usage record identifies a model in the table below, the meter uses that model's rates. When it can't match the model, it uses GPT-5 with minimal reasoning for Codex or Claude 3.7 Sonnet for Claude. For example, GPT-6.1 Terra still uses the Codex fallback because the available Pentos estimate combines input and output.

Cached input gets a smaller weight based on its API price compared with ordinary input. A 95% price discount does not prove a 95% electricity saving.

Electricity rates

The table shows kWh per million tokens, before data-center overhead. Output rates generally use the central scenario from EcoLogits 0.11.3. Where that was the source, fresh input is estimated at one-sixth of output, following TokenClimate's convention for OpenAI and extending it to the individual Claude estimates here. TokenClimate uses its own family estimates for Claude.

The o3 pair comes from TokenClimate's fit, and Fable 5.2 uses its Fable family estimate. The historical Claude 3.x rates and GPT-5 minimal reasoning rate come from two-workload fits to Jegham et al., “How Hungry is AI?”. The fallback rates are rounded in the table.

| Model | Fresh input | Output | | --- | ---: | ---: | | GPT-6.1 Sol | 0.253 | 1.515 | | GPT-6 Sol | 0.246 | 1.473 | | GPT-6 Astra | 2.600 | 15.602 | | GPT-6 Luna | 0.018 | 0.110 | | GPT-5.6 Sol | 0.857 | 5.144 | | GPT-5.6 Terra | 0.279 | 1.676 | | GPT-5.6 Luna | 0.098 | 0.589 | | GPT-5.5 | 0.845 | 5.067 | | GPT-5.4 | 0.290 | 1.741 | | GPT-5.4 mini | 0.072 | 0.430 | | GPT-5.4 nano | 0.023 | 0.136 | | GPT-5.4 Pro | 33.24 | 199.45 | | GPT-5.3 Codex | 0.261 | 1.563 | | GPT-5.2 | 0.261 | 1.567 | | GPT-5.2 Pro | 27.68 | 166.08 | | GPT-5.1 | 0.223 | 1.335 | | GPT-5 | 0.229 | 1.372 | | GPT-5 mini | 0.025 | 0.148 | | GPT-5 nano | 0.010 | 0.058 | | GPT-5 Pro | 10.77 | 64.61 | | GPT-4.1 | 0.237 | 1.419 | | GPT-4.1 mini | 0.061 | 0.368 | | GPT-4.1 nano | 0.010 | 0.062 | | GPT-4o | 0.265 | 1.591 | | GPT-4o-mini | 0.010 | 0.059 | | GPT-4 Turbo | 0.902 | 5.410 | | GPT-4 | 2.721 | 16.327 | | GPT-3.5 Turbo | 0.025 | 0.147 | | GPT-3.5 Turbo-16K | 0.024 | 0.146 | | o1 | 0.257 | 1.544 | | o3-mini | 0.009 | 0.055 | | o4-mini | 0.010 | 0.058 | | o3 | 0.485 | 4.045 | | GPT-5 (minimal reasoning, Codex fallback) | 0.372 | 1.708 | | Claude Fable 5.2 | 0.476 | 10.100 | | Claude Fable 5.1 | 2.190 | 13.141 | | Claude Fable 5 | 2.176 | 13.055 | | Claude Opus 5.5 | 0.660 | 3.959 | | Claude Opus 5 | 0.660 | 3.962 | | Claude Opus 4.8 | 0.653 | 3.917 | | Claude Opus 4.7 | 0.704 | 4.226 | | Claude Opus 4.6 | 0.721 | 4.325 | | Claude Opus 4.5 | 0.736 | 4.413 | | Claude Sonnet 5.5 | 0.214 | 1.284 | | Claude Sonnet 5 | 0.219 | 1.312 | | Claude Sonnet 4.6 | 0.285 | 1.711 | | Claude Sonnet 4.5 | 0.283 | 1.698 | | Claude Haiku 5.5 | 0.010 | 0.058 | | Claude Haiku 4.5 | 0.010 | 0.062 | | Claude 3.7 Sonnet (Claude fallback) | 0.123 | 2.499 | | Claude 3.5 Sonnet | 0.239 | 2.952 | | Claude 3.5 Haiku | 0.136 | 3.780 |

Known dated snapshots use the corresponding model's rates. Claude Mythos 5, 5.1, and 5.2 use the corresponding Fable rates.

For each model, the meter multiplies the fresh input, discounted cached input, and output counts by their rates and adds the results. It applies a data-center electricity multiplier after that. Usage without reliable model attribution uses the tool's fallback, so it still contributes to the total. Token counts stay the same.

Hardware, batching, cache handling, and cooling affect what a request actually uses. The estimates cover model use at the data center. They exclude model training, hardware manufacturing, your own computer, and water used to generate electricity.

Cache weights

The weight is cache-read price ÷ ordinary input price. The stored pricing references were checked on 3 November 2026 against OpenAI pricing and Claude pricing. They are recorded in src/cache-pricing.mjs in US dollars per million tokens, and are not used to estimate your subscription bill.

  • 5%: GPT-6.1 Sol, GPT-6.1 Terra, Claude Opus 5.5, and Claude Sonnet 5.5.
  • 2.5%: Claude Fable 5.1 and Claude Mythos 5.1.
  • 10%: GPT-6 Astra, GPT-6 Sol, GPT-6 Luna, GPT-5.6 Sol/Terra/Luna; Claude Haiku 5.5, Fable 5, Mythos 5, Opus 5/4.8/4.7/4.6/4.5, Sonnet 5/4.6/4.5, and Haiku 4.5.
  • Unlisted or unidentified models: use GPT-6.1 Sol's 5% weight. Detailed JSON output identifies this fallback.

Known dated model snapshots keep their matching profile. Haiku 5.5's short- and long-input price tiers have the same cache ratio. Pricing references do not refresh automatically; they need to be updated in a later release.

Each model's cached usage keeps its own weight when you switch models. Changing the selected model does not change the weight already applied to earlier usage. Missing cache information gets no discount. Cached tokens without model attribution receive the 5% fallback. Inconsistent model totals use a flagged aggregate fallback rather than discounting or counting input twice.

Cache creation is already part of non-cached input and receives the full fresh-input rate. The meter does not add those tokens again or turn a cache-write billing surcharge into an extra electricity charge.

For example, 200 fresh input tokens, 800 cached tokens at a 5% weight, and 100 output tokens give a weighted input of 200 + 800 × 0.05 = 240. The actual token total remains 1,100. With the GPT-6.1 Sol rates and the Codex facility multiplier, this scenario gives about 0.238 Wh.

Cooling water

Water is calculated separately for each tool family and then added:

Water (liters) = computer electricity (kWh) × WUE

PUE accounts for electricity used by the wider facility as well as its computers. WUE describes water use per unit of computer electricity. The meter uses computer electricity for the water calculation. It applies PUE only to the displayed electricity total.

These are two separate operator averages, not the endpoints of a range. Water reporting can also differ in whether it describes water withdrawn or water consumed.

Privacy and local files

The meter reads your tools' existing records without modifying or deleting them. It does not call an AI model, need an API key, upload your usage, or run a web server.

Counters and reading positions stay in memory. The meter does not create a usage database, saved history, or copies of your transcripts. Closing it discards the counters. Codex and Claude keep their own records independently.

The meter's network access is a public npm version check. Choosing Install downloads an update through npm. Neither action sends your prompts, transcripts, or token totals.

The package has no npm dependencies. Node.js, the native window framework, and the operating system still use memory; the bookkeeping-size estimate is not a measurement of the whole application's RAM use. npm may keep installation files and logs in its cache. Apple's tools may also create compiler caches on Mac.

Updates

When you launch AiImpactMeter in Command Prompt or Terminal, it checks npm for a newer stable version before opening the meter. If an update is available, the terminal shows both versions and asks:

AI Impact Meter update available: <current version> -> <new version>
Install now? [y/N]:

If there is no newer release, the terminal shows Loaded current version: <version> and opens the meter. The version shown is the copy being launched, not the version number returned by npm.

Type y or yes to install. The updated meter opens automatically, then the terminal shows Update installed. You may now close this terminal. Launch-command reminders are kept for fresh installations. Type n, no, or press Enter to open the current version. You do not need to expand the floating window. Token collection starts after this choice.

If the update installs but the new window cannot open, the terminal says so and gives AiImpactMeter as the command to try again. Older installed releases may still show their previous instructions during the first update; subsequent launches use the new flow.

If you skip an update, the next launch checks again. If the check cannot reach npm, the terminal explains that it could not check and opens the current version. A failed installation also lets you continue; you can retry on the next launch. npm needs to be on your PATH and its global installation folder must be writable; the meter does not request elevated permissions automatically.

JSON, diagnostic, help and explicit update-check commands do not ask questions. When terminal input or output is redirected, the meter prints an available update's manual install command and continues without waiting or installing automatically. Older releases can still have update buttons inside their expanded window; one update to this version is needed to get the terminal prompt.

You can also update manually:

npm install --global aiimpactmeter@latest --foreground-scripts

Other ways to run it

After a global npm installation:

# Terminal display
AiImpactMeter --terminal

# Change the refresh interval, in seconds
AiImpactMeter --refresh 10

# Print a discovery summary and exit, without printing transcript contents
AiImpactMeter --diagnose

# Stream detailed usage summaries as JSON
AiImpactMeter --json

# Check for a newer published version and exit
AiImpactMeter --check-updates

The default refresh interval is five seconds. You can choose a value between 1 and 3,600 seconds.

To use different data folders, supply --codex-home, --claude-home, or --claude-desktop-root. Each option can be repeated. For example, on Windows:

AiImpactMeter --codex-home "D:\my-codex-home"
AiImpactMeter --claude-home "D:\my-claude-home"
AiImpactMeter --claude-desktop-root "D:\Claude\local-agent-mode-sessions"

The meter also respects CODEX_HOME and CLAUDE_CONFIG_DIR. It checks the usual Codex and Claude project folders. Claude Desktop's additional local coding records are looked for under %APPDATA%\Claude\local-agent-mode-sessions on Windows and ~/Library/Application Support/Claude/local-agent-mode-sessions on Mac. Directory symlinks are not followed.

Running from this source folder

On Windows, double-click START-WINDOWS.cmd, or open a terminal in this folder and run:

node ./bin/AiImpactMeter.mjs

The same Node command works from the source folder on Mac. The Mac window still needs the Apple tools described above. There is no separate frontend build step and no automatic platform download during installation.

Troubleshooting

The numbers stay at zero. Send a new prompt in a local coding session after opening the meter. Run AiImpactMeter --diagnose to check whether usage folders were found. Existing history is not added to a new run.

One short question produced a large input count. A request can include the conversation so far, instructions, tool results, and files—not just the words you typed. The same context can be supplied on multiple requests. These are counts of reported processing, not unique words in your chat.

I see Partial data. Hover over the warning. Possible reasons include unsupported usage records, missing metadata, very large transcript lines, or a collection limit. The meter skips records it cannot count safely rather than silently adding a guessed amount.

The Mac window will not open. Check the Command Line Tools installation, or try AiImpactMeter --terminal. The native Mac window is still experimental.

An update failed. Check that npm works in your terminal and you can write to its global installation folder. You can keep the current meter running and update manually later.

Accounting details

These notes are for anyone checking how the totals are assembled.

  • Duplicate records: newer Codex records are counted by request identity. Repeated or progressive reports add only new usage. Once request records are available for a chat, older compatibility counters are not mixed into that stream; they can lag or omit some compaction work. Older formats use increases in cumulative totals. Switching record formats does not add an already-counted request again. Repeated Claude message identities likewise contribute only increases.
  • Provider formats: Codex input already includes cached input. Claude's ordinary input excludes cache reads and creation, so those categories are included when building its total input. Reasoning remains a subset of output.
  • Model changes: switches are identified within the same chat, not across all open chats. A new chat on a different model is not a switch. Missing or reordered information does not invent a transition. If a gap in cumulative usage cannot be assigned to one model, that attribution remains unknown.
  • Branched chats: inherited usage establishes the starting point. Only new work after supported branch-creation and task-start markers counts. Without an inherited baseline, valid last-call usage is used where available; otherwise the first record becomes a baseline with a warning. Missing boundary information can exclude branch usage. Existing branches also start from zero when the meter launches.
  • Compaction: a repeated Codex checkpoint is not a new request. Work in supported request or cumulative usage is included once; standalone compaction records without that accounting are outside coverage. Claude's separately reported compaction iterations are included without adding ordinary message iterations twice. Hypothetical tokens or energy saved by shortening the conversation are not inferred.
  • Claude advisors: supported advisor iterations are counted under their reported model and a separate child identity. Future or unrecognized formats may need parser updates.
  • Start and end boundaries: existing Codex records establish a starting point at launch. Claude uses a bounded recent-message baseline when an existing file first changes. Old timestamped records and replayed history are excluded. A request in progress at launch may cross that boundary, and delayed reporting may appear on a later refresh.
  • Limits: transcript lines larger than 20 MiB are skipped with a warning; this is a file-reading limit, not an AI cache-size limit. An unfinished oversized line waits for its newline. Files are streamed rather than loaded in full. Each period's collector is bounded to 4,096 files, 12,000 accounting identities, and 256 model groups. Reaching a limit warns and stops adding affected usage rather than discarding duplicate checks.
  • Invalid records: unsupported request identities, missing required counters, and invalid timestamps can exclude records. Warnings describe incomplete coverage.

With --json, you can inspect breakdown, models, chats, and modelSwitches. impact.energyRates lists the electricity rates used by model and any fallbacks. impact.cacheWeights lists applied cache discounts; impact.cachePricing records the assumption and source date. weightedInputTokens is a calculation weight, not an actual token count. compactStateBytes estimates bookkeeping size, not total process memory.

Chat and request identifiers in that output are hashed. Raw prompts, transcript paths, and internal cache states are not retained in these accounting summaries. Each active chat retains its latest request and latest switch in memory; this is not a saved timeline.

Version history

  • 0.1.9: adds model-specific electricity rates for Codex and Claude Code.
  • 0.1.8: adds a calendar to view past days on Windows and Mac.
  • 0.1.7: removes the extra pause when opening the meter on Windows.
  • 0.1.6: adjusts the Mac glass appearance and simplifies Windows startup and terminal messages.
  • 0.1.5: adds today's consumption, keeps tracking after the terminal closes, and opens the meter automatically after installation or an accepted update.
  • 0.1.4: offers updates directly in the terminal, simplifies the Windows launcher, and uses the shorter floating-window captions “Data center water use” and “Data center energy use”.
  • 0.1.3: updated cached-token energy estimates and added a clearer fresh/cached/output breakdown.
  • 0.1.2: added experimental Mac support and a smaller window that starts collapsed.

The package also includes CHANGELOG.md with the full release notes.