Claude Modsunofficial directory

Dashboards·terminal·MIT

telltale

One cell per task above the prompt: your turn, subagents and background commands, live.

Generic Claude Mods cover; telltale has no licensed screenshot yet

telltale draws a live status band for Claude Code: a strip of panels above the prompt, or docked to the right of the transcript when the terminal is wide enough, that polls, redraws and takes mouse clicks. The released build ships one panel, agents, with one cell per task in flight: your own turn, every subagent spawned with the Agent tool, and every background command. Each cell lists its steps (prompt, tool uses, reply) as they happen, and nothing it does reaches the model.

What it does

  • Three task sources. main cells for this session’s turns, sub cells for subagents, bg cells for Bash with run_in_background, Monitor and Workflow calls.
  • Three cell styles. v1 chains the steps horizontally for a wide, short band; v2 lists them vertically in one frame; v4 fits header and steps on one line. The default, auto, picks v2 when the pane is docked and v1 above the prompt.
  • Three sizes per panel. summary, compact and full. Click a panel title to cycle them, or use the buttons on the agents title row: [1 2 3] for the style, [S C F] for the size, [R B RB] for the edge and [x] to clear. A click on a cell expands or collapses it.
  • Orphan detection. A background cell silent for 30 minutes turns yellow. After 2 hours it becomes an orphan and stays until you click it or run /telltale agents clear.
  • /telltale prints one line per panel and the band’s row usage. /telltale agents on|off, /telltale agents style auto|v1|v2|v4, /telltale agents edge auto|right|bottom|both and /telltale agents size summary|compact|full set the rest. both keeps agents in the pane and moves every other panel above the prompt.
  • Demo panels. With TELLTALE_DEV=1 set before launch, hello and clock register too. They are scaffolding for panel authors, not features.

Install

Needs Claude Code 2.1.287 or later; the author tested on 2.1.274, the build that introduced the async $.clock.now() the module relies on, and declares no older minimum. Also an interactive terminal at least 20 columns wide, and a mouse if you want to click panels and cells.

claude plugin marketplace add ryu111/telltale
claude plugin install telltale@telltale

Restart Claude Code. The band appears on its own, above the prompt at first. telltale asks the engine for a pane and keeps drawing above the prompt until that pane’s own render reaches it; from then on everything moves into the pane, docked to the right on a wide terminal or boxed above the prompt on a narrow one. Some hosts open the pane and never render it, cmux among them, so the band simply stays above the prompt there. top and left are not positions the engine offers. Run /telltale to see which panels are on.

How it works

One plugin with several panels is a deliberate choice. Two plugins that both hook ui.render for the above-prompt slot fight over it, and the loser’s drawing vanishes without an error, so telltale owns that single hook and composes the panels itself. The cost, in the author’s words: adding a panel means a pull request to telltale, not a separate plugin.

The agents panel gets its data from the session itself. turn.start gives it the text of your prompt for the main cell’s label. turn.step gives it each tool use as it streams, labelled with the tool’s description or the first 40 characters of a Bash command, plus an agentId when the step belongs to a subagent. turn.complete closes the cell. session.receive here means the task-notification deliveries Claude Code sends this session when a background command, Task or Workflow finishes; telltale parses the quoted description out of that text to close the matching bg cell. A timer polls $.agent.list() to pair spawns with running subagents, and the Spinner render event tells it whether the model is thinking or responding. A workflow’s agents are not listed by the engine, so their cells complete after two idle minutes instead of on a status change.

Everything the panel knows lives in $.store, which Claude Code keeps on disk under ~/.claude/plugins/store/ as one JSON file per plugin: panel toggles, sizes, styles and the cells. Cells are keyed by session id, so two sessions of the same user keep their own, and cells left by sessions that ended more than a day ago are swept at session.start. A headless session (claude -p, the SDK, Claude Desktop) registers /telltale and touches nothing else. No network: the author’s claude plugin validate --strict output lists no $.http.fetch, and the module makes no such call. The observation hooks pass every event through unchanged, so the band adds nothing to the model’s context. Unlike cctop, which reports context fill and cost, telltale only tracks tasks.

Limitations

  • Real-time only. No history and no replay: a cell that scrolls off, or a session that ends, is gone.
  • Two positions, set by the engine: a pane docked right, or the band above the prompt. The band is at most 9 rows; below 20 columns it collapses to a single line.
  • Matching by description. Two background commands running at once with the same description can close each other’s cell. Two subagents spawned at once with the same description can swap model labels.
  • Shared settings. Panel on/off, style, edge and size apply to every session of your user, not per session. Only the cells are per session.
  • The store survives uninstall. Reset it with rm ~/.claude/plugins/store/telltale_*.json.
  • Dead zone. The rightmost 4 columns of every title row ignore clicks, because the engine’s own [-] control sits there. Emoji may measure wrong.
  • Version mismatch. The README describes v0.2 while plugin.json and the marketplace still report 0.1.0, after 29 commits since 17 September 2026. Draws only in interactive terminal sessions: claude -p, the SDK and Desktop get nothing.

Similar Claude Mods

The whole directory →