OpenClaw Output Metrics Footer
Use this skill when an OpenClaw workspace should show compact runtime metrics under text channel outputs.
Default footer:
_🟢 ↑54k ↓157 · 21%ctx · 5h 89% · kimi-k2.6:cloud_
With subagent aggregate:
_🟢 ↑54k ↓157 · 21%ctx · 5h 89% · openai-codex/gpt-5.5 · sub ↑31k ↓4k_
What it does
- Adds a provider-agnostic channel delivery-time footer using OpenClaw plugin hooks.
- Uses
llm_outputfor actual model/token metrics. - Uses
message_sendingto append the footer without adding prompt tokens. - Uses live/cached OpenAI Codex OAuth usage for
5h 89%when available. - Uses color status from context usage and quota remaining.
- Optionally aggregates nearby subagent LLM usage.
Install into an OpenClaw workspace
Copy the bundled extension template:
mkdir -p ~/.openclaw/extensions/openclaw-output-metrics-footer
cp -R assets/extension-template/* ~/.openclaw/extensions/openclaw-output-metrics-footer/
Add this plugin config to ~/.openclaw/openclaw.json:
{
"plugins": {
"allow": ["openclaw-output-metrics-footer"],
"load": {
"paths": ["~/.openclaw/extensions/openclaw-output-metrics-footer"]
},
"entries": {
"openclaw-output-metrics-footer": {
"enabled": true,
"hooks": {
"allowConversationAccess": true
},
"config": {
"enabledChannels": [],
"cacheMs": 120000,
"quotaCacheMs": 60000,
"contextReserveTokens": 40000,
"appendSubagents": true,
"disabledChannels": [],
"disabledConversations": []
}
}
}
}
}
Then validate and restart:
openclaw config validate
openclaw gateway restart
Channel deployment
The plugin can run for any OpenClaw text channel that emits message_sending.
Use enabledChannels to restrict to specific providers, such as ['discord', 'telegram']. Leave it empty to enable all text providers.
Use disabledChannels to disable whole providers.
Use disabledConversations to disable specific channel/chat/conversation IDs.
Recommended defaults:
- Enable in active work channels like
#general,#coding,#reasoning, Telegram work chats, and audit channels. - Disable in status-only channels like
#feedand incident channels like#systemif noise matters.
Configuration
Fields:
enabledChannels: optional provider allowlist. Empty means all supported text channels.cacheMs: window for matching recent LLM output and subagent output.quotaCacheMs: minimum interval between Codex quota refreshes.contextReserveTokens: safety reserve included in context percentage calculations.appendSubagents: appendsub ↑x ↓ywhen nearby subagent usage is detected.disabledChannels: provider IDs where no footer should be appended.disabledConversations: channel/chat/conversation IDs where no footer should be appended.
Color status
🟢: context under 50% and quota over 50%.🟡: context 50-80% or quota 20-50%.🔴: context over 80% or quota under 20%.
If context and quota disagree, show the worse status.
Guardrails
- Do not put footer instructions in agent prompts.
- Do not call an LLM to calculate footer metrics.
- Do not fetch Codex quota on every message; use cache.
- Do not show emails, OAuth profile names, token values, API key prefixes, or auth file paths.
- Do not add the footer when it would exceed the channel message limit.
Read references/implementation.md before changing the extension code.
Scan to join WeChat group