A k9s-style TUI for AWS Elastic Beanstalk. Triage red envs, stream logs, edit option settings, deploy new versions — all from the keyboard. If you've used k9s with Kubernetes, the muscle memory carries: : for commands, / to filter, Enter to drill in, ? for context-aware help.
Install · Quickstart · Triage workflow · Highlights · Why ebman? · Docs
Captured from
ebman --demo, the synthetic-fleet mode that ships with the binary. Regenerate the gif withvhs demo.tapeafter a code change.
Homebrew (macOS / Linux):
brew install tombaldwin/tap/ebmanCargo:
cargo install ebmanPre-built binary: download the tarball for your platform from the GitHub Releases page, verify the *.sha256 next to it, extract, and put ebman on your PATH.
Tested on Rust 1.91+. macOS (Apple Silicon + Intel) and Linux x86_64. AWS SDK uses the standard credentials chain (AWS_PROFILE / AWS_REGION env, ~/.aws/credentials, instance role, etc.).
For the prettier glyph set (Powerline pill chain, Nerd Font tab icons), see docs/fonts.md. The default icons = "unicode" works fine in any terminal.
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 --helpOnce running, press ? for a per-context keymap (Detail, DLQ, Action menu, Saved-configs overlay all have scoped help).
Production env goes red at 3am. From your terminal:
ebman— launch;prod-apishows up tinted red in the table/prod-api↵— jump to it!— open:why: recent events / alarms / instance health / last deploys, all in one overlay:diff prod-api staging-api— confirm staging is still on the previous version:rollback— redeploy the last-known-good version label, with a 5-second undo window- Action + outcome land in
~/.cache/ebman/audit.log
Five keystrokes to triage, one command to fix. The AWS-console alternative is a minimum of five page-loads, two tabs, and zero audit trail.
Built for operators who triage EB envs daily and don't want the AWS console round-trip — or the eb deploy ; aws elasticbeanstalk describe-events --max-items 50 | jq ... shell-pipeline every time something goes red.
- Live env table with sort / filter / group-by-app / health sparkline / severity tints / mouse support.
- Per-env drill-down — tabs for Health / Events / Instances / Metrics / Queue / Logs / Config.
- Red-env triage —
:whyopens a one-screen diagnostic: recent events + alarms + instance health + last deploys, with a DLQ peek for Worker envs. - Honest health — envs with alarms in ALARM, DLQs with messages, or stale platforms surface on the row itself, not behind a tab.
- Forensics —
:diff env-A env-Bfor option-setting deltas,:lineagefor the deploy timeline,:alarm-history NAMEfor CW state transitions,:config-diff-localagainst a local EB CLI saved config. - Daily-driver writes — env vars, tags, deploys (label / local zip / S3, with
--preview), saved configs, CW alarms CRUD, ALB scheme, instance type, capacity, deployment policy, plus a generic:set-optionescape hatch. - Worker / SQS — DLQ viewer with resend, typed-name purge, bulk delete, peek-and-tail.
- SSM —
:ssh i-abcopens an embedded session;:ssm-run "<cmd>"fans a shell command across the env's instances. - Multi-account / multi-region —
:region allparallel queries,:account NAMEviasts:AssumeRole,:find-env/:org-healthwalk every~/.awsprofile + configured account. - Bulk ops —
spacemulti-selects, then:batch-*fans out in parallel with audit + pending-pill rows. - Safety + audit —
--read-onlyflag, typed-name confirms, per-env / per-account read-only pins, full audit log at~/.cache/ebman/audit.log. - Headless / scriptable —
--control-socket PATH,ebman envs --json,ebman action rebuild --env NAME,ebman ctl screen / state / cmd <:cmd>.
You probably already have one of these:
| Tool | What it's good at | Where it falls short for daily EB triage |
|---|---|---|
| AWS Console | Approachable, complete UI surface. | Page loads, eventually-consistent state, 5 tabs to triage one env. Fine for occasional ops, painful at 3am. |
eb CLI |
A single project's deploy flow (eb deploy, eb logs). |
No multi-env view, no live drill-down, no diff between envs, no SQS DLQ workflow. |
aws elasticbeanstalk |
Raw API access, scriptable. | You build the workflow out of --query / jq pipelines yourself. No live updates, no triage view. |
| k9s + EKS | The pattern this tool is modelled on. | Doesn't exist for Elastic Beanstalk. |
ebman is k9s-for-EB: keyboard-driven, drill-down-first, focused on operators who triage red envs daily and want one screen for "what's wrong" and "what changed". The nearest peer in the broader Rust-TUI / k9s-style space is e1s (k9s-for-ECS); ebman is broader on the write surface and adds multi-account fan-out, an audit log, per-env safety pins, and an embedded SSM-session pane.
- Keys — normal mode, detail view tabs, DLQ viewer.
- Command reference — every
:commandgrouped by job (navigation, per-env, write, multi-account, bulk). - Configuration —
~/.config/ebman/config.toml, plugin commands, project-local pinning. - Fonts — installing a Nerd Font for the Powerline glyph set.
- Headless interface —
--control-socket+ebman ctlfor scripts / CI. - Safety, privacy, what's stored locally — read-only mode, audit log, bug-report scrubbing.
- Development — build / test / clippy + distribution notes.
Dual-licensed under MIT or Apache-2.0. See LICENSE-MIT and LICENSE-APACHE.
