kiro-session

Find any conversation in milliseconds. Split long sessions by topic. Resume exactly where you left off. Works as a CLI tool and as a Kiro skill.

Local-first · SQLite + FTS5 + Embeddings · Python 3.10+ · Works with Kiro CLI

Before Now

😤 Without kiro-session

  • UUIDs + truncated first prompts
  • grep on summaries, misses later content
  • Resume: current directory only
  • Mixed topics — no way to split
  • Stale sessions pile up endlessly
  • No privacy controls at all

🚀 With kiro-session

  • Names, topics, tags, metadata
  • FTS5 + embedding hybrid search
  • Cross-directory, inferred trust tools
  • LLM splits by meaning, resume by topic
  • Smart cleanup suggestions
  • Exclude, redact, delete topics, purge
CLI
📋 List
🔍 Search
⏪ Resume
Skill
🤖 In-Chat
Session List — Before vs Now
── Before ──────────────────────────────────────
$
Chat sessions for /home/user/project:
Chat SessionId: 612381ac-a3b4-4e7d-b1c2-ef4eb89c4919
21 minutes ago | continue with the refacto... | 148 msgs
Chat SessionId: 5d32ae37-97c3-4733-bfcb-ccdd2ce988a8
2 days ago | yes | 106 msgs
Chat SessionId: c3ac5bb0-80b3-4420-b4b6-0f2f7206b4c6
5 days ago | help me with docker compo... | 34 msgs
✘ UUIDs, truncated first prompts. Which one had Docker networking? 🤷
── Now ─────────────────────────────────────────
$
612381ac API Gateway Migration (4d, 3 topics, docs)
c3ac5bb0 Docker Compose Setup (25m, 2 topics, infra)
⏳ 5d32ae37 Debug production logs... (2d, 53 turns, project-x)
⏳ bcc7b244 Reply with exactly: OK (3h, 1 turn, temp)
✔ Names, topics, tags, recency — find anything instantly.
Resume — Before vs Now
── Before ──────────────────────────────────────
$
Scoped to current directory only.
Don't remember which project it was in? Try every directory.
21 minutes ago | continue with the refacto... | 148 msgs
2 days ago | yes | 106 msgs
5 days ago | help me with docker compo... | 34 msgs
✘ Current directory only. Truncated first prompts. No topic selection.
── Now ─────────────────────────────────────────
$
→ pick from list (or jump to detail with ID) → [r] Resume full / [1-3] by topic
Output:
cd /home/user/docs && kiro-cli chat --trust-tools=fs_read,fs_write,grep
/chat load ~/.kiro/tmp/612381ac-resume.json
Original session remains unchanged. Trust tools auto-inferred from history.
✔ Cross-directory. All projects in one list. Resume full or by topic.
In-Chat Skill — Before vs Now
── Before ──────────────────────────────────────
You: Where did I discuss Docker networking last week?
Kiro: I can only see our current conversation. I can try to help:
1. Use --resume-picker to browse session summaries and pick one
2. I can look through session data in each project directory,
but I'd need to read the full conversation content to find it
✘ No cross-session search. Slow, manual, hit-or-miss.
── Now ─────────────────────────────────────────
You: Where did I discuss Docker networking last week?
Kiro: Found 2 sessions:
API Gateway Migration (4d ago, docs)
Configured nginx reverse proxy for Docker containers.
Docker Compose Setup (5d ago, infra)
Set up Docker network for multi-container app.
✔ Search history without leaving the conversation.

Key Features

🔍

Instant Search

Hybrid search: FTS5 keyword + embedding semantic, merged with RRF. Cross-language. Fully local, no API key.

🏷️

Tags & Filters

Auto-tags from file types, commands, directories. Manual tags too. Filter by --file, --cmd, --dir, --recent.

✂️

Topic Splitting

LLM groups turns by meaning — not sequence. Not happy with the result? Provide feedback and re-analyze.

Resume by Topic

Pick a topic number, get a cherry-picked session file. Load in kiro-cli and continue exactly where that topic left off.

🤖

Skill Integration

Search and list sessions from inside a kiro-cli conversation. No need to leave the chat — results in natural language.

Two-Layer Index

Instant Scan on every startup (<500ms). Deep Enrich via LLM in background. Usable without LLM.

🔒

Privacy

Exclude directories, redact turns, delete sensitive topics, purge index. Private mode auto-deletes session data on exit.

🧹

Safe Cleanup

Smart suggestions for stale, empty, and fully-derived sessions. No auto-deletion — always requires confirmation.

How It Works

Read-only on kiro DB. All index data in its own SQLite. Usable without LLM — LLM only enhances.

📦

kiro-cli DB

Read-only access to conversations_v2. kiro-session never writes to it.

Instant Scan

Every startup, <500ms. Extracts metadata, transcripts → FTS5, files, commands, keywords. Zero tokens.

🧠

Deep Enrich

LLM in background. Quality names, semantic topics, smart tags. 3-10s/session. Graceful degradation.

🗄️

session-index.db

SQLite with FTS5 full-text search, structured topics, tags, derivations, and file/command tracking.

Get Started

Install
$
$
✔ Dependencies checked
✔ Virtual environment created
✔ kiro-session installed

Requires Python 3.10+ and Kiro CLI.

Explore