Skip to main content

find-my-session

CI PyPI Python 3.9–3.14 License: MIT

A local, read-only session finder and handoff tool for coding agents, shipped in two forms that share one fms_lib core:

  • find-my-session-skill — an agent skill (fms CLI) that finds the right session across harnesses and prints a low-token handoff digest instead of the whole transcript.
  • find-my-session-ui — a human-friendly browser panel for the same stores.

When a harness runs out of quota, you usually remember what you were doing but not where the session lives. fms answers that with one compact command.

fms search and fms show in a terminal

Counting and paging the human prompts of one session

The find-my-session browser panel reading a synthetic session store

Screenshots use synthetic fixture data.

中文说明

Supported harnesses

Sixteen adapters are ready; two more are planned. Verified versions, surfaces, and caveats live in the compatibility matrix; per-harness store details live in references/.

Harness Ref prefix Store
Qoder CN qoder-cn ~/.qoder-cn
Qoder (international) qoder ~/.qoder
Kimi Code kimi-code ~/.kimi-code
ZCode zcode ~/.zcode
CodeArts Agent codearts-agent ~/.codeartsdoer
ChatGPT Codex codex ~/.codex
DeepSeek Harness deepseek ~/.dsh
Claude Code claude-code ~/.claude
Cline cline ~/.cline
Grok Build grok-build ~/.grok
WorkBuddy AI workbuddy ~/.workbuddy-ai
WorkBuddy (domestic) workbuddy-cn ~/.workbuddy
Antigravity antigravity ~/.gemini/antigravity
Antigravity CLI antigravity-cli ~/.gemini/antigravity-cli
MiniMax Code minimax-code ~/.minimax/v2
Cursor cursor ~/.cursor/projects
CodeBuddy codebuddy (planned) ~/.codebuddy
Cline (VS Code extension) cline-vscode (planned) VS Code globalStorage

Requirements

  • Python 3.9 or newer; macOS or Linux. Python 3.9 is end-of-life upstream and 0.2 is planned to require 3.10+ (see ROADMAP.md).
  • No third-party Python packages
  • Compressed stores (codex .jsonl.zst, deepseek .zstd) need a zstd decoder: Python 3.14+ or the zstd CLI; otherwise those sessions are skipped
  • Windows is exercised by an experimental, non-blocking CI job but is not supported yet; see ROADMAP.md

Install

CLI and UI commands

pipx install find-my-session installs the fms and fms-ui commands from PyPI. To run an unreleased commit, install from Git instead: pipx install git+https://github.com/SomeNoneAI/find-my-session.git. Use pipx upgrade find-my-session to upgrade or pipx uninstall find-my-session to remove them. With uv, uvx --from find-my-session fms ... runs the PyPI release without a permanent install.

For agents: the skill

  1. Release ZIP. Each GitHub Release publishes find-my-session-skill.zip. Download it from the latest release, then install it into your harness (for example, upload it in Qoder Desktop under Extensions → Skills, or unzip it and link the directory into your harness's skills folder).

  2. Source checkout.

    git clone https://github.com/SomeNoneAI/find-my-session.git
    cd find-my-session
    qoderclicn skills link "$PWD/skills/find-my-session"   # Qoder CN CLI; Claude Code: symlink into ~/.claude/skills
    

    From a checkout you can also run the CLI directly as python3 skills/find-my-session/scripts/fms, or run python3 tools/build_artifacts.py to build dist/find-my-session-skill.zip yourself. To remove a linked skill, delete its symlink from the harness's skills folder.

For humans: the UI panel

  1. Release ZIP. Download find-my-session-ui.zip from the latest release, extract it, and run python3 fms-ui from the extracted directory (or ./fms-ui when your extractor preserves executable bits). Replace that directory to upgrade or delete it to uninstall.
  2. pipx. The same pipx install above provides the fms-ui command.
  3. Source checkout. Run fms_ui/fms-ui (use --no-browser --port 8765 to pick a port without opening a browser).

The panel starts a read-only server on 127.0.0.1 with keyword and metadata filters, session overviews, paged user prompts, recent turns, and copyable refs. The static frontend uses only same-origin JSON APIs — no Node.js, no external assets. Language follows the local system, with an explicit zh/en switch. The interface also follows the system light/dark preference, with a manual toggle and a non-black dark palette. The frontend is built with Vue 3 + TypeScript + Vite; Node.js is needed only when developing it from fms_ui/frontend/, never to run the panel.

Quick start

fms harnesses                                   # list ready and planned harnesses
fms search "quota handoff" --harness kimi-code  # find sessions by keywords
fms latest --harness kimi-code --cwd .          # most recent session in this repo
fms show kimi-code:e5f6a7b8                     # low-token handoff digest
fms prompts kimi-code:e5f6a7b8 --count          # count human prompts, then page with --limit/--offset

Search prefers an explicit --harness; omit the query to list recent sessions. Archived sessions are excluded from search/latest unless --include-archived is passed. show stays read-only and prints the raw source path so an agent can grep the original file when the digest is not enough.

Commands

Command Purpose
fms harnesses List ready and planned harnesses, variants, and stores.
fms search [query ...] Search session metadata by keywords; omit the query to list recent sessions.
fms latest Return the most recent matching session.
fms show <ref> Print a handoff digest for one session.
fms prompts <ref> List every human prompt in one session; count, page, and order them.
fms doctor [--harness] [--json] [--fingerprint] Check the local environment and stores (decoder availability, readable roots, per-harness health); --fingerprint adds a content-free shape summary for drift reports.

Useful options

Option Applies to Meaning
--harness NAME[,NAME] search, latest, show, prompts, doctor Restrict lookup to a harness. Recommended for speed and precision.
--cwd PATH search, latest Match a session whose working directory contains, or is contained by, PATH.
--since 7d / --since 2026-10-01 search, latest Filter by last update time.
--limit N search, latest, prompts Limit results or prompts; 0 means unlimited.
--offset N prompts Skip the first N prompts.
--order oldest/newest prompts Page order; original indices are preserved.
--count prompts Print only the total prompt count.
--deep search, latest Also scan full transcripts. Slower; still prints metadata only.
--include-archived search, latest Include archived sessions. Off by default.
--verbose search, latest Warn about skipped sessions on stderr without changing stdout.
--messages N / --chars N / --summary-chars N show Cap turns, per-message characters, and summary characters.
--json harnesses, search, latest, prompts, doctor Machine-readable output; use --format json for show. See docs/json-output.md for the field contract.

Session references use harness:session-prefix (for example kimi-code:e5f6a7b8); a raw transcript path from a supported store works too. Desktop/CLI surfaces that share one store share one ref space — see the compatibility matrix for which surfaces are verified.

Privacy and safety

  • Everything runs locally; the CLI makes no network requests.
  • The CLI only reads session files and databases, opening SQLite stores read-only; it never edits or deletes session content.
  • Search output is metadata-only; show and prompts can print conversation content, so treat their output like the original transcript.

Development and documentation

python3 -m unittest discover -s tests -v
python3 -m compileall -q core fms_ui skills/find-my-session/scripts tools tests
python3 tools/build_artifacts.py   # rebuild dist/find-my-session-skill(.zip) and dist/find-my-session-ui(.zip)

License

MIT. See LICENSE.

Metadata

Release files for find-my-session 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for find-my-session 0.1.1
File Size Uploaded Provenance Actions
find_my_session-0.1.1.tar.gz 207.0 kB With provenance Details for find_my_session-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for find-my-session 0.1.1
File Interpreter ABI Platform Actions
find_my_session-0.1.1-py3-none-any.whl Python 3 none any Details for find_my_session-0.1.1-py3-none-any.whl

Total release size: 378.8 kB

Release files / find_my_session-0.1.1.tar.gz

Download URL find_my_session-0.1.1.tar.gz
Size 207.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d8463c77abfde162ca5def03cf705165db051834cba8c10cbc7642578bcf03b3
BLAKE2b-256 checksum
How to use checksums
0d4ed045189ccaa76f71171d01c406716037692c0dfa5c34ae695a6e3b2cd8b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Release files / find_my_session-0.1.1-py3-none-any.whl

Download URL find_my_session-0.1.1-py3-none-any.whl
Size 171.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e2bf2a848ade773dc3a4713096f25eb1eb5b6094a69011f7852e69d5436f08a
BLAKE2b-256 checksum
How to use checksums
1ce6521277d50440e1c5027593862487df12febbe64c7fd099db16b529564b2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 3, 2026.

Transparency log

Security for find-my-session 0.1.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for find_my_session-0.1.1.tar.gz

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 Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page