Summary
When Claude Code starts a session on AWS Bedrock and model.display_name is not yet present in stdin, Claude HUD shows the raw Bedrock model ID (for example eu.anthropic.claude-opus-4-5-20251101-v1:0) in the statusline instead of a readable model name.
Steps to Reproduce
- Install current
main version of Claude HUD.
- Run Claude Code with a Bedrock-backed model where startup frames may include only
model.id.
- Or reproduce directly with stdin:
echo '{"model":{"id":"eu.anthropic.claude-opus-4-5-20251101-v1:0"},"cwd":"/tmp","context_window":{"current_usage":{"input_tokens":1000},"context_window_size":200000}}' | node dist/index.js
- Observe the rendered first line.
Expected Behavior
Model label should remain human-readable (for example Opus, Sonnet, or an intentionally normalized Bedrock model label), not the raw provider-qualified model ID.
Actual Behavior
HUD shows:
[eu.anthropic.claude-opus-4-5-20251101-v1:0 | Bedrock]
This is noisy and appears intermittently during startup depending on whether display_name is present yet.
Environment
- OS: macOS
- Node/Bun version: Node.js 22.x
- Claude Code version: 2.x
Logs or Screenshots
Observed behavior maps to current fallback logic:
src/stdin.ts:
getModelName() currently returns stdin.model?.display_name ?? stdin.model?.id ?? 'Unknown'
- Bedrock detection and provider label are already correct (
Bedrock), so the issue is specifically model display fallback when display_name is missing.