For engineers who live in the terminal, the AWS web console is a context switch: slow, mouse-driven, a browser tab away from whatever you were doing. aws-tui keeps that work at the keyboard. It’s a Norton-Commander-style dual-pane file manager for S3 sitting next to your local disk, joined by consoles for three more services — an EMR Serverless job browser, an AWS Glue data-catalog console, and an Amazon Athena query console — on macOS, Linux, and Windows. A built-in demo mode boots the whole UI, all four services, against seeded mock data, so you can try it with no AWS account at all. It’s built on Textual and the VMx MVVM framework.
Highlights
- Dual-pane S3 file manager — a bucket on one side, your local filesystem on the other, with cross-pane copy and delete, multi-select, and confirmation modals
- One-key source switching (
Shift+S) — cycles the focused pane through every configured source, so hopping between AWS profiles is a single keystroke with no command palette; on the service consoles the same key rebuilds the whole page under the next profile - EMR Serverless browser — application picker, master-detail job-runs pane with state filters, on-demand log streaming with a grep filter, and a clone-and-edit modal to re-run a finished job
- Glue catalog console — databases, tables, partitions, column statistics, jobs, and crawler status in one read-only view, with a handoff that opens a table’s S3 location straight in the file manager under the same profile
- Athena query console — pick a workgroup, catalog, and database, submit a read-only statement past a fail-closed local parser, follow its lifecycle, page through results, and hand a finished result artifact off to S3
- First-class S3-compatible support — MinIO, Cloudflare R2, Backblaze B2, Wasabi, and other S3-API stores run on the exact code path as native AWS
- Silent SSO — discovers profiles from your AWS config and reuses cached SSO tokens, so the UI renders without a network round-trip just to draw itself
- Crash recovery — a durable transfer journal for in-flight copies, plus crash dumps that capture the traceback, recent actions, and log tail
Stack & Architecture
Python on Textual for rendering and VMx for MVVM state management. The app is
assembled at two trusted composition roots (app.py, composition.py) and
organized in strict layers from View down to Infra, with CI checking the layer
graph for forbidden edges over a codebase that type-checks clean under
mypy-strict. That shape is what lets EMR Serverless, Glue, and Athena slot in
beside S3 without any service reaching into another’s internals.
Status
Actively developed and Apache-2.0 licensed, with a full documentation site mirrored to a GitHub wiki.