Getting started · 02 · Windows Windows only

First request on Windows

Verify Halton Meter is capturing your LLM calls on Windows and learn daily usage in apps mode. Phase-0 public beta — no admin required.

macOS 12+ · Python 3.11+ Reading time 2 min Updated May 11, 2026

Verifying captures are working

Open a new PowerShell window so it inherits the HTTPS_PROXY env var from HKCU\Environment (running shells don’t pick up env changes — the broadcast only refreshes WinINet for Electron / WinINet apps). Then make a real LLM call:

halton-meter run claude --print "Reply with exactly: pong"

Then:

halton-meter report

A row appears for every intercepted LLM request. Columns include: timestamp, project, model, tokens in/out, cost.

If report is empty but halton-meter status shows the daemon and edge both green, walk this checklist in order:

  1. echo $env:HTTPS_PROXY — should print http://127.0.0.1:8081. If empty, your PowerShell instance was started before init. Close it and open a new one.
  2. The app you’re running is using WinHTTP, not WinINet. Windows Update, some .NET clients, and a handful of PowerShell modules use WinHTTP, which is separate from the HKCU proxy. Run netsh winhttp import proxy source=ie in an elevated PowerShell to mirror WinINet → WinHTTP.
  3. The IDE was already open when you ran init. Quit it from the system tray (right-click → Quit, or taskkill /F /IM cursor.exe) and relaunch.
  4. The provider hostname is off-list. Off-list hostnames pass through without capture (intentional — observation never breaks the workflow). See providers.
  5. The full failure-mode list with copy-paste fixes is in Troubleshooting.

Daily usage

Once init finishes, every new PowerShell session and every Electron / WinINet app launched fresh inherits the proxy automatically. No wrapper command needed.

PS — apps-mode daily usage
PS> claude --print "ping"             # captured automatically
PS> python my_script.py             # captured if it uses requests/httpx/urllib
PS> curl -sS https://api.anthropic.com/v1/models  # captured

halton-meter run <cmd> is still available and always works regardless of how <cmd> was launched — it injects every env var directly into the child process:

halton-meter run claude

Checking daemon health

PS — health checks
PS> halton-meter status           # quick health summary
PS> halton-meter doctor           # full diagnostic with copy-paste fixes

Starting and stopping

PS — daemon control
PS> halton-meter start                          # (re)start the daemon via Task Scheduler
PS> halton-meter stop                           # stop
PS> halton-meter stop; halton-meter start   # restart after config change

halton-meter start runs the halton-meter Task Scheduler task; stop ends the running process. The task itself stays registered across stops — the ONLOGON trigger re-launches the daemon at the next interactive logon. Use halton-meter uninstall to remove the Task Scheduler entries entirely.


Switching modes

Only apps mode is supported on Windows in v0.2.11. --full (machine-wide proxy via HKLM) is deferred post-v1.0. Re-running init is idempotent — safe to repeat.

halton-meter init

To remove Halton Meter from this machine entirely, restoring the prior registry proxy state from snapshot and removing the user-store cert and Task Scheduler tasks:

halton-meter uninstall

Once captures are landing on this machine, the next question is usually running meters on more than one machine — workstations, CI runners, a teammate’s laptop — and rolling them up into one report.

Running on more than one machine? →