showagent
showagent is a fast terminal picker for local Codex and Claude Code sessions.
It scans every workspace, shows both providers in one timeline, and resumes the
selected session with the right CLI command.
It is built as a portable Go TUI with:
- Bubble Tea v2 for the application loop and terminal renderer
- Bubbles v2 for the searchable session list
- Lip Gloss v2 for styling and layout
Features
- Unified session list for
codex and claude
- Provider column:
codex or claude
- Sorted by latest conversation time
- Search across provider, directory, session id, and user messages
- Preview modes for first user message, latest user message, or both
- Toggleable yolo resume mode for approval-free continuation
- Selectable cross-agent transfer scope: all history by default, or latest N turns
- One-key resume, branch, cross-agent conversion, and delete:
- Codex:
codex resume <session-id>
- Codex yolo:
codex resume --dangerously-bypass-approvals-and-sandbox <session-id>
- Codex branch:
codex fork <session-id>
- Codex delete:
codex delete --force <session-id>
- Claude Code:
claude --resume <session-id>
- Claude Code yolo:
claude --dangerously-skip-permissions --resume <session-id>
- Claude Code branch:
claude --fork-session --resume <session-id>
- Claude Code delete: removes the selected local session JSONL file
- Cross-agent conversion writes a new target-provider session file, then resumes it
- No runtime dependencies beyond the compiled binary
- Works well on Ubuntu, Debian, Fedora, Arch, and other Linux distributions
Install
With Go 1.25 or newer:
go install github.com/aytzey/showagent/cmd/showagent@latest
Or download a Linux binary from the GitHub releases page and put it somewhere
on your PATH, for example ~/.local/bin.
Usage
showagent
showagent intentionally takes no arguments. Everything is selected inside the
CLI.
Keybindings:
| Key |
Action |
↑/↓, j/k |
Move through sessions |
/ |
Search |
c |
Toggle Codex sessions |
d |
Toggle Claude Code sessions |
y |
Toggle yolo/dangerous resume mode |
t |
Cycle cross-agent transfer scope: all, latest 200, 100, 50, 20, or 10 turns |
f |
Show first user message |
l |
Show latest user message |
b |
Show first + latest user messages |
enter |
Resume selected session |
x |
Convert selected session to the other agent, then resume the converted session |
n |
Create a branch/fork of the selected session |
delete, backspace, D |
Delete selected session after second press confirmation |
q, esc, ctrl+c |
Quit |
When output is piped, showagent prints a plain table instead of opening the
TUI.
Cross-agent conversion preserves the selected user/assistant transcript as a new
local session in the other provider's JSONL format, then calls that provider's
normal resume command. It intentionally does not copy private runtime state such
as tool-call internals, approval history, encrypted reasoning blobs, or provider
attachments. The default scope is the full transcript.
Session Locations
By default, showagent reads:
- Codex:
~/.codex/sessions/**/*.jsonl
- Claude Code:
~/.claude/projects/**/*.jsonl
Environment overrides:
Claude subagent transcripts under subagents/ are ignored so the list stays
focused on top-level conversations.
Build From Source
git clone https://github.com/aytzey/showagent.git
cd showagent
go test ./...
go build -o showagent ./cmd/showagent
For a portable Linux binary:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o showagent-linux-amd64 ./cmd/showagent
Privacy
showagent only reads local JSONL history files. It does not upload session
data anywhere.
Message previews apply basic redaction for password-like words and OpenAI-style
API keys before rendering them.
License
MIT