Skip to main content

kiro-session-index

Locate, outline, index and search Kiro agent session logs. Standard library only, no network access, sessions are opened read-only.

Supports both on-disk formats under ~/.kiro/sessions/:

  • directory format (Kiro IDE / Kiro CLI --agent-engine=v3): session.json + messages.jsonl + sub-executions/
  • three-file format (Kiro CLI default engine): cli/<id>.json + <id>.jsonl + <id>.lock

Usage

uvx kiro-session-index locate <session-id> [--children]
uvx kiro-session-index outline <session-id> [--json]
uvx kiro-session-index list [--workspace <path>] [--since-days N] [--sort created|modified]
uvx kiro-session-index build --session <session-id> [--include-sub]
uvx kiro-session-index build --workspace <path> [--since-days N]   # all sessions of a workspace
uvx kiro-session-index build <files-or-dirs...>                    # index a codebase
uvx kiro-session-index search "query" --index <dir> [--top N] [--kind user,assistant]
uvx kiro-session-index clean --index <dir>                         # always clean up
  • locate resolves an id (with or without sess_ prefix, prefix match allowed) or a path, detects the format, and prints metadata, lock liveness, and derived sessions.
  • outline segments a transcript into turns with start/end line numbers, per-turn tool usage, credits, sub-agent dispatches, and compaction/tombstone markers.
  • list shows storage areas, or every session of a workspace (dir-format workspacePaths plus cli-format cwd) with sizes, titles, and both timestamps. --sort created (oldest first) answers "earliest discussion" questions directly and stays correct even when bulk copies have homogenized file mtimes.
  • build creates a disposable index as SQLite under .tmp/session-index/<name>/ in the current directory: a TF-IDF inverted index (ASCII words + CJK bigrams), plus dense multilingual embeddings with --semantic. --workspace indexes every session of a workspace incrementally: per-session shards skip unchanged sessions, duplicate copies across buckets are deduplicated (newest wins), and a fully fresh index returns in about a second. Measured worst case: 914 sessions / 640 MB → 72 s cold, ~0.2 s per query.
  • search ranks chunks and every hit carries file:lineStart-lineEnd so the caller can read exactly the lines it needs. --mode auto uses hybrid ranking (reciprocal rank fusion of lexical + semantic) when the index has embeddings, else lexical. Identical content repeated across checkpoint-fork session copies is collapsed to one hit with a copies count; --kind user,assistant (dir format) or --kind Prompt,AssistantMessage (cli format) filters out tool-call noise.
  • clean removes an index directory, refusing to delete anything it did not create.

Semantic search (optional extra)

uvx --from 'kiro-session-index[semantic]' kiro-session-index build --session <id> --semantic
uvx --from 'kiro-session-index[semantic]' kiro-session-index search "查询内容" --index <dir>

Embeddings come from minishlab/potion-multilingual-128M — a local open-source static embedding model (101 languages, 256 dims), run on CPU via model2vec + numpy; no torch, no cloud embedding API. The model downloads once (~230 MB) from Hugging Face into the local cache and is fully offline afterwards. Static embeddings make indexing fast enough for whole workspaces (thousands of chunks per second). Vectors are stored per content hash (float16 blobs in the same SQLite file), so incremental rebuilds only embed new text; scoring is exact brute-force cosine via one matrix product — no ANN needed at this scale. Cross-language recall works: a Chinese query like "硬件安全模块保管密钥" ranks English/mixed CloudHSM key-custody content at the top. Without the extra installed, the same index still serves lexical searches.

Indexes are temporary artifacts. Delete them with clean when the task is done.

Part of kiro-steering-agents; built to back a session-loader sub agent that reads big sessions in an isolated context.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kiro_session_index-0.4.0.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kiro_session_index-0.4.0-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

Details for the file kiro_session_index-0.4.0.tar.gz.

File metadata

  • Download URL: kiro_session_index-0.4.0.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for kiro_session_index-0.4.0.tar.gz
Algorithm Hash digest
SHA256 481002ef15639a11934ccc049a2f7de9bf864e85eedfe5586115aaa89de043f8
MD5 0f29f888460f1057d3b9ae151fb4a964
BLAKE2b-256 3b4c47b3b2af1b92fbdb70e04e1d970ed30a6bfb8d9f921fa719d23ee90c9149

See more details on using hashes here.

File details

Details for the file kiro_session_index-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kiro_session_index-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 567d0e7c398c7f3b2688dc0e4c7a8eb2dc3a413a55bf8668e6d3104a57093283
MD5 11dd5fb1768ecf39e3a5bcdb396e132c
BLAKE2b-256 5bf49e8db294c1aafe30c1fbfd4c1084d731614e3e0749000b1809d112c8822c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page