A 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.
brew install subinium/tap/agf
agf setupRestart your shell. Then just type agf.
agf resume project-name # fuzzy-matches and resumes the best match directlyIf you use AI coding agents, you've probably done this:
- Forget which project you were working on
cdinto the wrong directory- Try to remember the session ID
- Give up and start a new session
agf fixes that. It scans all your agent sessions, shows them in a searchable list, and lets you resume with one keystroke.
- Unified view — Claude Code, Codex, OpenCode, pi, Kiro, Cursor CLI, and Gemini sessions in one list
- Fuzzy search — find any session by project name or summary
- One-key resume — select a session and hit Enter
- Agent filter — Tab to cycle through agents
- Smart cd — jump to any project directory
- Bulk delete —
Ctrl+Dto multi-select and batch-delete sessions - New session — launch a new agent session with optional permission mode
- Quick resume —
agf resume <query>to skip the TUI and resume directly - Auto-detection — only shows agents installed on your system
- Git branch — shows the current branch of each project's working directory
- Worktree support — detects Claude Code
--worktreesessions; 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 |
| 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 |
From source
git clone https://github.com/subinium/agf.git
cd agf
cargo install --path .
agf setupv0.6 changes the shell integration method. After upgrading, run agf setup again (or restart your shell) to apply the new wrapper.
See CHANGELOG.md for full details.
- macOS or Linux
- One or more of:
claude,codex,opencode,pi,kiro-cli,cursor-agent,gemini
Issues 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.
