Skip to content

Feature: Interactive Session Picker for hermes --continue — Browsable Session List with Search #718

@teknium1

Description

@teknium1

Overview

When running hermes --continue, the CLI currently blindly grabs the most recent CLI session and resumes it. There is no way to browse, search, or select from past sessions interactively. Similarly, hermes sessions list outputs a flat table but provides no way to select a session to resume from it.

A user specifically requested "a navigable list when running the hermes continue command."

Current Behavior

  • hermes --continue / hermes -c → resumes the single most recent CLI session (no choice)
  • hermes --resume <id> → requires knowing the exact session ID
  • hermes sessions list → prints a table, user must copy-paste ID manually
  • No interactive picker, no search, no preview

Proposed Solution

Interactive Session Picker

When hermes --continue is run without a session ID, present an interactive curses-based picker showing recent sessions:

┌─ Select a session to resume ─────────────────────────────────────────┐
│ Search: _                                                             │
│                                                                       │
│ > 2026-03-08 14:30  "Debugging the auth middleware"     12 msgs  cli │
│   2026-03-08 11:15  "Setting up MC server"              45 msgs  cli │
│   2026-03-07 22:00  "PR review #438"                     8 msgs  cli │
│   2026-03-07 16:45  "Writing pytest fixtures"           23 msgs  cli │
│   2026-03-07 09:30  20260307_093012_a1b2                 3 msgs  cli │
│                                                                       │
│ ↑↓ navigate  /search  Enter select  Esc cancel                       │
└───────────────────────────────────────────────────────────────────────┘

Features:

Implementation Notes

CLI Interface

hermes --continue              # Opens interactive picker (new behavior)
hermes --continue --latest     # Skip picker, grab most recent (old behavior preserved)
hermes --resume <id>           # Direct resume by ID (unchanged)
hermes sessions list           # Could also gain an --interactive / -i flag

Relevant Files

  • hermes_cli/main.pycmd_chat(), _resolve_last_cli_session(), sessions subcommand
  • hermes_state.pySessionDB.search_sessions()
  • hermes_cli/tools_config.py — existing curses picker patterns (_prompt_choice())
  • cli.pyHermesCLI.__init__() resume parameter handling

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    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