mcpField
S
showagent

showagent

本地服务
github.comAI 与智能体635 天前更新

关于 showagent

showagent 是面向多种编码 Agent 用户的终端工具,可搜索本地会话记录,并将对话转换为其他受支持 Agent 的原生会话,写入前可先预览。

主要功能

  1. 01跨受支持的 Agent 搜索会话
  2. 02在原 CLI 中恢复会话
  3. 03将对话转换为原生会话
  4. 04预览转移范围及丢弃的状态
  5. 05导入分享链接和对话文本
  6. 06通过 MCP 提供历史搜索与交接

适用场景

  1. 01切换编码 Agent 后继续任务
  2. 02让另一 Agent 审查对话
  3. 03搜索并重新打开旧会话
  4. 04将网页分享对话导入编码 Agent

MCP 相关

`showagent mcp` 允许 MCP 客户端搜索和读取本地编码 Agent 历史记录,并请求交接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbshowagent_v0.14.1_linux_amd64.mcpb0.14.1
mcpbshowagent_v0.14.1_linux_arm64.mcpb0.14.1
mcpbshowagent_v0.14.1_darwin_amd64.mcpb0.14.1
mcpbshowagent_v0.14.1_darwin_arm64.mcpb0.14.1
mcpbshowagent_v0.14.1_windows_amd64.mcpb0.14.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

showagent

切换编码 Agent,带上对话。

Claude 配额用完了,修复任务才进行到一半?想让 Codex 检查 Gemini 制定的计划?
在 Antigravity 中开始,想在终端里完成?
showagent 会找到你机器上的所有编码 Agent 会话,并在另一个 Agent 中继续,
以该 Agent 原生会话的形式,只需按几下键。

CI Release Downloads Stars MIT

Claude Code · Codex · Gemini CLI · Antigravity 全新 · OpenCode · MiMoCode · Pi · jcode

使用示例会话和模拟 Agent 输出演示 showagent

curl -fsSL https://raw.githubusercontent.com/aytzey/showagent/main/scripts/install.sh | sh
# or: brew install aytzey/tap/showagent
showagent

此演示会在示例会话上运行真正的 showagent 二进制文件;目标 CLI 是带标签的桩程序。请参阅兼容性证据,了解已使用真实 Agent 进行测试的内容。

为什么选择 showagent

每个编码 Agent 都以自己的私有格式保存历史记录。切换 Agent 通常意味着从头开始,重新解释任务。showagent 会读取所有受支持的存储,将你的所有会话放在同一个选择器中,并在不同 Agent 之间转移对话,无需离开终端。

  • 在 Agent 之间转移对话。 八种 Agent,一个选择器。将会话从 Claude Code 交给 Codex,从 Codex 交给 Gemini CLI 再转回来,或将 Antigravity 对话带到其中任意一个 Agent。
  • 原生会话,而非复制粘贴。 目标 Agent 会在自己的存储中获得一个真实会话,因此 claude --resume、codex resume、gemini --resume 等命令都能像打开其他会话一样重新打开它。
  • 写入前先预览。 第一次按 x 会显示工作区、要转移的轮次数以及会丢弃的内容。只有第二次按 x 才会写入,而且不会修改原始会话。
  • 查找过去的任意会话。 按工作区分组,并在所有 Agent 中一次性模糊搜索 Agent、会话 ID、路径,以及首条/最新提示词。
  • 你的 Agent 也能使用它。 showagent mcp 可让 MCP 客户端搜索和读取其他 Agent 的历史记录,并请求交接。
  • 导入网页聊天。 将公开的 ChatGPT 或 Claude 分享链接、对话记录文件或粘贴的文本导入为原生编码 Agent 会话。
  • 仅在本地运行。 无托管服务、遥测或账户。请参阅隐私常见问题。
常见交接场景
你当前所在的位置你的需求按键
Claude Code,任务进行到一半时配额用完在 Codex 或 Gemini CLI 中继续按 o 选择目标,按 x x 转换,再按 enter 打开
Codex,遇到难以解决的错误请 Claude 或 Gemini 提供第二种意见同样按 o、x x、enter
Antigravity IDE在终端 Agent 中继续同一对话同样按 o、x x、enter
除 Antigravity 之外的任意 Agent创建干净分支,尝试另一种方向按 n
任意 Agent在创建该会话的 Agent 中重新打开上周的会话按 / 搜索,再按 enter(Antigravity IDE 对话只能交接)

快速开始

你需要一个现有的本地会话、目标 Agent 的 CLI(已加入 PATH),并且已完成常规登录。请保留原始工作区。

showagent
  1. 按 /,搜索工作区或会话中第一条或最新一条用户提示词里的短语。按 enter 结束搜索,然后选择要继续的会话。
  2. 按 o,直到目标为 claude(或其他已安装的 Agent)。
  3. 按 x,查看将被丢弃的工作区、消息范围和状态。再次按 x,写入并选择新会话。
  4. 按 enter,在目标 CLI 中打开新会话。

想使用命令?Codex → Claude 交接指南介绍了如何选择明确的会话 ID、预览、转换和恢复会话。它还说明了反向操作以及转换会保留的内容。

如果 showagent 帮你省去了一次重新解释,点个 ⭐ 可以帮助更多人发现它。

安装

在 Linux 或 macOS 上,安装最新的 GitHub 发行版。脚本会根据该发行版的 SHA256SUMS 校验归档,通常会安装到 ~/.local/bin:

curl -fsSL https://raw.githubusercontent.com/aytzey/showagent/main/scripts/install.sh | sh

如果该目录不在 PATH 中,可以直接运行 ~/.local/bin/showagent,也可以将该目录添加到 shell 的 PATH 中。

在 Windows 上,从最新发行版下载并解压 windows_amd64.zip 归档,然后在 PowerShell 中从解压目录运行 .\showagent.exe。Windows 支持为实验性;请参阅平台和原生恢复证据。

Homebrew 和 Go 安装仍可通过其他安装选项使用。 发行版详情说明了不同渠道之间的版本差异。

支持的 Agent

AgentCLI会话读取位置环境变量覆盖项转换来源转换目标
Codexcodex~/.codex/sessions/**/*.jsonlCODEX_HOME✅✅
Claude Codeclaude~/.claude/projects/**/*.jsonlCLAUDE_HOME✅✅
Gemini CLIgemini~/.gemini/tmp/<project>/chats/GEMINI_CLI_HOME✅✅
Antigravityagy~/.gemini/antigravity-cli/(CLI)、~/.gemini/antigravity-ide/(IDE)ANTIGRAVITY_HOME✅—
OpenCodeopencodeopencode.db,通过 opencode CLIOPENCODE_DATA_HOME✅✅
MiMoCodemimomimocode.db,通过 mimo CLIMIMOCODE_HOME✅✅
jcodejcode~/.jcode/sessions/*.jsonJCODE_HOME✅✅
Pipi~/.pi/agent/sessions/**/*.jsonlPI_CODING_AGENT_DIR、PI_CODING_AGENT_SESSION_DIR✅✅

说明:

  • 此表说明已实现的适配器,并不表示每个提供方的所有版本和转换方向都通过了真实 CLI 测试。请参阅兼容性记录。
  • Antigravity 有两种使用界面。来自 agy 终端 Agent 的对话会与其工作区一并列出,并可通过 agy --conversation <id> 重新打开。来自 Antigravity IDE 的对话会作为交接来源列出:可将其转换到任何其他受支持的 Agent。showagent 会读取 Antigravity 保存在每个对话旁边的纯文本记录,绝不会打开 Antigravity 的私有数据库。 目前还不能转换到 Antigravity:agy 无法在不进行模型轮次的情况下创建对话,而在该轮次中,如果交接的文本要求模型写入文件,模型就可能写入文件。待 agy 提供安全的导入方式后,showagent 将支持此转换方向。
  • OpenCode 和 MiMoCode 将会话存储在 SQLite 数据库中,因此所有操作(发现、导出、导入、删除)都通过它们各自的 CLI 执行;showagent 绝不会直接写入数据库。只有在安装了 CLI 的情况下,才会显示 OpenCode、MiMoCode 和 jcode。
  • 选择器只会提供其 CLI 已位于 PATH 中的交接目标。 对于基于文件的 Agent,即使尚未安装其 CLI,脚本化转换仍可预先准备会话;OpenCode 和 MiMoCode 则始终需要其 CLI,因为导入操作会通过 Agent 本身完成。
  • jcode 是一款小众的实验性 Agent CLI。其支持会自动隐藏:如果 PATH 中没有 jcode 二进制文件,showagent 就不会显示它。
  • Pi 会话是带版本的 JSONL 树。showagent 会沿着 parentId 链跟随 Pi 的活动叶节点,因此不会预览或移入其他 Agent 的废弃分支。转换后的会话采用 Pi 原生 v3 格式;兼容性记录会区分文件转换与原生加载器及模型续接检查。
  • 在项目目录中启动 showagent 时,可以看到该项目本地的 Pi sessionDir。与 Pi 本身一样,除非通过 PI_CODING_AGENT_SESSION_DIR 全局选定,否则 showagent 无法发现属于其他项目的任意自定义会话根目录。
  • 平台:Linux 和 macOS(amd64 + arm64)。Windows(amd64)版本也已发布,但仍属实验性:恢复会话时,Agent 将作为子进程运行,而不是替换 showagent。

其他安装选项

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

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

Homebrew、GitHub releases、Go 模块版本和 MCP bundles 的更新计划可能各不相同。Go 的 @latest 遵循模块版本解析规则,因此结果可能与 GitHub 的最新版本不同;安装后请检查 showagent --version 和 showagent --help。请参阅发行详情,了解各发行渠道的功能和更新说明。

发行页面也提供适用于 linux/darwin amd64 + arm64 和 windows amd64(实验性)的归档文件。

更多命令

showagent                  # open the interactive picker
showagent list             # plain table of every session
showagent list --json      # the same, machine-readable
showagent transcript latest --max-turns 50 --json
                           # bounded, secret-redacted context for local handoff
showagent resume latest    # reopen the most recent session, any agent
showagent convert SOURCE_SESSION_ID --to claude --dry-run
                           # preview exactly what a hand-off would carry/drop
showagent import --url CHAT_SHARE_URL --to codex --cwd ./my-project
                           # create a native coding-agent session from a public web chat
showagent import --file conversation.txt --into codex:EXACT_SESSION_ID
                           # add text to an existing Codex session's context
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

将 SOURCE_SESSION_ID 替换为你从 showagent list 中选定的 ID。 较旧版本(例如 v0.11.0)中没有 transcript 命令; 如果帮助输出与你看到的不同,请查看发行版详情。 有关支持的对话记录格式、安全边界,以及创建会话与向现有会话添加上下文之间的区别, 请参阅网页对话导入。

快捷键
按键操作
↑/k、↓/j、pgup/pgdn在会话间移动
/搜索 Agent、会话 ID、路径以及首条/最近一条用户提示词(每个词都必须匹配)
enter在所选会话自己的 CLI 中恢复该会话
1..9切换提供方的可见性,编号与标题栏中的列出顺序一致
p循环切换预览列:首条 → 最近一条 → 首条 + 最近一条消息
space折叠或展开所选工作区分组
o循环切换所选会话的转换目标
t循环切换转换范围:所有轮次,或最近的 200/100/50/20/10 轮
x预览转换;再次按 x 可写入并选中新会话
n分支:将可转移的对话复制到同一 Agent 的新会话中(Antigravity 不支持)
y切换提供方的 yolo 恢复模式(jcode/Pi 不会添加标志)
C组合:使用学习内容捕获提示词恢复会话(见下文)
i导入 ChatGPT/Claude 分享链接或粘贴的对话记录
d、del、backspace删除会话——再次按下确认,移动光标则会取消待确认状态
r重新扫描会话存储(保留光标、搜索和筛选条件)
?隐藏或显示按键框(在小终端上显示完整的快捷键覆盖层)
esc清除搜索 / 关闭覆盖层 / 取消待确认的删除(不会退出)
q、ctrl+c退出

脚本

showagent list --json 会输出按时间从新到旧排序的数组——字段名称 是稳定的契约:

[
  {
    "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] 无需选择器即可恢复会话,因此可以使用 shell 别名,一键重新打开上一个会话。

showagent transcript <id|latest> [--max-turns N] [--json] 会导出最近的 若干轮,供需要有界上下文交接的本地工具使用。输出始终会对机密信息进行脱敏、标记为不可信历史, 且最多包含 500 轮。

showagent convert <id|latest> --to <provider> --dry-run 会在写入任何内容之前打印交接信息: 源会话、目标提供方、工作区、范围、可转移轮数、最后一条用户请求,以及将被丢弃的 特定于 Agent 的状态。移除 --dry-run 可写入转换后的会话,随后 showagent 会打印新条目的恢复命令。

showagent import --url <public-share-url> --to <provider> --cwd <directory> 会根据 ChatGPT 或 Claude 网页分享创建新的原生会话。对于复制的对话记录,请使用 --file 或 --stdin,并通过 --dry-run 预览。现有的 Codex 会话支持 --into codex:<exact-id>;导入的消息会成为模型上下文, 但可能不会显示为常规聊天气泡。其他针对现有会话的目标仍处于禁用状态,直到其 CLI 提供安全的同 ID 追加契约。

showagent info <id|latest> [--yolo] 会打印会话的准确恢复命令、 工作目录和存储位置。

退出代码:0 表示成功,1 表示错误(包括“未找到会话”),2 表示用法错误。 当 stdout 不是终端时,直接运行 showagent 会打印 list 表格,因此管道可以直接使用。

在 Agent 内部使用(MCP)

showagent mcp 会运行一个 stdio MCP 服务,因此 MCP 客户端可以查找受支持的本地 Agent 会话,读取它们最近的对话轮次,并在另一个 Agent 中请求创建新的原生会话。例如,让它查找首条或最新提示词中提及速率限制的 Codex 会话,然后读取该会话以获取上下文。搜索匹配工作区以及首条/末条用户消息的文本;不会搜索对话中的每条消息。

该服务会返回一条供你执行的恢复命令。它不会自行启动交互式 Agent,也不会继续模型对话。

# Claude Code
claude mcp add showagent -- showagent mcp
# Codex (~/.codex/config.toml)
[mcp_servers.showagent]
command = "showagent"
args = ["mcp"]

MCP 客户端可以将返回的对话文本发送给其模型提供商。因此,默认情况下会对常见的类似机密的值进行隐藏,并将每份对话标记为不可信的历史数据,而非指令。如果需要原样保留这些值,用户必须显式使用 showagent mcp --allow-secrets 启动服务;MCP 工具调用无法绕过隐藏处理。对于绝不应写入会话副本的客户端,请注册 showagent mcp --read-only;该模式会完全移除 branch_session 和 convert_session。

工具:

工具功能
list_sessions查找受支持的本地会话——可按提供商、工作区子串或工作区与首条/末条用户消息中的自由文本进行筛选(默认 25 个,最多 100 个结果)
get_transcript读取最近的用户/助手对话轮次(默认 50 轮,硬性上限为 500 轮);除非服务以 --allow-secrets 显式启动,否则会隐藏机密
branch_session将可转移的对话复制到同一 Agent 中的新会话;返回新 ID、文件和恢复命令
convert_session将会话改写为另一个 Agent 的原生格式;返回新 ID、文件和恢复命令
resume_command恢复会话所需的准确 shell 命令(以及 cwd)——以字符串形式返回,绝不执行

默认 MCP 功能有意保持非破坏性:没有删除工具,也绝不会启动或恢复交互式 Agent。OpenCode 存储操作仍通过本地 opencode CLI 执行,因为其会话存储在 SQLite 中。删除会话仅可在 TUI 中进行,且需在人类监督下按两次按键。分支和转换操作只会添加新会话——绝不会修改原会话;而 --read-only 甚至会移除这些新增会话的工具。

对比

claude-squad 使用 tmux 和 git 工作树管理并行运行的 Agent。ccmanager 也会管理运行中的 Agent 会话和工作树,但无需 tmux。Agent Sessions 提供 macOS 图形界面,用于浏览 Agent 历史记录。hstry 提供共享历史数据库、搜索和原生格式转换功能。

showagent 专注于查找并继续你机器上已有的会话:它提供终端选择器,可读取现有存储、预览交接内容,并为另一个受支持的 Agent 写入新会话。它可以与用于运行实时任务的工具配合使用。请先阅读交接指南,并查看已测试的兼容范围,以确认是否适用于你的工作流。

复合工程

在会话上按 C 并选择一个 Agent。showagent 会在该位置恢复会话, 并启动复合工程流程:回顾已解决的问题,然后将可长期复用的经验记录为 Markdown。

经验按项目汇总,但由所有 Agent 共享:每个工作区都会在 ~/.showagent/learnings/<project>/ 下获得一个目录(可通过 SHOWAGENT_LEARNINGS_DIR 覆盖),所有 Agent 都会读取和写入该目录。选择未创建该会话的 Agent 时,会先转换可转移的用户和助手消息;不会复制提供方私有的工具和运行时状态。

showagent setup 会将配套的 复合工程插件 安装到机器上找到的 Codex、Claude Code 和 Pi CLI 中。对于 Pi,它还会 安装 pi-subagents 和 pi-ask-user 配套软件包。该命令可重复执行,且只会安装缺少的内容。

常见问题

我的会话数据会发送到其他地方吗? showagent 本身不会上传会话内容,也没有遥测功能或账户。MCP 客户端可能会将 get_transcript 的结果发送给该客户端的模型提供商,因此 MCP 转录内容默认会隐藏常见机密;注册服务前请牢记这一界限。Web 导入只会获取你明确提供的公开 ChatGPT 或 Claude 分享链接;不会使用浏览器 Cookie、私密聊天链接或任意主机。可选的版本更新器和启动时更新检查也会使用 HTTP(使用 SHOWAGENT_NO_UPDATE_CHECK=1 可禁用更新检查)。showagent setup 会调用已安装的 Codex/Claude/Pi CLI,这些 CLI 可能会下载请求的插件。渲染消息预览前也会隐藏类似密码的字符串和 API 密钥(相关测试见 internal/session/session_test.go)。发布压缩包附带 SHA256SUMS 文件,v0.7.0 之后的版本还附带 GitHub 构建来源证明——可使用 gh attestation verify <file> --repo aytzey/showagent 验证。

转换是如何进行的? 转换会从源转录中提取用户和助手的对话轮次,并以目标 Agent 的原生格式写入一个全新的会话(OpenCode 和 MiMoCode 使用各自的 import 命令),以便目标 Agent 自己的恢复命令能够找到它。代码块、换行和缩进都会保留,原始会话绝不会被修改。对于基于文件的目标,showagent 会自行写入新文件:权限为私有(0600),并以原子方式写入,因此即使发生崩溃,也不会在其他工具的存储中留下写入不完整的会话。

信任操作是明确的:在 TUI 中,第一次按 x 会显示交接预览,第二次按 x 才会写入。在脚本中,使用 showagent convert ... --dry-run 可查看相同的预览。转换会有意不复制工具调用内部数据、审批历史、加密推理数据块或提供商附件:这些内容仅属于源 Agent,而且无论如何都无法正确重放。分支操作使用相同的安全用户/助手对话轮次投影;它不会逐字节克隆提供商私有的运行时元数据。t / --scope 会在转换前将范围裁剪到最近的 N 个对话轮次。

删除操作具体会做什么? Codex 会通过 codex delete --force 删除会话;OpenCode 会通过 opencode session delete 删除(该操作会在其数据库中级联删除)。Claude Code 会删除 JSONL 文件及其对应的索引条目,jcode 会删除 JSON 文件及其备份/日志附属文件,Gemini 和 Pi 会删除其会话文件。showagent 不会删除 Antigravity 对话;请在 agy 自己的 /resume 选择器中删除,以保持其数据库一致。删除操作始终需要按两次,将光标移开则会取消确认状态。

Windows 呢? 已发布 Windows 二进制文件,但恢复会话时会启动子进程,而不是替换 showagent。Windows 仍属实验性支持;兼容性记录列出了实际运行过的检查。

列表中缺少某个会话。 如果未找到会话,运行 showagent list 会准确显示扫描了哪些目录,以及哪些环境变量覆盖了这些目录。开始新对话后,按 r 可在当前位置重新扫描。

添加提供商

提供商需要实现 internal/session/provider.go 中的接口,包括发现会话、恢复参数、转录提取和转换功能。可参考 gemini.go(基于文件的存储)、opencode.go(基于 CLI 的存储)和 antigravity.go(仅作为交接来源)。将其注册到 registry 切片后,TUI 会自动获取徽标、筛选键和转换目标。添加对应的环境变量覆盖项,以确保其测试彼此隔离。欢迎提交问题和 PR。

构建

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

最低支持的工具链为 Go 1.26.10(参见 go.mod);CI 还会运行竞态测试、golangci-lint、govulncheck 以及所有已发布的交叉编译目标。

演示动画使用 vhs、虚构的测试数据和模拟的 Agent 输出;它不是原生简历测试。录制和隔离说明见 demo/README.md。

安全问题和敏感数据泄露应私下报告;请参见 SECURITY.md。贡献相关事项见 CONTRIBUTING.md。

Star 历史

Star 历史图表

许可证

MIT。使用 Bubble Tea、 Bubbles 和 Lip Gloss 构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。