Skip to content

Conversations

The Conversations dialog is a unified search over all local agent session history. It reads the history files each agent writes to disk, merges them into a single time-sorted list, and lets you resume any past session. Open it with C from the Main Menu, or bind the conversations action to a hot key.

Conversations dialog

XXX TODO: Better screenshot

The text field at the top of the dialog filters the list as you type. Matching is case-insensitive plain-text by default, runs against each conversation’s body and its project/folder path, and highlights the hits inline. Each row shows the agent name on the left (colored per agent integration), the session id centered, and the conversation’s timestamp on the right. Focused rows expand to a multi-line preview; the folder path below the preview is shown as Folder: for Claude, Codex, and OpenCode, and Project: for Gemini.

Results are paginated. The status line reads Showing N of M conversations; when ↓ loads more appears, press Page Down or scroll to load the next batch of 50. Up to 10,000 of the most recent entries are indexed across all four agent providers.

Navigate with ↑↓ to move one row at a time, PgUp/PgDn to page, Tab to open the hamburger menu, Enter to open the focused conversation, and Esc to close.

The menu at the top-right of the dialog toggles two modifiers:

  • Case-sensitive search — when on, the query is matched with exact casing.
  • Regex search — when on, the query is compiled as a JavaScript regular expression. Both modifiers can be combined.

When regex mode is on and the query does not compile, the status line turns red and the result area shows Invalid regex: followed by the engine’s error message. Regex errors never silently empty the list — if you see no results without an error, the query is valid and simply matched nothing. Both toggles persist across restarts.

Press Enter (or double-click a row) to open the focused conversation. If that session is already running in a Honeymux pane, focus switches to it. Otherwise Honeymux opens a new tmux window in the current session and runs the agent’s resume command in the conversation’s original project directory:

  • claude --resume <session-id>
  • codex resume <session-id>
  • gemini --resume <session-id>
  • opencode --session <session-id>

If a conversation has no usable session id, the agent is launched without resume arguments so you land in a fresh session of the same tool.

The first time you open Conversations, Honeymux asks for permission before reading any history files. The Conversation History Access dialog lists the exact paths it will scan:

Conversation history consent dialog

  • ~/.claude/history.jsonl
  • ~/.codex/sessions/**/*.jsonl
  • ~/.gemini/tmp/*/chats/*.json
  • ~/.local/state/opencode/prompt-history.jsonl

No data leaves your device. Choosing Allow starts the initial index and saves the decision; choosing Deny records the refusal and leaves the Conversations dialog empty on future opens. Either choice is persisted to ~/.local/state/honeymux/history-consent.json; delete that file to be asked again. The index itself is cached at ~/.local/state/honeymux/history-cache.json and refreshed automatically every five minutes while the consent is granted — see Log for where indexing progress is recorded.

Screen captures powered by Honeyshots

Copyright © 2026 Aaron Campbell · Apache 2.0