tj status repeats its framing note per agent and gives SDK agents a Claude Code-only CTA
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
Research direction
Start in tokenjam/cli/cmd_status.py: read the cmd_status agent loop and the unknown-plan-tier hint, then inspect is_interactive_coding_agent in tokenjam/core/alerts.py. Run tj status with multiple agents sharing a pricing mode and with SDK/API and interactive agents whose plan tier is unknown. Done when the framing note appears once and the hint matches the relevant agent type.
Written by the indexing model from the issue text.
Description
Problem
tj status has two related persona bugs when multiple agents are present.
1. The subscription/local framing note repeats once per agent. _print_agent_status calls _framing_note(framing) and prints its result inside the per-agent block:
console.print(f" Cost today: {_cost_line(data, framing)}")
note = _framing_note(framing)
if note:
console.print(f" [dim]{note}[/dim]")
This function is invoked once per agent inside the for aid in agent_ids: loop in cmd_status. When several agents share the same pricing mode (e.g. all on a subscription plan), the identical note — "Subscription plan — flat-fee billing; cost shown as share of your monthly plan, not dollars spent." — prints once under every agent block. Three agents means the same sentence three times in one screen.
2. The "unknown plan tier" hint always recommends Claude Code/Codex, even for SDK agents. After the per-agent loop, cmd_status prints:
console.print(
f"[dim]Note: {unknown_count} session(s) have unknown plan tier. "
f"Run [bold]tj onboard --claude-code --reconfigure[/bold] "
f"(or [bold]--codex[/bold]) to set it.[/dim]"
)
This is a hardcoded string with no persona check. It assumes every agent with an unknown plan tier is either a Claude Code or Codex integration. Agents instrumented via the SDK/API path aren't managed by either of those flags, so this hint is inapplicable advice for them.
Expected
- The framing note prints once per
tj statusinvocation (a single footer line), not once per agent. - The unknown-plan-tier hint only recommends
tj onboard --claude-code --reconfigure(or--codex) when at least one of the agents shown is an interactive coding agent. When none are, the message should point at the plan setting directly instead ([budget.<provider>] planin the config file), since neither--claude-codenor--codexapplies to SDK/API integrations.
Where to look
tokenjam/cli/cmd_status.py:54— thefor aid in agent_ids:looptokenjam/cli/cmd_status.py:113—_print_agent_status(agent_data, active_alerts, session, framing)call sitetokenjam/cli/cmd_status.py:311-324—_print_agent_status, including the_framing_notecall at line 322tokenjam/cli/cmd_status.py:131-136— the hardcoded unknown-plan-tier CTAtokenjam/core/alerts.py:65-78—is_interactive_coding_agent(agent_id), the existing single-source-of-truth helper for classifying an agent id as Claude Code/Codex vs. SDK; reuse it rather than adding a second classifier
Done when
- Running
tj statuswith multiple agents on the same pricing mode prints the framing note exactly once for the whole command, not once per agent. - When every agent with an unknown plan tier is a non-coding (SDK/API) agent, the printed hint no longer suggests
--claude-code/--codexreconfigure. - When at least one agent with an unknown plan tier is an interactive coding agent, the existing
--claude-code --reconfigure/--codexhint still shows.
- Dominant language
- Python
- Stars
- 122
- Forks
- 35
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 8
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Metabuilder-Labs/tokenjam
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Metabuilder-Labs/tokenjam#786 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Metabuilder-Labs/tokenjam#759 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Metabuilder-Labs/tokenjam#728 ·
Maintainers usually reply within 1 day
-
bug good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Metabuilder-Labs/tokenjam#559 ·
Maintainers usually reply within 1 day
-
enhancement good first issue
Difficulty 1/5 Under an hour Newbie friendliness 68/100
Metabuilder-Labs/tokenjam#332 ·
Maintainers usually reply within 1 day
All issues in Metabuilder-Labs/tokenjam
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
anchore/grype-db#1149 · 1 comment ·
Maintainers usually reply within 1 day
-
[Bug]: `hermes plugins update` clones an entire monorepo twice - `subdir` is resolved but dropped at both catalog-update call sitesPossibly taken @HootRock claimed this today. Opencomp/cli P2 type/perf
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
NousResearch/hermes-agent#142417 · 2 comments ·
Maintainers usually reply within 1 day
-
SMC SPEC
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
tenstorrent/tt-oca-harness#3287 ·
Maintainers usually reply within 1 day
-
bug enhancement python
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
DewaldOosthuizen/tech-cheat-sheets-and-notes#392 ·
Maintainers usually reply within 1 day
-
security
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
fabriziosalmi/wildbox#801 ·
Maintainers usually reply within 1 day