Skip to content
Version: Current

Balance watch: 2026-10-21

Historical, as of 2026-10-21. This is one dated balance-watch ledger. The balances, account names and flags below are what a run saw on 2026-10-21 and have not been re-measured; run tools/balance-watch.sh for current balances.

Owner directive: “keep an eye on balances … ask me if anything needs recharging.”

This is the standing answer. tools/balance-watch.sh collects every prepaid balance the estate can read, the acumen spend ledger, and the known expiry clocks, writes a dated ledger, and raises one of three flags per row. It does not recharge anything: a run that reports RECHARGE means the operator gets asked, not that money moved.

Last run in this document: 2026-10-21T22:50:59Z from edge, exit 1 (two recharges outstanding, three rows a human must resolve).

Row Source Where the key lives How it is used
DeepSeek direct balance GET api.deepseek.com/user/balance ~/.secrets/deepseek-api-key on edge (path only) curl reads the header from its config stream (-K -), so the value never reaches argv
OpenRouter credits GET openrouter.ai/api/v1/credits OPENROUTER_API_KEY in the acumen env file on tcp the request is executed on tcp over ssh; only provider JSON comes back
acumen spend ledger loopback GET /v1/router/keys and GET /metrics operator admin key on tcp read on tcp; the key never crosses the ssh boundary
Expiry calendar static table in the script — dates resolved against the run date

Credential values are never printed, logged, put on a command line, or written into the ledger. The script reads key files by path; the two remote values are read only by the remote shell that already owns them.

Flag Meaning
OK balance at or above the low threshold (default $5)
RECHARGE balance below the threshold, or a renewal falls inside the horizon (default 14 days)
HUMAN-CHECK the number or the clock could not be established — never silently OK

Exit 0 all rows OK · 3 no recharge but at least one human check (cannot certify) · 1 at least one recharge · 2 usage error.

The rule behind that table: a watcher that reports OK when it cannot read a number is worse than no watcher. Every unavailable source becomes HUMAN-CHECK, and the caveat list says which source failed.

Ranked by when a human has to act, not by balance size.

# Account Figure Flag Why it is ranked here Ask
1 Minimax subscription seat (MINIMAX_API_KEY on acumen) expires 2026-10-22 (1 day) RECHARGE no balance API; the seat simply lapses renew or drop — decide before tomorrow
2 Fireworks $1.00 stored balance RECHARGE under threshold; the 2026-10-20 upstream probe answered 412 (funding) on this seat top up, or disable the seat so it stops being a candidate
3 Ollama Cloud subscription $60/mo non-rolling credit, no balance endpoint HUMAN-CHECK the provider enforces the credit itself; no local poller exists by design (decision D3) confirm the subscription is still wanted at renewal
4 DeepSeek direct (edge key) $22.39 live OK healthy, but it is the key this fleet’s own agents run on, so it moves during a working day none today
5 OpenRouter $14.29 remaining of $15.00 granted, $0.71 used OK healthy; also the prepaid seat acumen last polled cleanly none
6 DeepInfra $10.00 stored balance OK acumen last-polled figure, not a live provider read none, but see gaps
7 Charm no balance figure — $2.04 observed spend OK (not a balance) spend-only provider in the acumen ledger none
8 Groq no balance figure — $0.0001 observed spend OK (not a balance) free tier; spend is rounding noise none

Consumer keys (the acumen key list, 9 keys) are all at cap: $0.0973 today and month-to-date, 0.2% of the 50 USD monthly cap on the only key that has moved (edge-orchestrator). No consumer key is near a cap, so no cap-driven recharge is pending.

Item Date Days left Flag Note
Minimax subscription seat 2026-10-22 1 RECHARGE renew or drop before it lapses
DeepSeek search/fetch free window 2026-10-31 10 HUMAN-CHECK the v1/tools/search and v1/tools/fetch endpoints leave free preview; $0.75 per 1,000 calls after. Decide whether the door keeps using them
OVH trial (30 days) unknown n/a HUMAN-CHECK the 30-day clock exists, its start date is recorded nowhere on the fleet
Cerebras trial (30 days) unknown n/a HUMAN-CHECK Cerebras grants a 30-day trial and no Cerebras key exists on the estate yet

The horizon is 14 days by default (--horizon). A dated renewal inside the horizon is RECHARGE; a dated price change or an undated trial is HUMAN-CHECK, because neither one is a top-up.

balance-watch 2026-10-21T22:50:59Z (edge)
remote: tcp [ok] thresholds: low $5, horizon 14 days
VERDICT ask the operator: 2 recharge, 3 human check
BALANCES
PROVIDER REMAINING FLAG SOURCE
deepseek 22.39 OK api.deepseek.com/user/balance
openrouter 14.29 OK openrouter.ai/api/v1/credits
deepinfra 10.00 OK acumen:/metrics (stored poll)
fireworks 1.00 RECHARGE acumen:/metrics (stored poll)
STORED-POLL DRIFT (acumen figure beside the live provider figure)
deepseek live $ 22.39 stored poll $ 3.13 (stale; the live figure wins)
SPEND (acumen observed, not a balance)
charm $2.0400
deepinfra $0.2500
opencode-go $0.0800
ollama-cloud $0.0600
deepseek $0.0500
opencode-go-2 $0.0100
groq $0.0000
CONSUMER KEYS
9 keys · today $0.0973 · this month $0.0973
NAME DAY MONTH CAP/MO LAST-USED
open-webui-rerot2 0.0000 0.0000 50 2026-10-21T21:46:46
acumen-operator-admin-20261020T195252Z 0.0000 0.0000 0 2026-10-21T22:50:59
hindsight-reflect 0.0000 0.0000 50 2026-10-21T00:05:44
console-20261020T182707Z 0.0000 0.0000 0 2026-10-21T22:50:56
edge-orchestrator 0.0973 0.0973 50 2026-10-21T22:50:52
openviking-vlm 0.0000 0.0000 50 2026-10-21T22:50:58
hindsight-core 0.0000 0.0000 50 2026-10-20T18:29:25
dsh-platform 0.0000 0.0000 500 2026-10-20T20:21:05
acumen-operator-admin 0.0000 0.0000 0 2026-10-20T19:53:21
EXPIRY CALENDAR
ITEM DATE DAYS FLAG NOTE
minimax subscription seat 2026-10-22 1 RECHARGE MINIMAX_API_KEY seat on acumen; renew or drop before it lapses
DeepSeek search/fetch free window 2026-10-31 10 HUMAN-CHECK /v1/tools/search and /v1/tools/fetch leave free preview; $0.75 per 1,000 calls after
OVH trial (30 days) unknown n/a HUMAN-CHECK 30-day trial clock; the start date is not recorded on the estate
Cerebras trial (30 days) unknown n/a HUMAN-CHECK Cerebras grants a 30-day trial and no Cerebras key exists on the estate yet
FLAGS OK 3 · RECHARGE 2 · HUMAN-CHECK 3
CAVEATS
- acumen /metrics carries 228 balance rows, most of them 0 for seats that are never polled; only non-zero rows are carried here
- the stored deepseek balance is acumen-owned last-poll state, not the provider reading; the live row wins

The JSON twin is reports/balance-watch/2026-10-21.json (schema: "balance-watch/1"). Every row carries provider, remaining_usd, flag and source; expiries carry days_left and kind. No credential appears in either file.

  • The acumen deepseek balance is stale by ~$19. Acumen’s stored poll says $3.13; the provider says $22.39. The stored figure is acumen’s last poll, not a provider reading, so the watcher prints both and trusts the live one. Any budget display that reads only the metrics endpoint is understating available credit on this seat by a factor of seven.
  • 228 of acumen’s balance rows are zero and unpolled. Only non-zero rows are carried; zero means “never polled” for most seats, not “empty”. A zero row must never be read as a warning, and a non-zero row must never be read as current unless its provider is one of the two live sources.
  • The direct DeepSeek balance moved during collection: $22.87 → $22.51 → $22.39 across 22:46–22:50Z. This agent session itself runs on that key, so the measurement is partly self-inflicted. Acknowledge the direction, do not extrapolate a daily burn from a five-minute window.
  • Fireworks is the only seat flagged for money, and it is not a polling gap: the 2026-10-20 upstream probe returned 412 (funding) on it, so the $1.00 is a real ceiling rather than a stale number.
  • No Cerebras or OVH credential exists on the estate. Their trial clocks cannot be computed from any host; the table says so instead of inventing a date.
tools/balance-watch.sh # default: tcp remote, $5 low, 14-day horizon
tools/balance-watch.sh --low 10 # raise the recharge threshold
tools/balance-watch.sh --out-dir /var/tmp/balance-watch

Overrides: BALANCE_HOST (ssh target; empty disables every remote row and turns them into HUMAN-CHECK), BALANCE_DEEPSEEK_KEY, BALANCE_ACUMEN_ENV, BALANCE_ACUMEN_ADMIN_KEY, BALANCE_ACUMEN_BASE, BALANCE_OUT_DIR, BALANCE_LOW_USD, BALANCE_HORIZON_DAYS.

Not installed: no timer or cron entry was created for this. The watcher is run on demand; scheduling it is a separate decision, and a timer that mails on exit 1 would be the natural next step if the operator wants to stop running it by hand.

bash -n, shellcheck -x (0.10.0, zero findings), and the harness gate (npm run verify) all pass on this branch; see the PR for the exit codes.