Skip to content

gadflysu/aps

aps — Agent Pick Session

CI codecov Go Report Card Latest Release pkg.go.dev Go Version License: MIT

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.

Screenshots

Interactive mode — fuzzy search with three-pane preview

aps interactive mode

List mode — scriptable table output

aps list mode

Install

Homebrew (macOS / Linux):

brew install gadflysu/tap/aps

Go tools:

go install github.com/gadflysu/aps@latest   # latest release
go install github.com/gadflysu/aps@master   # build from master source

GitHub 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 .

Usage

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

Interactive mode keys

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

Dependencies

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)

Data Sources

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.

Contributing

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.

License

MIT © gadflysu

About

Interactive session picker for coding agents (Claude Code, OpenCode)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages