Skip to content

Feature: Add /plan slash command to view current todo listΒ #36821

@flipboa

Description

@flipboa

Feature: Add /plan slash command to view current todo list

Problem

The status bar shows πŸ“‹ plan 5 task(s) 0.0s when the agent calls the todo tool, but this is a transient display β€” it flashes by during tool execution and there's no way to inspect the current task list after the fact.

This creates a friction point:

  • Users can't check what tasks are pending/completed without asking the agent to list them
  • During long-running tasks, the status bar line disappears before users can read it
  • The agent might be busy processing and won't respond to "show me the plan" immediately

Proposed Solution

Add a /plan slash command that displays the current session's todo list directly in the TUI, similar to how /status shows session info.

Behavior

/plan              β†’ Show full todo list (pending, in_progress, completed, cancelled)
/plan pending      β†’ Show only pending + in_progress items
/plan clear        β†’ Clear all tasks (with confirmation)

Output format (in-session, no agent round-trip):

πŸ“‹ Current Plan
──────────────────────────────────────
βœ“ 1. Set up project structure
βœ“ 2. Implement auth module
● 3. Write integration tests    (in_progress)
β—‹ 4. Deploy to staging
β—‹ 5. Update documentation
──────────────────────────────────────
Progress: 2/5 completed

Implementation Notes

  • The todo list is already stored in run_agent.py as part of the agent state (self.todos or similar). The command just needs to read and format it.
  • Register in hermes_cli/commands.py as a new CommandDef("plan", ...).
  • Handler in cli.py reads the current todo state and renders it β€” no LLM call needed.
  • Optionally: add a keybinding (e.g., Ctrl+P) as a shortcut for /plan.

Alternatives Considered

  • Expandable status bar: Making the πŸ“‹ plan line clickable/expandable in the TUI. Rejected β€” requires significant prompt_toolkit layout changes.
  • Relying on the agent: Asking the agent "show me the plan". Rejected β€” agent may be busy processing and can't respond immediately.

Additional Context

This was discussed in the context of users wanting to check task progress during long agent runs, especially when context compaction is happening (⟳ compacting context…). Having a non-blocking way to inspect the plan without interrupting the agent would improve the user experience.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low β€” cosmetic, nice to havecomp/cliCLI entry point, hermes_cli/, setup wizardcomp/tuiTerminal UI (ui-tui/ + tui_gateway/)type/featureNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions