showagent
- title
- showagent
- type
- toolbox
- summary
- TUI со списком сессий кодинг-агентов из всех CLI с возобновлением, ветвлением и конвертацией между агентами
- tags
- golang, tui, coding-agents, session-tooling, watchlist
- language
- Golang
- license
- MIT
- created
- 2026-07-18
- updated
- 2026-09-13
- lang
- ru
- translation_of
- showagent
- source_updated
- 2026-09-13
- translated
- 2026-09-14
- translator
- lllm/antigravity/gemini-3.7-flash-medium
showagent - это TUI на Golang, который собирает разбросанные по машине сессии кодинг-агентов в единый интерфейс выбора. Каждый агент - Codex, Claude Code, Gemini CLI, OpenCode, jcode, Pi - записывает сессии в собственном формате внутри своей dot-директории, поэтому вчерашний контекст остаётся заперт в том инструменте, где его запустили. showagent считывает эти хранилища напрямую с диска и выдаёт единый список, сгруппированный по workspace'ам и отсортированный от новых к старым. По нему можно искать нечётким поиском (fuzzy-search), возобновлять сессии в нативном CLI, ветвить в локальную копию или конвертировать в формат другого агента. Утилита полностью локальна: один статический бинарник читает ваши файлы, без внешних сервисов, телеметрии и учётных записей.
Главная возможность - конвертация между агентами. Можно начать отладку в Codex, нажать x, и диалог перепишется в нативный формат сессий Claude Code, так что штатное возобновление в claude просто сработает. Как и agentsview, он объединяет историю разных агентов, но если agentsview представляет собой read-only браузер под macOS, то showagent ориентирован на терминал и добавляет возобновление, ветвление и конвертацию. Он входит в тот же кластер инструментов для сессий, что и mclaude (браузер сессий Claude Code), re_gent (воспроизведение и анализ сессий) и mindwalk. agent-manager контролирует работающие сессии, тогда как showagent работает с завершёнными.
Как это устроено
Каждый поддерживаемый агент оформлен как отдельный файл провайдера, реализующий интерфейс из восьми методов (internal/session/provider.go), охватывающих обнаружение, аргументы возобновления, извлечение стенограммы и конвертацию - примерно по 250 строк на каждый. Провайдеры регистрируются в срезе registry, а TUI автоматически подхватывает бейджи, клавиши фильтрации и цели для конвертации. Существует два шаблона: файловое хранилище (gemini.go) и хранилище на базе CLI (opencode.go).
Хранение различается в зависимости от агента. Codex, Claude Code, jcode и Pi хранят файлы JSONL или JSON в своих dot-директориях; showagent читает их напрямую. OpenCode держит сессии в базе данных SQLite, поэтому любые операции с OpenCode (обнаружение, экспорт, импорт, удаление) идут через установленный CLI opencode - напрямую в базу showagent никогда не пишет. Агенты, чей CLI отсутствует в PATH, автоматически скрываются (jcode, OpenCode), а меню выбора для конвертации предлагает только те целевые инструменты, чьи CLI установлены, так что конвертация никогда не зайдёт в тупик. Сессии Pi представляют собой версионированные деревья JSONL; showagent идёт к активному листу Pi по ссылкам parentId и игнорирует заброшенные ветки.
Конвертация извлекает реплики пользователя и ассистента и записывает совершенно новую сессию в целевом формате, сохраняя блоки кода, переводы строк и отступы. Внутренности вызовов инструментов, историю подтверждений, зашифрованные блоки рассуждений (reasoning blobs) и вложения провайдеров она намеренно не копирует - всё это относится к внутренней кухне исходного агента и в любом случае не воспроизведётся корректно. Исходные файлы никогда не изменяются; новые файлы записываются атомарно с правами доступа 0600, поэтому сбой не оставит полузаписанную сессию в хранилище другого инструмента. Доверие явное: первое нажатие x показывает предпросмотр передачи контекста, второе выполняет запись (флаг --dry-run даёт такой же предпросмотр в скриптах).
Подкоманда mcp запускает stdio MCP-сервер, который открывает доступ к истории сессий тому агенту, с которым вы ведёте диалог: list_sessions, get_transcript, branch_session, convert_session, resume_command. Спросите у Claude Code, не решали ли вы эту ошибку раньше, и он сможет найти нужную сессию Codex и вернуть команду для её возобновления. Текст стенограммы помечается как ненадёжный (untrusted), а похожие на секреты значения маскируются, если сервер не запущен с флагом --allow-secrets; флаг --read-only отключает два модифицирующих инструмента (branch/convert). Инструмента для удаления через MCP нет вовсе - удаление доступно только в TUI с подтверждением двойным нажатием.
Установка
# Homebrew (Linux/macOS)
brew install aytzey/tap/showagent
# Go 1.25.12+
go install github.com/aytzey/showagent/cmd/showagent@latest
# install script (Linux/macOS, binary to ~/.local/bin)
curl -fsSL https://raw.githubusercontent.com/aytzey/showagent/main/scripts/install.sh | sh
Готовые архивы доступны на странице релизов для linux/darwin amd64+arm64 и windows amd64.
Использование
showagent # interactive picker
showagent list --json # every session, machine-readable, newest-first
showagent resume latest # reopen the most recent session, any agent
showagent convert latest --to claude --dry-run # preview a hand-off before writing
showagent info latest # exact resume command + storage location
showagent mcp # serve session history over stdio MCP
В меню выбора / выполняет нечёткий поиск по агенту, workspace, идентификатору сессии и сообщениям; enter возобновляет сессию; x сначала показывает предпросмотр, а затем выполняет конвертацию; n делает полную локальную ветку-копию; 1..9 переключают видимость провайдеров. showagent list --json выдаёт стабильный контракт полей (id, provider, workspace, updated, first_message, last_message), а когда stdout не является терминалом, обычный вызов showagent печатает таблицу со списком, благодаря чему работают конвейеры (pipes).
Ограничения
Проект одного автора на ранней стадии (34 звезды на момент написания), поэтому он находится в watchlist в ожидании роста популярности и темпа релизов. Поддерживаемыми платформами являются Linux и macOS; сборки под Windows выпускаются, но считаются экспериментальными: возобновление запускает агента как дочерний процесс вместо замены процесса showagent (нет exec), так что его семантика воспроизводится лишь приблизительно. OpenCode и jcode отображаются только при наличии их CLI, причём OpenCode всегда требует свой CLI, поскольку импорт выполняется через него. Конвертация переносит только реплики пользователя и ассистента, без внутреннего состояния рантайма агента, что является правильным компромиссом, но означает, что сконвертированная сессия не будет побайтовым клоном оригинала.
Репозиторий: https://github.com/aytzey/showagent - 34 звезды, лицензия MIT.