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.
No comments yet. Be the first to share your thoughts!
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.