BM25 full-text search over coding agent sessions
Search coding-agent sessions with local BM25 full-text search (SQLite FTS5).
Sesame indexes Pi JSONL session files locally and lets you search them with ranked session, project, date, tool, path, and skill filters.
~/.pi/agent/sessions by defaultsesame search or sesame search "*"--tools, --tool, --path)--skill, --skill-path) plus a sesame skills leaderboardbrew tap aliou/toolbox
brew install sesame
Requires Node.js 26 or newer and pnpm.
pnpm install
pnpm run build
pnpm run build bundles the CLI into packages/cli/dist/sesame.cjs. Use pnpm run dev to rebuild on change.
Index sessions:
./packages/cli/dist/sesame.cjs index
Search:
./packages/cli/dist/sesame.cjs search "nix infra simplify"
./packages/cli/dist/sesame.cjs search "package.json exports" --tools --tool write
./packages/cli/dist/sesame.cjs search "*" --skill vitest
./packages/cli/dist/sesame.cjs search --after 7d
List skills used across sessions:
./packages/cli/dist/sesame.cjs skills
Check index:
./packages/cli/dist/sesame.cjs status
Watch for changes:
./packages/cli/dist/sesame.cjs watch
./packages/cli/dist/sesame.cjs watch --interval 30
Sesame reads ~/.config/sesame/config.jsonc by default and creates it if missing:
{
"piSessionPaths": ["~/.pi/agent/sessions"]
}
The SQLite index is stored at ~/.local/share/sesame/index.sqlite by default on macOS/Linux. Sesame also respects SESAME_*_DIR and XDG directory environment variables.
See docs/cli-usage.md.
docs/indexing.mddocs/library-usage.mddocs/README.mdMonorepo package:
skills/sesame/SKILL.md: pi skill for the Sesame CLI.pnpm run lint
pnpm test
pnpm run typecheck