Back to Hermes Agent

Session Librarian — Organize sessions by prompt: find, rename, archive, prune

website/docs/user-guide/skills/bundled/productivity/productivity-session-librarian.md

2026.8.135.1 KB
Original Source

Session Librarian

Organize sessions by prompt: find, rename, archive, prune.

Skill metadata

SourceBundled (installed by default)
Pathskills/productivity/session-librarian
Version1.0.0
AuthorHermes Agent + Teknium
LicenseMIT
Platformslinux, macos, windows
TagsSessions, Organization, Cleanup, Library, Productivity
Related skillsweekly-review-planning

Reference: full SKILL.md

:::info The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active. :::

Session Librarian

Manage the user's session library conversationally: find past sessions about a topic, summarize what they decided, rename them meaningfully, split work into parallel sessions, and propose stale ones for archive or deletion — all from a plain-language request like "find my sessions about Q3 pricing, keep the useful ones, and clean up the duplicates."

Inspired by Perplexity Computer's prompt-driven session management (Aug 2026): the agent starts, organizes, and cleans up the user's own session library, and always shows the plan before touching anything.

When to Use

  • "What sessions do I have about X?" / "What did we decide about X?"
  • "Rename these sessions to something meaningful."
  • "Clean up my session library" / "archive the stale ones."
  • "Fork that session into a follow-up focused on Y."
  • "Split this into one session per ticket" (see Parallel workstreams below).

The Two Surfaces

TaskSurface
Find sessions by topic, read content, summarize decisionssession_search tool (FTS5 over the message store)
List/filter by metadata (age, source, cost, tokens, workspace)hermes sessions list / stats via terminal
Renamehermes sessions rename <session_id> <title...>
Bulk soft-hide (reversible)hermes sessions archive <filters>
Delete (destructive)hermes sessions delete / hermes sessions prune <filters>
Export before deleting anything valuablehermes sessions export --session-id <id> --format md
Continue work in a new place/branch (fork current session) or start a fresh session and cite the summary

Procedure

Discover. Use session_search(query=..., limit=5-10) with topic keywords; vary phrasing (feature name, symptom, project name). For metadata sweeps ("sessions older than 60 days from telegram"), use hermes sessions list --source telegram --limit 50 instead.

Summarize per session. The discovery result's bookend_start (goal), match window, and bookend_end (resolution) usually suffice — only dump a full session (session_search(session_id=...)) when the user asks for decisions in depth. Report each as: link (@session: form) — one-line goal — one-line outcome.

Plan before acting (MANDATORY for anything that mutates). Present a plan table first: which sessions get renamed to what, which get archived, which are proposed for deletion and why (duplicate of which keeper, stale, empty). Wait for the user's go-ahead. Exception: a single rename the user explicitly dictated can be done directly.

Act with the safest primitive.

  • Prefer archive (reversible soft-hide) over delete/prune.
  • Always run destructive commands with --dry-run first and show the output, then re-run with --yes after confirmation.
  • Before deleting anything with meaningful content, offer hermes sessions export --format md as a backup.

Report. Renames applied, sessions archived (count + how to undo: archived sessions remain in the DB and are listed with --include-archived), anything exported, anything skipped and why.

Parallel Workstreams

For "one session per ticket, investigate each, report back": do NOT try to drive other live sessions. Use delegate_task with one task per workstream — each subagent runs in its own session automatically — then synthesize their summaries. Mention that each delegation's transcript is itself searchable later via session_search.

Pitfalls

  • Never delete without a dry-run + explicit confirmation in this conversation. A standing "clean things up" is authority to propose, not to prune.
  • session_search finds content, not metadata. Age/cost/source filters live in the CLI; combine both when the request mixes them ("old sessions about pricing").
  • Titles are identity for /resume <title>. When renaming, keep titles short, unique, and prefix-friendly; warn the user if a rename collides with an existing title.
  • Archived ≠ deleted. Archive hides sessions from default listings only. Say which one you did.
  • Cross-profile session links (@session:<profile>/<id>) are read-only from another profile; management commands act on the current profile's DB.

Verification

After a cleanup pass, re-run the discovery query and hermes sessions list to confirm the library reflects the plan (keepers present with new titles, archived ones gone from the default listing).