claudeers.
// MCP Servers

showagent

Every AI coding session on your machine, in one TUI: browse, search, resume, branch — and convert conversations between Codex, Claude Code and more.

Install with your AI

Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.

Install and set up showagent (release-binary project) into my current project.
Found on https://claudeers.com/showagent
Repo: https://github.com/aytzey/showagent
Homepage/docs: —
Detected install method: release-binary → inspect the README
Category: mcp-servers. Platforms: cli, api.
Read the repo's README for exact setup and env vars, then install it and wire it into my project.

Claudeers Health Verdict:
unknown; community-verified: false. Confirm the source before running anything.
// or install directly (release-binary)

Grab the latest release asset from GitHub.

# download a build from https://github.com/aytzey/showagent/releases
// or clone
git clone https://github.com/aytzey/showagent

showagent

showagent — every AI coding session on your machine, in one TUI.
Browse, search, resume, branch — and convert a conversation from one agent to another.
Codex · Claude Code · Gemini CLI · OpenCode · jcode

showagent demo

Started debugging in Codex and want Claude's take? Press x. Your conversation moves with you — every user and assistant turn, rewritten in the target agent's native session format.

Why

You use more than one coding agent now — most of us do. But every agent buries its sessions in its own format under its own dot-directory, and yesterday's context is trapped in whichever tool you happened to start it in. showagent reads the session stores straight off disk and gives you one searchable picker for all of them. It is the only TUI that combines browse + search + resume + branch + convert across agents.

  • One list for everything — sessions from every agent, grouped by workspace, fuzzy-searchable, newest first.
  • Resume or branch anywhere — reopen a session in its own CLI, or fork a local copy to try a different direction.
  • Convert between agents — rewrite a session into another agent's native format so that agent's own resume just works. Originals are never modified; conversions are written atomically.
  • 100% local — one static binary that reads your own files. No hosted service, no telemetry, no account.

Supported agents

AgentCLISessions read fromEnv overrideConvert fromConvert to
Codexcodex~/.codex/sessions/**/*.jsonlCODEX_HOME
Claude Codeclaude~/.claude/projects/**/*.jsonlCLAUDE_HOME
Gemini CLIgemini~/.gemini/tmp/<project>/chats/GEMINI_CLI_HOME
OpenCodeopencodeopencode.db, via the opencode CLIOPENCODE_DATA_HOME
jcodejcode~/.jcode/sessions/*.jsonJCODE_HOME

Notes:

  • OpenCode stores sessions in a SQLite database, so every OpenCode operation (discover, export, import, delete) goes through your own opencode CLI — showagent never writes into the database directly. OpenCode and jcode only appear when their CLI is installed.
  • The picker only offers hand-off targets whose CLI is on PATH, so it never strands a conversion. Scripted conversion to file-backed agents can still prepare a session before their CLI is installed; OpenCode always requires its CLI because imports go through OpenCode itself.
  • jcode is a niche, experimental agent CLI. Its support is auto-hidden: if no jcode binary is on PATH, showagent never shows it.
  • Platforms: Linux and macOS (amd64 + arm64). Windows (amd64) builds are released but experimental: resume runs the agent as a child process instead of replacing showagent.

Install

# Homebrew (Linux/macOS)
brew install aytzey/tap/showagent

# install script (Linux/macOS, puts the binary in ~/.local/bin)
curl -fsSL https://raw.githubusercontent.com/aytzey/showagent/main/scripts/install.sh | sh

# Go 1.25.12+
go install github.com/aytzey/showagent/cmd/showagent@latest

Or grab an archive from the releases pagelinux/darwin amd64 + arm64, windows amd64 (experimental).

Quick start

showagent                  # open the interactive picker
showagent list             # plain table of every session
showagent list --json      # the same, machine-readable
showagent resume latest    # reopen the most recent session, any agent
showagent convert latest --to claude --dry-run
                           # preview exactly what a hand-off would carry/drop
showagent info latest      # exact resume command + storage location
showagent mcp              # serve session history to MCP-capable agents (stdio)
showagent mcp --read-only  # same search/transcript tools, without tools that write copies
showagent mcp --allow-secrets
                           # explicitly allow verbatim secret-like transcript values
showagent update           # update a standalone install (Homebrew: brew upgrade aytzey/tap/showagent)
showagent --help           # full CLI help

Keybindings

KeyAction
↑/k, ↓/j, pgup/pgdnMove through sessions
/Fuzzy search across agent, workspace, session id, and messages
enterResume the selected session in its own CLI
1..9Toggle provider visibility, numbered as listed in the header bar
pCycle the preview column: first → latest → first + latest message
spaceCollapse or expand the selected workspace group
oCycle the convert target for the selected session
tCycle the convert scope: all turns, or latest 200/100/50/20/10
xPreview convert; press x again to write and select the new session
nBranch: create a full local copy of the session
yToggle yolo resume (skip the agent's permission prompts)
CCompound: resume with a learnings-capture prompt (see below)
d, del, backspaceDelete the session — second press confirms, moving disarms
rRescan session stores (keeps cursor, search, and filters)
?Toggle the full keybinding overlay
escClear search / close overlay / cancel an armed delete (never quits)
q, ctrl+cQuit

Scripting

showagent list --json emits an array sorted newest-first — the field names are a stable contract:

[
  {
    "id": "1f7c9a2e-4b31-4c8e-9d02-8a5e3f6b1c44",
    "provider": "codex",
    "workspace": "/home/you/code/api-server",
    "updated": "2026-07-08T19:51:25Z",
    "first_message": "Add rate limiting to POST /v1/charges",
    "last_message": "the redis TTL test is flaky - mock the clock"
  }
]

showagent resume <id|latest> [--yolo] resumes without the picker, so a shell alias can reopen your last session in one keystroke.

showagent convert <id|latest> --to <provider> --dry-run prints the hand-off before writing anything: source session, target provider, workspace, scope, transferable turn count, last user ask, and the agent-specific state that will be dropped. Remove --dry-run to write the converted session, then showagent prints the resume recipe for the new row.

showagent info <id|latest> [--yolo] prints the exact resume command, working directory, and storage location for a session.

Exit codes: 0 success, 1 error (including "no sessions found"), 2 usage. When stdout is not a terminal, plain showagent prints the list table, so pipes just work.

Use it from inside your agent (MCP)

showagent mcp runs a stdio MCP server, so the agent you are talking to can search every past coding session on your machine — from any agent — and pull one in as context or convert it to continue right there. Ask Claude Code "have I solved this rate-limit bug before?" and it can find the Codex session where you did, read the transcript, and hand you the command to resume it — or rewrite it as a native Claude Code session and keep going. Your session history stops being per-tool memory and becomes shared memory.

# Claude Code
claude mcp add showagent -- showagent mcp

# Codex (~/.codex/config.toml)
[mcp_servers.showagent]
command = "showagent"
args = ["mcp"]

An MCP client can send returned transcript text to its model provider. Common secret-like values are therefore redacted by default, and every transcript is marked as untrusted historical data rather than instructions. If verbatim values are required, the user must explicitly start the server as showagent mcp --allow-secrets; an MCP tool call cannot bypass redaction. For clients that should never write session copies, register showagent mcp --read-only; that mode omits branch_session and convert_session entirely.

Tools:

ToolWhat it does
list_sessionsSearch sessions across all agents — filter by provider, workspace substring, or free text over workspace + first/last user message (default 25, max 100 results)
get_transcriptRead recent user/assistant turns (default 50, hard max 500); secrets are redacted unless the server was explicitly started with --allow-secrets
branch_sessionFork a full local copy of a session, same agent; returns the new id, file, and resume command
convert_sessionRewrite a session into another agent's native format; returns the new id, file, and resume command
resume_commandThe exact shell command (and cwd) that resumes a session — returned as a string, never executed

The default MCP surface is deliberately non-destructive: there is no delete tool, and it never launches or resumes an interactive agent. OpenCode storage operations still go through the local opencode CLI because its sessions live in SQLite. Deleting sessions stays exclusive to the TUI, where it takes two key presses with a human watching. Branch and convert only add new sessions — originals are never modified — and --read-only removes even those additive tools.

How it compares

Great tools exist for running agents in parallel — showagent is about the sessions they leave behind. claude-squad and ccmanager orchestrate multiple live agents in tmux sessions and git worktrees, which is the right choice when you want several agents working at once. Agent Sessions is a polished macOS app for browsing session history across many agents. showagent is the history-first, terminal-first take: a single cross-platform binary that reads the session stores on disk, resumes and branches from them — and is the only one of the group that converts a session from one agent's format to another's.

Compound engineering

Press C on a session and pick an agent. showagent resumes the session there and starts it on a compound-engineering pass: review what was solved, then record the durable learnings as markdown.

Learnings are pooled per project but shared across agents: each workspace gets a directory under ~/.showagent/learnings/<project>/ (override with SHOWAGENT_LEARNINGS_DIR) that every agent reads and writes. Picking an agent that did not create the session converts it first, so it has full context.

showagent setup installs the companion compound-engineering plugin into the Codex and Claude Code CLIs found on the machine. It is idempotent and only installs what is missing.

FAQ

Is my session data sent anywhere? showagent itself does not upload session content and has no telemetry or account. An MCP client may send get_transcript results to that client's model provider, so MCP transcripts redact common secrets by default; keep that boundary in mind before registering the server. showagent's own HTTP client is used only by the optional release updater and startup update check (disable with SHOWAGENT_NO_UPDATE_CHECK=1). showagent setup invokes the installed Codex/Claude CLIs, which may download the requested plugin. Message previews also redact password-like strings and API keys before rendering (covered by tests in internal/session/session_test.go). Release archives ship with a SHA256SUMS file, and releases after v0.7.0 also carry GitHub build provenance — verify with gh attestation verify <file> --repo aytzey/showagent.

How does conversion work? Conversion extracts the user and assistant turns from the source transcript and writes a brand-new session in the target agent's native format (for OpenCode, via opencode import), so the target's own resume command picks it up. Code blocks, newlines, and indentation are preserved. The original session is never modified, and files are private (0600) and written atomically — a crash cannot leave a half-written session in another tool's store.

Trust is explicit: in the TUI, the first x shows the hand-off preview and the second x writes it. In scripts, use showagent convert ... --dry-run for the same preview. Conversion intentionally does not copy tool-call internals, approval history, encrypted reasoning blobs, or provider attachments: those are private to the source agent and would not replay correctly anyway. t / --scope trims the scope to the latest N turns before converting.

What does delete actually do? Codex sessions are deleted through codex delete --force; OpenCode through opencode session delete (which cascades inside its database). Claude Code removes the JSONL plus its matching index entry, jcode removes the JSON plus backup/journal sidecars, and Gemini removes its session file. Delete always takes two presses, and moving the cursor disarms it.

Windows? Binaries are released and the whole TUI works, but resume semantics are approximated (child process instead of exec), so Windows is labeled experimental until it has seen real use.

A session is missing from the list. Run showagent list with no sessions found and it prints exactly which directories were scanned and which env vars override them. r rescans in-place after you start a new conversation.

Adding a provider

A provider is one self-contained file implementing the 8-method interface in internal/session/provider.go — around 250 lines including discovery, resume arguments, transcript extraction, and conversion. gemini.go (file-based store) and opencode.go (CLI-based store) are the two templates. Register it in the registry slice and the TUI picks up badges, filter keys, and convert targets automatically. Add a matching env override so its tests stay hermetic. Issues and PRs welcome.

Building

git clone https://github.com/aytzey/showagent.git
cd showagent
go test ./...
go build -o showagent ./cmd/showagent

The minimum supported toolchain is Go 1.25.12; CI also runs race tests, golangci-lint, govulncheck, and every published cross-compile target.

The demo GIF is recorded hermetically with vhs against fabricated fixtures — see demo/README.md.

Security issues and sensitive-data exposure should be reported privately; see SECURITY.md. Contributions are covered by CONTRIBUTING.md.

License

MIT. Built with Bubble Tea, Bubbles, and Lip Gloss.

// compatibility

Platformscli, api
Operating systems
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguageGo

// faq

What is showagent?

Every AI coding session on your machine, in one TUI: browse, search, resume, branch — and convert conversations between Codex, Claude Code and more.. It is open-source on GitHub.

Is showagent free to use?

showagent is open-source under the MIT license, so it is free to use.

What category does showagent belong to?

showagent is listed under mcp-servers in the Claudeers registry of Claude-compatible tools.

0 views
25 stars
unclaimed
updated 1 day ago

// embed badge

showagent on Claudeers
[![Claudeers](https://claudeers.com/api/badge/showagent.svg)](https://claudeers.com/showagent)

// retro hit counter

showagent hit counter
[![Hits](https://claudeers.com/api/counter/showagent.svg)](https://claudeers.com/showagent)

// reviews

// guestbook

0/500

// related in MCP Servers

🔓

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete…

// mcp-serversf/HTML165,176NOASSERTION[ claude ]
🔓

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Gemini CLI & Hermes Agent. Only official website: ccswitch.io

// mcp-serversfarion1231/Rust115,280MIT[ claude ]
🔓

An open-source AI agent that brings the power of Gemini directly into your terminal.

// mcp-serversgoogle-gemini/TypeScript105,871Apache-2.0[ claude ]
🔓

A collection of MCP servers.

// mcp-serverspunkpeye/90,536MIT[ claude ]
→ see how showagent connects across the ecosystem