Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English · 繁體中文

wwi — "where was I?"

「我剛剛做到哪?」Claude Code Session 找回工具

A session browser for Claude Code. List, search, summarize, and resume sessions across every terminal window and project you've worked in.

$ wwi
  #  when          project              summary
  1  12 min ago    backup-kit           Wrote restore scripts for the B2 tier, tested
                                        against a scratch bucket. Left off: cron setup.
  2  2 hr ago      client-dashboard     Debugged SSR hydration mismatch on the metrics
                                        page — root cause was a Date() in render.
  3  yesterday     freelance-skills     Extracted the proposal iteration SOP into a
                                        skill. Done.

$ wwi resume 2      # reopens that session, in the right directory

The problem

Claude Code sessions are per-terminal and per-directory. Open five windows across three projects over a week and you lose track of which session had the thing you need. claude --resume gives you a picker, but only for the current directory, and it shows you UUIDs and timestamps — not what you were actually doing.

wwi indexes every session across every project and gives each one a one-line summary of what happened.

Install

Requires Python 3.9+ and an existing Claude Code install (it reads ~/.claude/projects/).

git clone https://github.com/noron12234/wwi.git ~/.claude/tools/wwi
echo "alias wwi='python3 ~/.claude/tools/wwi/wwi.py'" >> ~/.zshrc
source ~/.zshrc
wwi sync

Optional: summaries on every session start

wwi_hook.py is a SessionStart hook that prints your recent activity when you open a new session, so context arrives before you ask for it.

Add to ~/.claude/settings.json:

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup",
        "hooks": [
          { "type": "command", "command": "python3 ~/.claude/tools/wwi/wwi_hook.py" }
        ]
      }
    ]
  }
}

Commands

Command What it does
wwi Recent sessions, newest first (default 15)
wwi list -n 40 -p myproject Filter by count or project
wwi today Today's sessions, grouped by project
wwi show 3 Full detail for one session — messages, files touched, duration
wwi resume 3 claude --resume <id>, run from the correct working directory
wwi search "hydration" Grep across all your messages in every session
wwi projects Every project, with session counts
wwi summary 3 Generate an LLM summary for one session (cached)
wwi sync Rebuild the index
wwi auto Sync, then batch-summarize idle sessions
wwi status Auto-summary pipeline health (launchd + cache state)

Sessions can be addressed by list position (3) or by session UUID.

How it works

Claude Code writes each session as JSONL under ~/.claude/projects/<encoded-cwd>/<uuid>.jsonl. wwi:

  1. Indexes those files into index.json — timestamps, project, cwd, message counts, first user message
  2. Summarizes idle sessions by calling claude -p on the transcript, caching results under summaries/ so each session is summarized once
  3. Resumes by looking up the session's original cwd and running claude --resume <uuid> there — which is the part the built-in picker can't do across directories

Summaries only run against sessions that have been idle for a while, so it never fights with a session you're actively using.

Notes

  • The index is local-only. Nothing leaves your machine except summary generation, which goes through your existing Claude Code auth.
  • wwi auto is designed to run from launchd on a timer. wwi status tells you whether it is.
  • Deleting index.json is safe — wwi sync rebuilds it from the transcripts.

License

MIT — see LICENSE.

About

「我剛剛做到哪?」Claude Code session 找回工具 — 跨專案索引、自動摘要、在正確目錄下續接 · Browse, search, summarize and resume Claude Code sessions across every project

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages