A k9s-style terminal UI for AWS ECS and EC2. Navigate clusters, services, tasks, and instances with keyboard-driven drill-down, then exec right into containers or SSM sessions.
Built for cloud engineers, DevOps engineers, and SREs who are tired of juggling the AWS console and CLI to do simple operational tasks.
- Interactive dashboard — Browse ECS Clusters, Services, Tasks, Task Definitions, EC2 Instances, and Auto Scaling Groups in a single TUI
- Hierarchical drill-down — Navigate Cluster → Service → Task with Enter, or take alternate paths with secondary drill-down
- ECS Exec & SSM Shell — Open a shell in any ECS container or EC2 instance directly from the dashboard
- Log tailing — Stream CloudWatch logs for a service without hunting for log group names
- Service health — Quick status view: running/desired/pending tasks, deployments, recent stops
- File copy — Copy files to/from Fargate containers via
tar-over-exec (no Docker socket needed) - Bookmarks & history — Save frequent targets and reconnect in one command
- Fuzzy search — Filter any table view with substring matching across all columns
- Configurable keybinds — Customize shortcuts via YAML config
- Bordered shell sessions — PTY proxy with title bar showing context (cluster, service, instance)
go install github.com/janost/bridge@latestgit clone https://github.com/janost/bridge.git
cd bridge
make build # builds ./bridge
make build-all # cross-compile to dist/Requires Go 1.25+ and the AWS CLI v2 (for ssm start-session and ecs execute-command).
- AWS CLI v2 installed and configured (
aws configureor environment variables) - Session Manager Plugin for SSM shell access (install guide)
- ECS Exec enabled on your ECS services for container exec (enable guide)
# Launch the interactive dashboard
bridge tui
# Or just
bridgeUse arrow keys or j/k to navigate, Enter to drill down or open actions, Esc/Backspace to go back, / to search, q to quit.
| Command | Description |
|---|---|
bridge tui |
Interactive dashboard (default) |
bridge exec |
Open shell in ECS task or EC2 instance |
bridge logs |
Tail CloudWatch logs for a service |
bridge status |
Service health summary |
bridge events |
Recent service event timeline |
bridge cp <src> <dst> |
Copy files to/from a container |
bridge list |
Tabular resource listing |
bridge exec save <name> |
Bookmark a connection target |
bridge exec connect <name> |
Reconnect via bookmark |
bridge exec bookmarks |
List/manage bookmarks |
bridge exec history |
Recent connection history |
-p, --profile AWS profile name
-r, --region AWS region
# Exec into a specific service's most recent task
bridge exec -c my-cluster -s my-service
# Exec into an EC2 instance by ID
bridge exec -i i-0123456789abcdef0
# Tail logs for a service (last 5 minutes, follow)
bridge logs -c my-cluster -s my-service --since 5m
# Copy a file from a container
bridge cp -c my-cluster -s my-service :/var/log/app.log ./app.log
# Save a bookmark and reconnect later
bridge exec save prod-api -c production -s api-service
bridge exec connect prod-apiResourcePicker
├── ECS Clusters
│ ├── [Enter] Services in cluster
│ │ └── [Enter] Tasks in service
│ │ └── [Enter] ECS Exec into container
│ └── [T] All tasks in cluster (secondary drill)
├── ECS Services (all clusters)
│ └── [Enter] Tasks in service
├── ECS Tasks (all clusters)
├── ECS Task Definitions
├── EC2 Instances
│ └── [Enter] SSM Shell
└── Auto Scaling Groups
└── [Enter] Member EC2 instances
Config file: ~/.config/bridge/config.yaml
keybinds:
search: "/"
quit: "q"
refresh: "r"
drill_alt: "T"Bookmarks are stored in the same config file. History is stored in ~/.local/share/bridge/history.json.
MIT