Docs/Resonant/Sessions

Sessions

Resonant tracks conversations through a session and thread system that maintains continuity across restarts and days.

Sessions

A session represents a continuous interaction period. Sessions are stored in SQLite alongside all conversation messages.

Managing Sessions

From the web UI or chat commands:

CommandWhat It Does
/session listBrowse past sessions with timestamps and message counts
/session new [name]Start a new named session
/session switch <id>Switch to a different session
/session rename <name>Rename the current session

Continuity

When Resonant restarts, it picks up where you left off. The Claude Agent SDK’s native memory system preserves context across sessions, so your companion doesn’t lose track of ongoing conversations.

Threads

Threads organise conversations within sessions:

  • Daily threads — automatically rotate each day, keeping conversations contextually grouped
  • Named threads — create threads for ongoing topics (“project planning”, “reading list”)
  • Pinning — pin important threads to keep them accessible
  • Archiving — archive old threads without deleting them

Two types of search are available:

Keyword Search (Ctrl+K)

Fast, indexed search across all messages. Good for finding specific phrases, names, or commands.

Meaning-based search using local ONNX embeddings. Finds messages even when the exact words don’t match.

For example, searching “that time we talked about feeling overwhelmed” will find relevant conversations even if the word “overwhelmed” was never used.

See docs/semantic-search.md for setup details and usage.

Canvas

The canvas is an in-chat editor for collaborative content creation:

  • Markdown — write and preview documents together
  • Code — syntax-highlighted code editing
  • Text — plain text editing
  • HTML — live HTML preview

Your companion can create, edit, and display canvas items during conversation. Useful for drafting documents, reviewing code, or building content together.

Deployment

Development

npm run dev              # Backend with hot reload (tsx watch)
npm run dev:frontend     # Vite dev server with proxy

Production with PM2

For production use, PM2 keeps your companion running and restarts it automatically:

npm run build
pm2 start ecosystem.config.cjs
pm2 save
pm2 startup              # Auto-start on boot

Key PM2 commands:

pm2 status               # Check if running
pm2 logs resonant        # View logs
pm2 restart resonant     # Restart the process
pm2 stop resonant        # Stop without removing

Updating

Your data (data/, resonant.yaml, CLAUDE.md, .mcp.json, .env) is gitignored and won’t be affected by updates.

cd resonant
git pull
npm install
npm run build
pm2 restart resonant

To update to a specific version:

git fetch --tags
git checkout v1.4.1      # Replace with desired version
npm install
npm run build

Check the Releases page for changelogs and migration notes.