hermes-agent/hermes_cli
teknium1 ecac6321c4 feat: interactive session browser with search filtering (#718)
Add `hermes sessions browse` — a curses-based interactive session picker
with live type-to-search filtering, arrow key navigation, and seamless
session resume via Enter.

Features:
- Arrow keys to navigate, Enter to select and resume, Esc/q to quit
- Type characters to live-filter sessions by title, preview, source, or ID
- Backspace to edit filter, first Esc clears filter, second Esc exits
- Adaptive column layout (title/preview, last active, source, ID)
- Scrolling support for long session lists
- --source flag to filter by platform (cli, telegram, discord, etc.)
- --limit flag to control how many sessions to load (default: 50)
- Windows fallback: numbered list with input prompt
- After selection, seamlessly execs into `hermes --resume <id>`

Design decisions:
- Separate subcommand (not a flag on -c) — preserves `hermes -c` as-is
  for instant most-recent-session resume
- Uses curses (not simple_term_menu) per Known Pitfalls to avoid the
  arrow-key ghost-duplication rendering bug in tmux/iTerm
- Follows existing curses pattern from hermes_cli/tools_config.py

Also fixes: removed redundant `import os` inside cmd_sessions stats
block that shadowed the module-level import (would cause UnboundLocalError
if browse action was taken in the same function).

Tests: 33 new tests covering curses picker, fallback mode, filtering,
navigation, edge cases, and argument parser registration.
2026-03-08 17:42:50 -07:00
..
__init__.py Hermes Agent UX Improvements 2026-02-22 02:16:11 -08:00
auth.py fix: add Kimi Code API support (api.kimi.com/coding/v1) 2026-03-07 21:00:12 -05:00
banner.py feat: show update-available notice in CLI banner 2026-03-07 07:35:36 -08:00
callbacks.py refactor: reorganize agent and CLI structure for improved clarity 2026-02-21 23:17:18 -08:00
clipboard.py fix: clipboard BMP conversion file loss and broken test 2026-03-08 17:22:27 -07:00
codex_models.py refactor(auth): transition Codex OAuth tokens to Hermes auth store 2026-03-01 19:59:24 -08:00
colors.py Cleanup time! 2026-02-20 23:23:32 -08:00
commands.py feat: session naming with unique titles, auto-lineage, rich listing, resume by name 2026-03-08 15:20:29 -07:00
config.py feat: enhance config migration with new environment variable tracking 2026-03-08 05:55:32 -07:00
cron.py refactor: streamline cron job handling and update CLI commands 2026-02-21 16:21:19 -08:00
doctor.py fix: add Kimi Code API support (api.kimi.com/coding/v1) 2026-03-07 21:00:12 -05:00
gateway.py feat: enhance systemd unit and install script for browser dependencies 2026-03-08 04:36:23 -07:00
main.py feat: interactive session browser with search filtering (#718) 2026-03-08 17:42:50 -07:00
models.py feat: /provider command + fix gateway bugs + harden parse_model_input 2026-03-08 06:09:36 -07:00
pairing.py Cleanup time! 2026-02-20 23:23:32 -08:00
runtime_provider.py feat: add z.ai/GLM, Kimi/Moonshot, MiniMax as first-class providers 2026-03-06 18:55:18 -08:00
setup.py Merge PR #575: fix(setup): prevent OpenRouter model list fallback for Nous provider 2026-03-07 16:22:13 -08:00
skills_hub.py fix: Initialize Skills Hub on list 2026-03-09 01:43:59 +08:00
status.py fix: update setup/config UI for local browser mode 2026-03-07 01:23:27 -08:00
tools_config.py Fix empty tool selection persistence 2026-03-08 06:11:18 -07:00
uninstall.py Cleanup time! 2026-02-20 23:23:32 -08:00