factory-ai/session-navigation
|
npx skills add https://github.com/Factory-AI/factory-plugins --skill session-navigation
Find your way around past Droid sessions. Maybe you want to pick up where you left off, find that thing you did last week, or just see what's been happening in a project.
Sessions are in ~/.factory/sessions/, organized by project folder. Each project gets its own directory with the path encoded (slashes become dashes):
~/.factory/sessions/
├── -Users-enoreyes-code-work-myapp/
│ ├── <uuid>.jsonl
│ └── <uuid>.settings.json
├── -Users-enoreyes-code-projects-api/
│ ├── <uuid>.jsonl
│ └── <uuid>.settings.json
└── ...
Two files per session:
The conversation (.jsonl): Each line is a JSON object. First line has metadata (session id, title, working directory). Rest is the back-and-forth: user messages, assistant responses, tool calls.
The settings (.settings.json): Stats about the session. Which model, how long it ran, token counts, autonomy mode.
# See all project folders with sessions
ls ~/.factory/sessions/
# Find folders for a specific project (partial match)
ls ~/.factory/sessions/ | grep "myapp"
# List sessions by date for a project
ls -lt ~/.factory/sessions/-Users-enoreyes-code-work-myapp/
# Get titles of recent sessions
for f in $(ls -t ~/.factory/sessions/-Users-enoreyes-code-work-myapp/*.jsonl | head -10); do
echo "=== $f ==="
head -1 "$f" | jq -r '.title // "Untitled"'
done
# Search across ALL sessions
rg "authentication" ~/.factory/sessions/
# Search within a specific project
rg "bug fix" ~/.factory/sessions/-Users-enoreyes-code-work-myapp/
# See matches in context
rg -C 2 "login" ~/.factory/sessions/-Users-enoreyes-code-projects-api/
# Which projects have sessions mentioning "redis"?
rg -l "redis" ~/.factory/sessions/ | cut -d'/' -f1-5 | sort -u
Once you've found a session file:
# The metadata (title, working directory)
head -1 ~/.factory/sessions/-Users-enoreyes-code-work-myapp/<uuid>.jsonl | jq .
# Session stats (model, tokens, duration)
cat ~/.factory/sessions/-Users-enoreyes-code-work-myapp/<uuid>.settings.json | jq .
# How long was this conversation?
wc -l ~/.factory/sessions/-Users-enoreyes-code-work-myapp/<uuid>.jsonl
User messages have "role": "user", assistant responses have "role": "assistant". Tool calls show what commands ran and what files got touched.
"What did I work on in this project?"
List that project's session folder, check dates, read through the conversation files.
"Find that session where we fixed the login bug"
Search for "login" or "auth" across sessions. Once you find it, read the conversation.
"Resume what I was doing"
Find the session, read through what happened, summarize the key decisions before continuing.
"How much have I been using Droid?"
The settings files have token counts and active time. Sum across sessions if needed.
Use rg (ripgrep) instead of grep. It's faster and handles nested folders better.
Project paths have slashes replaced with dashes. /Users/me/code/app becomes -Users-me-code-app.
The session title isn't always helpful. Sometimes you need to read the conversation to know what it was about.
Sessions can contain sensitive stuff. Be careful about what you surface.
Take factory-ai/session-navigation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.