Wat het is
- Haalt providergebruik/quota rechtstreeks op uit hun gebruikseindpunten.
- Geen geschatte kosten; alleen door de aanbieder gerapporteerde quotavensters of samenvattingen van accountstatus.
- Menselijk leesbare statusuitvoer voor quotavensters wordt genormaliseerd naar
X% over, zelfs wanneer een upstream-API verbruikte quota, resterende quota of alleen ruwe aantallen rapporteert. Aanbieders zonder resetbare quotavensters kunnen in plaats daarvan samenvattende aanbiedertekst tonen, zoals een saldo. /statusensession_statusop sessieniveau kunnen terugvallen op de nieuwste transcript-gebruiksvermelding wanneer de live sessiesnapshot beperkt is. Die fallback vult ontbrekende token-/cachetellers aan, kan het actieve runtime- modellabel herstellen, en geeft de voorkeur aan het grotere promptgerichte totaal wanneer sessie- metadata ontbreekt of kleiner is. Bestaande niet-nul live waarden blijven leidend.
Waar het verschijnt
/statusin chats: statuskaart met veel emoji’s, met sessietokens + geschatte kosten (alleen API-sleutel). Providergebruik wordt voor de huidige modelaanbieder getoond wanneer beschikbaar als een genormaliseerd vensterX% overof samenvattende aanbiedertekst./usage off|tokens|fullin chats: gebruiksvoettekst per antwoord./usage costin chats: lokale kostensamenvatting, geaggregeerd uit OpenClaw-sessielogs.- CLI:
openclaw status --usageprint een volledige uitsplitsing per aanbieder. - CLI:
openclaw channels listprint dezelfde gebruikssnapshot naast de aanbiederconfiguratie (gebruik--no-usageom over te slaan). - macOS-menubalk: sectie “Gebruik” onder Context (alleen indien beschikbaar).
Standaardmodus voor gebruiksvoettekst
/usage off|tokens|full stelt de voettekst voor een sessie in en wordt voor die
sessie onthouden. messages.responseUsage vult die modus vooraf in voor sessies die nog geen
keuze hebben gemaakt, zodat de voettekst standaard aan kan staan zonder elke keer
/usage te typen.
Stel één modus in voor elk kanaal, of een kaart per kanaal met een default-fallback:
Drie onderscheidende sessiestatussen
Het veldresponseUsage van een sessie heeft drie representeerbare statussen, elk met
andere semantiek:
| Status | Opgeslagen waarde | Effectieve modus |
|---|---|---|
| Niet ingesteld / erven | undefined (afwezig) | Valt door naar de configuratiestandaard messages.responseUsage, daarna off. |
| Expliciet uit | "off" (opgeslagen) | Altijd uit — een niet-uit configuratiestandaard kan de voettekst niet opnieuw inschakelen. |
| Expliciet aan | "tokens" of "full" (opgeslagen) | Die modus, ongeacht de configuratiestandaard. |
Prioriteit
Effectieve modus = sessie-override → kanaalconfiguratie-item →default → off.
Een expliciete /usage off wordt blijvend opgeslagen als de letterlijke waarde "off" in de
sessie, niet hetzelfde als “niet ingesteld”. Dit betekent dat een niet-uit
standaard voor messages.responseUsage de voettekst niet weer kan inschakelen nadat de gebruiker die expliciet heeft uitgeschakeld.
Resetten versus uitschakelen
/usage off— forceert de voettekst uit en slaat die keuze blijvend op. Een geconfigureerde niet-uit standaard kan dit niet overschrijven./usage reset(aliassen:inherit,clear,default) — wist de sessie- override. De sessie erft daarna de effectieve configuratiestandaard (messages.responseUsage). Als er geen standaard is geconfigureerd, staat de voettekst uit (ongewijzigd ten opzichte van eerder). Gebruik dit om “terug te gaan naar standaard” zonder de voettekst expliciet in te schakelen.- Een volledige sessiereset (
/resetof/new) of een sessierollover behoudt de expliciete voorkeur voor de gebruiksmodus, zodat de weergavekeuze van de gebruiker sessierollovers overleeft. Alleen/usage reset(en de aliassen ervan) wist daadwerkelijk de override.
Toggle-gedrag
/usage zonder argumenten doorloopt: uit → tokens → volledig → uit. Het startpunt
voor de cyclus is de effectieve huidige modus (sessie-override die doorvalt
naar de configuratiestandaard wanneer niet ingesteld), dus de cyclus is altijd consistent met wat
de gebruiker in de voettekst ziet.
Configuratie
Zonder configuratie blijft het eerdere gedrag gelden (voettekst uit tot/usage). Gebruik
/usage reset om een sessie-override te wissen en de geconfigureerde standaard opnieuw te erven.
Aangepaste voettekst voor /usage full
/usage full toont een ingebouwde compacte voettekst met model, redenering, snel/langzaam,
contextvenster en kosten wanneer die velden beschikbaar zijn. Token- en cachevelden
blijven beschikbaar voor aangepaste templates. Er is geen templatebestand vereist.
messages.usageTemplate is alleen voor geavanceerde aangepaste indelingen. De waarde is een
JSON-bestandspad (ondersteunt ~) of een inline object, en vervangt de ingebouwde
voettekst wanneer geldig:
Vorm
sep. Een oppervlak zonder item gebruikt
output.default.
Contractpaden
Een onderdeel leest waarden uit het per-beurt-contract via een puntpad. Afwezige waarden zijn leeg (dus eenwhen-guard of een |fallback houdt het onderdeel schoon).
| Pad | Betekenis |
|---|---|
surface | kanaal-id (discord/telegram/enz.) |
model.provider / model.display_name | aanbieder-id / model-id |
model.reasoning | inspanning (off tot en met xhigh) |
model.is_fallback / model.is_override | bool: fallback gebruikt / model vastgezet |
state.fast_mode | bool: snel versus langzaam |
context.max_tokens / context.pct_used | vensterbudget / 0-100 gebruikt |
usage.input_tokens / usage.output_tokens / usage.total_tokens | aggregaat per beurt |
usage.has_split_tokens / usage.has_total_only_tokens / usage.cache_hit_pct | guards voor tokenweergave en cachepercentage |
usage.last.input_tokens / usage.last.output_tokens / usage.last.cache_hit_pct | alleen laatste modelaanroep |
cost.turn_usd | geschatte beurtkosten |
identity.name / identity.emoji | agentnaam / gekozen emoji |
Bewerkingen
Leid een waarde van links naar rechts door bewerkingen; een segment dat geen bewerking is, is de fallback.| Bewerking | Effect | Voorbeeld |
|---|---|---|
num | compact aantal | 272000 -> 272k |
fixed:N | N decimalen (standaard 2) | 0.0377 |
dur | seconden naar duur | 14820 -> 4h07m |
pct | voeg % toe | 96 -> 96% |
inv | 100 - x | van gebruikt naar resterend |
alias:TABLE | zoek op in aliases, echo als niet vermeld | medium -> 🌗 |
meter:W:SCALE | W-cellige glyphbalk over een 0-100-waarde | [⣿⣿⠐⠐⠐] (meter:1 = één glyph) |
Onderdeelvormen
{ "text": "📚 {context.max_tokens|num}" }: letterlijk + interpolatie.{ "when": "<path>", "text": "..." }: render alleen als het pad truthy is.{ "map": "<path>", "cases": { "true": "⚡", "false": "🐌" } }: waarde naar glyph.{ "each": "limits.windows", "item": "{label}" }: itereer over een array.
Voorbeeld
claude-sonnet-4-6 🌗 🐌 | 📚 [⣿⣿⣿⣿⣧]272k.
Aanbieders + inloggegevens
- Anthropic (Claude): OAuth-tokens in auth-profielen.
- GitHub Copilot: OAuth-tokens in auth-profielen.
- Gemini CLI: OAuth-tokens in auth-profielen.
- JSON-gebruik valt terug op
stats;stats.cachedwordt genormaliseerd naarcacheRead.
- JSON-gebruik valt terug op
- OpenAI Codex: OAuth-tokens in auth-profielen (
accountIdwordt gebruikt wanneer aanwezig). - MiniMax: API-sleutel of MiniMax OAuth-auth-profiel. OpenClaw behandelt
minimax,minimax-cnenminimax-portalals hetzelfde MiniMax-quotumoppervlak, geeft de voorkeur aan opgeslagen MiniMax OAuth wanneer aanwezig en valt anders terug opMINIMAX_CODE_PLAN_KEY,MINIMAX_CODING_API_KEYofMINIMAX_API_KEY. Gebruikspolling leidt de Coding Plan-host af uitmodels.providers.minimax-portal.baseUrlofmodels.providers.minimax.baseUrlwanneer geconfigureerd, en gebruikt anders de MiniMax CN-host. De ruwe MiniMax-veldenusage_percent/usagePercentbetekenen resterend quotum, dus OpenClaw keert ze om vóór weergave; op aantallen gebaseerde velden krijgen voorrang wanneer aanwezig.- Vensterlabels voor coding-plan komen uit de uren-/minutenvelden van de provider wanneer
aanwezig, en vallen daarna terug op het bereik
start_time/end_time. - Als het coding-plan-eindpunt
model_remainsretourneert, geeft OpenClaw de voorkeur aan de chatmodel-vermelding, leidt het vensterlabel af uit tijdstempels wanneer expliciete veldenwindow_hours/window_minutesontbreken, en neemt de modelnaam op in het planlabel.
- Vensterlabels voor coding-plan komen uit de uren-/minutenvelden van de provider wanneer
aanwezig, en vallen daarna terug op het bereik
- Xiaomi MiMo: API-sleutel via env/config/auth-store (
XIAOMI_API_KEY). - z.ai: API-sleutel via env/config/auth-store.
- DeepSeek: API-sleutel via env/config/auth-store (
DEEPSEEK_API_KEY). OpenClaw roept het saldo-eindpunt van DeepSeek aan en toont het door de provider gerapporteerde saldo als tekst in plaats van een quotumvenster met resterend percentage.