关于 ebman
ebman 是面向 AWS Elastic Beanstalk 运维人员的键盘驱动终端界面,整合环境排查、操作和审计及安全控制,并提供 MCP 服务供客户端查询环境及请求经确认的写入操作。
主要功能
- 01实时环境列表与深入查看
- 02健康排查、事件和日志检查
- 03部署、配置、队列与实例操作
- 04多账户和多区域查询
- 05安全控制与操作审计日志
适用场景
- 01排查不健康的 Elastic Beanstalk 环境
- 02比较环境设置和部署版本
- 03管理 Worker 队列与部署
- 04让 MCP 客户端查看环境并请求受控操作
MCP 相关
`ebman mcp serve` 将环境数据和诊断信息作为 MCP 工具提供。写入操作可采用先生成计划、再确认的两阶段流程;`--allow-writes` 可启用部分或全部写入,`--read-only` 则会禁用写入。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ebman
一款 k9s 风格的 AWS Elastic Beanstalk TUI。 排查异常环境、流式查看日志、编辑选项设置、部署新版本——一切只需键盘操作。如果你用过 k9s 管理 Kubernetes,就能沿用熟悉的操作习惯:用 : 输入命令,用 / 筛选,用 Enter 深入查看,用 ? 获取上下文相关帮助。
安装 · 快速入门 · 排查工作流 · 亮点 · 为什么选择 ebman? · 文档

使用随二进制文件提供的合成舰队模式
ebman --demo录制。代码变更后,可运行vhs demo.tape重新生成 gif。
安装
Homebrew(macOS / Linux):
brew install tombaldwin/tap/ebman
Cargo:
cargo install ebman
预编译二进制文件: 从 GitHub Releases 页面下载适用于你平台的 tarball,验证旁边的 *.sha256,解压后将 ebman 放入 PATH。
已在 Rust 1.94.1+ 上测试(AWS SDK 的最低版本要求)。支持 macOS(Apple Silicon + Intel)和 Linux x86_64。AWS SDK 使用标准凭证链(AWS_PROFILE / AWS_REGION 环境变量、~/.aws/credentials、实例角色等)。
如需更美观的字形集(Powerline 药丸链、Nerd Font 标签页图标),请参阅 docs/fonts.md。默认的 icons = "unicode" 在任何终端中都能正常使用。
快速入门
ebman # launch the TUI
ebman --read-only # disable all write surfaces (audit-friendly)
ebman --demo # synthetic fleet (no AWS calls) — for screenshots / VHS
ebman --version
ebman --help
启动后,按 ? 查看各上下文对应的按键映射(Detail、DLQ、Action menu 和 Saved-configs overlay 均有各自的帮助信息)。
排查工作流
凌晨 3 点,生产环境变红了。在终端中:
ebman— 启动;prod-api在表格中显示为红色/prod-api↵— 跳转到该环境!— 打开:why:在同一个覆盖层中查看近期事件 / 警报 / 实例健康状态 / 最近部署:diff prod-api staging-api— 确认 staging 仍在运行之前的版本:rollback— 重新部署最后一个已知正常的版本标签,并提供 5 秒撤销窗口- 操作和结果会记录到
~/.cache/ebman/audit.log
五次按键即可完成排查,一条命令即可修复。作为替代方案,AWS 控制台至少需要加载五个页面、打开两个标签页,而且完全没有审计记录。
专为每天排查 EB 环境、不想在 AWS 控制台之间来回切换的运维人员打造——也省去每次环境变红时都要运行 eb deploy ; aws elasticbeanstalk describe-events --max-items 50 | jq ... 这样的 Shell 管道命令。
亮点
- 实时环境表格,支持排序、筛选、按应用分组、健康状态迷你图、严重程度色调和鼠标操作。
- 按环境深入查看——提供 Health / Events / Instances / Metrics / Queue / Logs / Config / App 标签页。
- 自定义指标——App 标签页显示环境的 CloudWatch 指标、RDS / ElastiCache 行,以及
config.toml中app.ENV.*的主要日志错误;如果没有配置,则显示发现的内容;按e可通过表单编辑配置,无需重启。 - 红色环境排查——
:why打开单屏诊断视图:近期事件、告警、实例健康状况和最近部署;Worker 环境还会显示 DLQ 概览。 - 事件模式——
:incident START "headline"会冻结整个集群的部署、固定显示带计时器的页眉横幅,并记录审计日志;ebman freeze会声明一个不归任何会话所有的冻结状态,并持续冻结,直到执行ebman thaw;:event-tail会在单个浮层中串流显示所有环境的 EB 事件;ebman audit replay <line-id>会重新执行经过审计的操作,供事件后审查。 - 如实呈现健康状况——存在状态为 ALARM 的告警、有消息的 DLQ 或平台过时的环境会直接显示在对应行上,而不是藏在标签页后。
- 取证——
:diff env-A env-B查看选项设置差异,:lineage查看部署时间线,:alarm-history NAME查看 CW 状态转换,:config-diff-local对比本地 EB CLI 保存的配置。 - 日常写入操作——环境变量、标签、部署(标签 / 本地 zip / S3,支持
--preview)、保存的配置、CW 告警 CRUD、ALB 方案、实例类型、容量、部署策略,以及通用的:set-option备用入口。 - Worker / SQS——DLQ 查看器支持重新发送、输入名称确认后清空、批量删除、预览和持续查看。
- SSM——
:ssh i-abc打开嵌入式会话;:ssm-run "<cmd>"会在该环境的所有实例上执行 Shell 命令。 - 多账户 / 多区域——
:region all并行查询(每次读取和写入都会使用对应行所属的区域;NAME@REGION可在两个同名环境中选定其一),:account NAME通过sts:AssumeRole切换账户,:find-env/:org-health会遍历所有~/.aws配置文件和已配置账户。 - 批量操作——按
space进行多选,然后使用:batch-*并行分发操作,并显示审计记录和待处理状态行。 - 安全与审计——
--read-only标志、输入名称确认、按环境 / 账户设置的只读锁定,以及位于~/.cache/ebman/audit.log的完整审计日志。 - 无头运行 / 可脚本化——
--control-socket PATH、ebman envs --json、ebman action rebuild --env NAME、ebman ctl screen / state / cmd <:cmd>。 - 面向 Agent 原生支持(MCP)——
ebman mcp serve会将读取功能(环境、Worker 队列、why排查信息包、近期日志、lint、漂移、选项设置、事件、版本、成本)作为 MCP 工具公开,因此 Claude Code 或任何 MCP 客户端都能原生查询你的整个集群,无需调用 Shell 命令再重新解析结果。支持两阶段写入——deploy/restart/rebuild/terminate/set_option/dlq_resend/dlq_delete/dlq_purge(工具会先返回计划,再由confirm_action执行分发)——前提是你的客户端能够向你提问:每次确认都会弹出对话框,说明要执行的操作、该操作会排除的事项,以及将使用的身份;只有确认获批后才会执行分发。(ebman 无法判断你是否在客户端替自己作答——请参阅docs/safety-and-privacy.md——因此在无头或脚本化客户端上,建议使用--read-only或范围更窄的--allow-writes。)无法向你提问的客户端需要使用--allow-writes,或使用--allow-writes=dlq_resend,dlq_delete仅授予部分写入权限;--read-only则会在该服务上直接拒绝写入。所有操作都会遵守与 TUI 相同的安全锁定、只读设置和跨进程事件冻结,并审计每次分发和拒绝。
为什么选择 ebman?
你可能已经在使用以下其中一种工具:
| 工具 | 擅长之处 | 在日常 EB 排查中的不足 |
|---|---|---|
| AWS Console | 易于上手,界面功能齐全。 | 页面加载慢,状态最终一致,排查一个环境要打开 5 个标签页。偶尔处理运维还行,但凌晨 3 点用起来很痛苦。 |
eb CLI | 单个项目的部署流程(eb deploy、eb logs)。 | 无法查看多个环境,没有实时下钻、环境间差异对比或 SQS DLQ 工作流。 |
aws elasticbeanstalk | 可直接访问原始 API,支持脚本化操作。 | 你得自己用 --query / jq 管道搭建工作流。没有实时更新,也没有排查视图。 |
| k9s + EKS | 本工具借鉴的模式。 | Elastic Beanstalk 没有类似工具。 |
ebman 是面向 EB 的 k9s:以键盘操作为主、优先支持下钻,专为每天排查红色环境的运维人员打造,让你在一个屏幕上查看“哪里出了问题”和“发生了哪些变化”。在更广泛的 Rust TUI / k9s 风格工具中,最接近的同类产品是 e1s(面向 ECS 的 k9s);ebman 的写入功能更全面,并增加了多账户扇出、审计日志、按环境设置的安全锁,以及内嵌的 SSM 会话面板。
文档
- 按键 — 普通模式、详情视图标签页、DLQ 查看器。
- 命令参考 — 按用途分组的所有
:command(导航、单环境、写入、多账户、批量操作)。 - 配置 —
~/.config/ebman/config.toml、插件命令、项目本地固定配置。 - 字体 — 安装 Nerd Font 以使用 Powerline 字形集。
- 无头接口 — 脚本 / CI 使用的
--control-socket+ebman ctl;CLI 子命令;Shell 补全(ebman completions);以及供 Claude Code 和其他 Agent 使用的ebman mcp serveMCP 服务(读取工具 + 需确认的两阶段写入)——运行ebman mcp setup获取准确的注册命令。 - 安全、隐私与本地存储内容 — 只读模式、审计日志、错误报告脱敏。
- 架构 — 模块关系图、按键操作如何转化为 AWS 调用,以及编译器不会强制执行的不变量。
- 开发 — 构建 / 测试 / clippy 和分发说明。
- 参与贡献 — 环境设置、PR 前检查清单,以及便于接受的更改应具备的特点。
许可证
采用 MIT 或 Apache-2.0 双重许可。请参阅 LICENSE-MIT 和 LICENSE-APACHE。
由 Polymorphism 构建并开源——企业软件、云与 AI。了解更多信息,请访问 ebman 产品页面。
MCP Registry 名称:mcp-name: io.github.tombaldwin/ebman
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。