Skip to main content

Session search

Session search lets you search past conversations — across all profiles, all time. It’s a full-text search engine over every conversation you’ve ever had with the agent.

What it is

Every conversation is stored as a JSON file in your data directory. Session search builds a full-text index (FTS5 — the same engine SQLite uses) over all those files. When you search, it queries the index and returns matching excerpts ranked by relevance. This is different from memory:
  • Memory is curated facts the agent decided to remember — distilled, compact, limited.
  • Session search is the raw transcript of every conversation — full text, searchable, unfiltered.

When to use it

  • “What did we discuss about the database migration three weeks ago?”
  • “Find the conversation where we debugged the WebSocket reconnect issue.”
  • “Show me every time I mentioned the staging server.”
  • “What was the solution to the white screen bug?”
Memory might have a fact like “Migrated DB from MySQL to PostgreSQL on 2026-01-15.” Session search finds the full 40-message conversation where you discussed the migration, planned the approach, hit errors, and fixed them.

From the sidebar

Type in the search bar at the top of the sidebar. The search:
  1. First matches conversation titles — if any title contains your query, it shows at the top.
  2. Then searches conversation contents — full-text search across all messages in all sessions.
  3. Results are ranked by relevance.
Click any result to open that conversation. The matching text is highlighted.

From chat

You can ask the agent to search past sessions:
What did we discuss about the database migration?
The agent uses the session_search tool to find matching conversations and incorporates the findings into its response. Session search supports FTS5 query syntax:
  • AND is the default — multi-word queries require all terms.
  • OR — broader recall (alpha OR beta OR gamma).
  • "exact phrase" — exact match.
  • NOT — exclude terms (python NOT java).
  • Prefix wildcards — deploy* matches “deploy”, “deployment”, “deploying”.

What session search returns

Each search result shows:
  • Session title — the conversation title.
  • Date — when the conversation happened.
  • Snippet — the matching text, highlighted.
  • Profile — which profile the conversation belongs to.
  • Match position — where in the conversation the match appears.
Click a result to open the full conversation. The matching text is scrolled into view and highlighted.

Browsing sessions

If you don’t search, you can browse:
  • Recent sessions — the sidebar shows recent conversations chronologically.
  • By profile — switch profiles to see that profile’s conversations.
  • By date — conversations are grouped by Today, Yesterday, This Week, Earlier.

Session search vs. memory

FeatureSession searchMemory
What it storesFull conversation transcriptsDistilled facts
How it’s createdAutomatically — every conversation is indexedAgent-curated — the agent decides what to remember
How to searchFTS5 full-text queryBrowse the memory page or ask the agent
SizeGrows with every conversationBounded (~2,200 chars for agent notes, ~1,375 for user profile)
In system promptNo — searched on demandYes — injected into every turn
Best for”What did we say about X?""What do you know about me?”
Both work together. Memory gives the agent quick context in every conversation. Session search lets the agent dig into the full history when memory isn’t enough.