AI coding agents accumulate dozens of sessions across many projects. aps cuts through the noise: fuzzy-match by title, directory, or session ID, preview recent messages and the working tree side-by-side, then press Enter to resume exactly where you left off. Pure Go TUI — no daemon, no config.
Interactive mode — fuzzy search with three-pane preview
List mode — scriptable table output
Homebrew (macOS / Linux):
brew install gadflysu/tap/apsGo tools:
go install github.com/gadflysu/aps@latest # latest release
go install github.com/gadflysu/aps@master # build from master sourceGitHub Releases: download a pre-built binary from the Releases page.
Build from source:
git clone https://github.com/gadflysu/aps.git
cd aps
go install .aps # Interactive picker (Claude sessions, cwd filter)
aps -l . # List mode, filter by current directory
aps -l scripts # List mode, substring filter
aps -r -l foo # Recursive: looser substring match
aps -c # Claude Code only
aps -o # Opencode only
aps -a # Both clients combined
aps -n # No-launch: print target directory
aps -nv # No-launch verbose: print full launch command
aps -d # Danger mode (--dangerously-skip-permissions)
aps --claude-cmd ccaws # Override Claude Code binary (supports shell aliases)
aps --opencode-cmd oc # Override Opencode binary
aps --debug-log /tmp/aps.log # Write debug log to file| Key | Action |
|---|---|
| Type | Fuzzy filter by title, directory, ID, or time |
↑ / ↓ or k / j |
Move cursor |
Space |
Toggle three-pane preview |
Tab |
Cycle preview focus (RECENT MESSAGES ↔ DIRECTORY) |
j / k |
Scroll focused preview pane |
Enter |
Launch session |
Esc / q / Ctrl+C |
Quit |
| Package | Purpose |
|---|---|
| charmbracelet/bubbletea | TUI framework |
| charmbracelet/bubbles | Text input and scrollable viewport components |
| charm.land/lipgloss/v2 | Terminal styling |
| charmbracelet/x/term | TTY detection and terminal width query |
| fsnotify/fsnotify | Cross-platform filesystem event watcher |
| sahilm/fuzzy | Fuzzy matching |
| modernc.org/sqlite | Pure-Go SQLite driver (no cgo) |
| Agent | Location | Format |
|---|---|---|
| Claude Code | ~/.claude/projects/*/*.jsonl |
JSONL |
| Opencode | ~/.local/share/opencode/opencode.db |
SQLite |
Default agent is Claude Code. Use -o / -a to include Opencode.
Bug reports and pull requests are welcome. See CONTRIBUTING.md for the full workflow. Please open an issue first to discuss any significant change before submitting a PR.
MIT © gadflysu

