Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

tj status repeats its framing note per agent and gives SDK agents a Claude Code-only CTA

Open Beginner friendly
#591 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
85/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
python
Domain
cli

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

bug help wanted

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 status invocation (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>] plan in the config file), since neither --claude-code nor --codex applies to SDK/API integrations.

Where to look

  • tokenjam/cli/cmd_status.py:54 — the for aid in agent_ids: loop
  • tokenjam/cli/cmd_status.py:113 — _print_agent_status(agent_data, active_alerts, session, framing) call site
  • tokenjam/cli/cmd_status.py:311-324 — _print_agent_status, including the _framing_note call at line 322
  • tokenjam/cli/cmd_status.py:131-136 — the hardcoded unknown-plan-tier CTA
  • tokenjam/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 status with 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/--codex reconfigure.
  • When at least one agent with an unknown plan tier is an interactive coding agent, the existing --claude-code --reconfigure / --codex hint still shows.
Dominant language
Python
Stars
122
Forks
35
Avg merge
1d 18h
Merged PRs (30d)
8

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Metabuilder-Labs/tokenjam

All issues in Metabuilder-Labs/tokenjam

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.