Skip to content

[Feature]: /resume with no arguments should show an interactive session picker #4988

@rahi-assistant

Description

@rahi-assistant

Summary

Currently, typing /resume inside the Hermes TUI/CLI without an argument either errors or prompts for an ID — but there's no way to discover that ID from within the session.

The Problem

  • /resume <id> works — but only if you already know the session ID
  • Session IDs are opaque timestamp-based strings (e.g. 20260404_114702_bd197e) with no in-session way to list them
  • The official docs point users to hermes --continue / hermes -c from the terminal for resuming the last session — but that doesn't help when you're already inside a running session
  • There's no in-TUI equivalent of the discoverability that hermes -c gives from the terminal

Expected Behavior

/resume called with no arguments should open an interactive session picker — a scrollable list of recent sessions showing:

  • Session title (or first message preview if untitled)
  • Timestamp
  • Source platform (cli / telegram / discord / etc.)
  • Token count or rough size indicator

User picks one with arrow keys + Enter, and the session loads. Similar to how fzf or prompt_toolkit's radiolist_dialog works.

Proposed Implementation

The session data is already in SQLite (~/.hermes/state.db), so the picker just needs to query it:

SELECT session_id, title, source, started_at, total_tokens
FROM sessions
ORDER BY started_at DESC
LIMIT 20

Then render with prompt_toolkit (already a dependency) as an inline list or full-screen picker.

Fallback for non-interactive environments (piped input, Telegram, etc.): print the last 10 sessions as a numbered list and accept /resume 3 style numeric selection.

Why This Matters

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/cliCLI entry point, hermes_cli/, setup wizardsweeper:implemented-on-mainSweeper: behavior already present on current maintype/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