kiro-cli-history
A terminal UI for fuzzy-searching, browsing, and resuming Kiro CLI conversations.
The problem
Kiro CLI has great built-in conversation persistence — it saves your sessions and lets you resume them with --resume and --resume-picker. However, these are scoped to the directory where the session was started. If you work across many projects and directories, finding a specific past conversation means remembering which folder you were in at the time.
kiro-cli-history complements Kiro CLI's native persistence by adding global fuzzy search across all sessions — regardless of which directory they were started in. It searches the full content of every message exchanged, not just session titles.
What it offers
- Global search — find conversations across all directories, not just the current one
- Full-text fuzzy search — searches every message you and Kiro exchanged, not just titles
- Conversation preview — read through the full exchange with markdown rendering before deciding to resume
- One-key resume — press
Ctrl+Rto jump into Kiro CLI and continue the conversation - Copy to clipboard — press
Ctrl+Yto copy an entire conversation - All session formats — reads all three Kiro CLI storage versions (v1 SQLite, v2 SQLite, v3 JSONL), covering both
--classicand new TUI modes
Read-only
This tool never writes to or modifies your Kiro CLI session data. It only reads from:
~/.kiro/sessions/cli/(JSONL sessions)- The Kiro CLI SQLite database (
data.sqlite3), opened in read-only mode — located at~/Library/Application Support/kiro-cli/on macOS,~/.local/share/kiro-cli/on Linux, or%APPDATA%\kiro-cli\on Windows
Install
Requires at least Python 3.10.
With pipx:
pipx install kiro-cli-history
With uv:
uv tool install kiro-cli-history
With pip:
pip3 install kiro-cli-history
Usage
kiro-cli-history
Run it from anywhere. It searches globally.
Keyboard shortcuts
| Key | Action |
|---|---|
/ |
Focus search bar |
j / k or arrows |
Navigate sessions |
Ctrl+R |
Resume the highlighted session in Kiro CLI |
Ctrl+Y |
Copy conversation to clipboard |
Ctrl+F |
Focus search bar |
Esc |
Clear search / Quit |
Ctrl+C |
Quit |
Searching
Type in the search bar to fuzzy-search across:
- Session titles
- Working directories
- Full conversation content (every message exchanged)
Search is case-insensitive and covers all session formats.
Text selection
Hold Option (Alt) while dragging to select text from the preview pane. Or press Ctrl+Y to copy the full conversation to clipboard.
Configuration
Settings are stored in a JSON file managed via the config subcommand — no need to edit it by hand.
kiro-cli-history config show # print all settings and the config file path
kiro-cli-history config get scroll_top
kiro-cli-history config set scroll_top true
Available settings:
| Key | Default | Description |
|---|---|---|
scroll_top |
false |
Show the start of a conversation in the preview pane instead of jumping to the most recent messages |
The config file lives at the platform's standard config location (e.g. ~/Library/Application Support/kiro-cli-history/config.json on macOS).
How it works
Kiro CLI stores conversations in three formats depending on the version and mode:
| Format | Location | Used by |
|---|---|---|
| v3 (JSONL) | ~/.kiro/sessions/cli/*.json + *.jsonl |
kiro-cli --classic |
| v2 (SQLite) | Platform data dir (~/Library/Application Support/kiro-cli/ on macOS, ~/.local/share/kiro-cli/ on Linux, %APPDATA%\kiro-cli\ on Windows), data.sqlite3 |
New TUI mode (kiro-cli) |
| v1 (SQLite) | Same database, conversations table |
Legacy |
kiro-cli-history reads all three and presents them in a unified view. Each session shows:
- Title — first message or auto-generated title
- Directory — where the session was started
- Date — last activity (e.g., "7 Apr 2026")
- Message count — total exchanges
- Duration — elapsed time
- Credit usage — total credits spent on the session (JSONL/v3 sessions only — older SQLite sessions don't record this)
How this complements Kiro CLI
Kiro CLI's native --resume and --resume-picker work well when you know which directory a session was started in. kiro-cli-history is a companion tool for when you need to find a conversation but don't remember where it happened — it gives you a global view with full-text search.
--resume-picker (native) |
kiro-cli-history |
|
|---|---|---|
| Scope | Current directory | All directories |
| Search | Browse by title | Full-text across all messages |
| Preview | Title + message count | Full conversation with markdown |
Platform
Session discovery and clipboard support now work across macOS, Linux, and Windows:
- Session storage — resolved via the same platform-specific data directory convention Kiro CLI itself uses (
~/Library/Application Support/,~/.local/share/, or%APPDATA%) - Clipboard — tries
pbcopy(macOS),clip(Windows), thenwl-copy,xclip, orxsel(Linux, Wayland/X11)
This has been tested on macOS. Linux and Windows support is implemented but not yet verified in practice — bug reports and PRs are welcome if something doesn't work as expected.
Contributing
Contributions are welcome! See CONTRIBUTING.md for the development setup and quality checks. Commits to the default branch follow Conventional Commits, and releases are automated with release-please — see CHANGELOG.md for the release history.
Credits
Inspired by raine/claude-history — an excellent fuzzy-search tool for Claude Code conversations. If you use Claude Code, check that out.
Forked from prabhu-g/kiro-cli-history — thanks to Prabhu for the initial implementation!
License
MIT
Metadata
Release files for kiro-cli-history 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kiro_cli_history-0.3.2.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kiro_cli_history-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.7 kB
Release files / kiro_cli_history-0.3.2.tar.gz
| Download URL | kiro_cli_history-0.3.2.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
69ef1b7cbb6198ffaa289152ecbcde2cc36fb9698e8de691406a33902e97dec0
|
|
BLAKE2b-256 checksum How to use checksums |
9e72df59ef73f0b524230382f957e7664a04efbadaefa663987db0e09033cf9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency logRelease files / kiro_cli_history-0.3.2-py3-none-any.whl
| Download URL | kiro_cli_history-0.3.2-py3-none-any.whl |
|---|---|
| Size | 19.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
944811644f990989eb364b13a441b896407684063df15c5d11723281d9fc713c
|
|
BLAKE2b-256 checksum How to use checksums |
904163ed5fedea65fe5902c2e20d54b057f630902ea1fbc9bf303e77116b3db0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.
Transparency log