by subinium
AI Agent Session Finder — TUI to find, resume and manage sessions across Claude Code, Codex, Gemini, Kiro, OpenCode, Cursor, pi
# Add to your Claude Code skills
git clone https://github.com/subinium/agfA fast TUI to find, resume, and manage your AI coding agent sessions. Supports Claude Code, Codex, OpenCode, pi, Kiro, Cursor CLI, and Gemini — all in one place.
Built with SuperLightTUI (SLT) — an immediate-mode terminal UI library for Rust.

# Homebrew (macOS/Linux)
brew install subinium/tap/agf
# Cargo (any platform)
cargo install agf
Then run agf setup and restart your shell. Type agf to launch.
agf resume project-name # fuzzy-matches and resumes the best match directly
If you use AI coding agents, you've probably done this:
cd into the wrong directoryagf fixes that. It scans all your agent sessions, shows them in a searchable list, and lets you resume with one keystroke.
Ctrl+D to multi-select and batch-delete sessionsagf resume <query> to skip the TUI and resume directly--worktree sessions; shows worktree name in the list and parent branch in the detail view| Key | Action |
|:---|:---|
| Type anything | Fuzzy search |
| ↑ ↓ / Ctrl+K Ctrl+J | Navigate |
| [ ] | Cycle session summary |
| Enter | Open action menu |
| → / Ctrl+L | Preview session details |
| Tab / Shift+Tab | Cycle agent filter |
| Ctrl+S | Cycle sort (time / name / agent) |
| Ctrl+D | Enter bulk delete mode |
| ? | Help / settings |
| Esc | Quit |
Ctrl+D)| Key | Action |
|:---|:---|
| Space | Toggle selection + move down |
| ↑ ↓ / Ctrl+K Ctrl+J | Navigate |
| Enter | Confirm deletion (when items selected) |
| Esc | Cancel and return to browse |
| Key | Action |
|:---|:---|
| 1-9 | Quick select agent |
| Tab | Open permission/approval mode picker |
| Enter | Launch with default mode |
| Esc | Back |
Optional. Create ~/.config/agf/config.toml:
sort_by = "time" # "time" | "name" | "agent"
max_sessions = 200
search_scope = "name_path" # "name_path" (default) | "all" (include summaries)
summary_search_count = 5 # number of summaries included when search_scope = "all"
You can also edit search_scope and summary_search_count interactively by pressing ? in the TUI.
| Agent | Resume Command | Data Source |
|:---|:---|:---|
| Claude Code | claude --resume <id> | ~/.claude/history.jsonl + ~/.claude/projects/ |
| Codex | codex resume <id> | ~/.codex/sessions/**/*.jsonl |
| OpenCode | opencode -s <id> | ~/.local/share/opencode/opencode.db |
| pi | pi --resume | ~/.pi/agent/sessions/<cwd>/*.jsonl |
| Kiro | kiro-cli chat --resume | ~/Library/Application Support/kiro-cli/data.sqlite3 |
| Cursor CLI | cursor-agent --resume <id> | ~/.cursor/projects/*/agent-transcripts/*.txt |
| Gemini | gemini --resume <id> | ~/.gemini/tmp/<project>/chats/session-*.json |
| Agent | Format | Default Path |
|:---|:---|:---|
| Claude Code | JSONL | ~/.claude/history.jsonl (sessions)~/.claude/projects/*/ (worktree detection) |
| Codex | JSONL | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl |
| OpenCode | SQLite | ~/.local/share/opencode/opencode.db |
| pi | JSONL | ~/.pi/agent/sessions/--<encoded-cwd>--/<ts>_<id>.jsonl |
| Kiro | SQLite | macOS: ~/Library/Application Support/kiro-cli/data.sqlite3Linux: ~/.local/share/kiro-cli/data.sqlite3 |
| Cursor CLI | SQLite + TXT | ~/.cursor/chats/*/<id>/store.db~/.cursor/projects/*/agent-transcripts/<id>.txt |
| Gemini | JSON | ~/.gemini/tmp/<project>/chats/session-<date>-<id>.json<project> is a named dir or SHA-256 hash of the project pathProject paths resolved via ~/.gemini/projects.json |
git clone https://github.com/subinium/agf.git
cd agf
cargo install --path .
agf setup
After upgrading, run agf setup again (or restart your shell) to apply the latest shell wrapper.
See CHANGELOG.md for full details.
claude, codex, opencode, pi, kiro-cli, cursor-agent, geminiIssues and PRs are welcome.
Amp is not yet supported. Amp stores sessions on a remote server, making it difficult to reliably resolve project paths from session metadata. We are monitoring upstream changes and will add support when feasible.
No comments yet. Be the first to share your thoughts!