← BackJan 4, 2026

taws: Terminal‑UI for AWS Resource Management

taws delivers a keyboard‑driven, Vim‑style terminal interface for navigating, observing, and managing AWS resources in real time. Supporting multi‑profile, multi‑region access and 94+ resource types, it offers instant actions such as starting or terminating EC2 instances and viewing detailed JSON/YAML descriptors. The tool is open‑source, Rust‑based, and installs easily via Homebrew, pre‑built binaries, or Cargo.

taws is an open‑source, terminal‑based user interface that lets engineers explore and interact with AWS infrastructure from the command line. --- ### Why taws? AWS environments can grow complex, with dozens of services spread across multiple accounts and regions. Traditional tools—CLI, SDKs, or console dashboards—often require numerous keystrokes or a browser session to accomplish a single task. taws solves this by providing a real‑time, keyboard‑centric view of resources, inspired by Kubernetes TUI tools such as k9s but tailored to the breadth of AWS. --- ### Core Features - **Multi‑Profile & Multi‑Region** – switch between AWS named profiles and regions with single keystrokes. - **Broad Service Coverage** – 94+ resource types spanning 60+ services, including EC2, Lambda, S3, RDS, IAM, CloudFormation, and more. - **Live Refresh** – hit `r` to refresh the current view; mudanças to the AWS environment are shown as they happen. - **Vim‑Like Navigation** – `j/k` to move, `Ctrl‑u/d` for page scrolling, `g/G` to jump to the top or bottom of a list. - **Direct Actions** – start/stop/terminate EC2 instances, delete S3 buckets, and execute other standard AWS actions without leaving the shell. - **JSON/YAML Views** – inspect the raw descriptor of any resource. - **Autocomplete & Filtering** – easy resource type picker (`:`) and name/attribute filter (`/`). - **Keyboard‑Driven** – every operation is reachable via a key binding, making interaction fast and discoverable. --- ### Installation #### Homebrew (macOS/Linux) ``` brew install huseyinbabal/tap/taws ``` #### Pre‑built Binaries Download the latest release archive for your platform from the [GitHub Releases page](https://github.com/huseyinbabal/taws/releases) and place the binary in a directory on your `PATH`. #### Quick Install (macOS/Linux) ```sh # macOS Apple Silicon curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-aarch64-apple-darwin.tar.gz | tar xz echo "Moving taws to /usr/local/bin" sudo mv taws /usr/local/bin/ # macOS Intel curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-x86_64-apple-darwin.tar.gz | tar xz sudo mv taws /usr/local/bin/ # Linux x86_64 curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-x86_64-unknown-linux-gnu.tar.gz | tar xz sudo mv taws /usr/local/bin/ # Linux ARM64 curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-aarch64-unknown-linux-gnu.tar.gz | tar xz sudo mv taws /usr/local/bin/ ``` #### Windows Download the ZIP archive from the releases page, extract it, and add the folder containing `taws.exe` to your `PATH`. #### Cargo ```sh cargo install taws ``` #### Building From Source taws is written in Rust (1.70+ required). Clone the repo, build, and run: ```sh git clone https://github.com/huseyinbabal/taws.git cd taws cargo build --release ./target/release/taws ``` --- ### Prerequisites - **AWS Credentials** – configured via `aws configure`, environment variables (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`), or IAM roles when running on EC2/ECS/Lambda. - **IAM Permissions** – at a minimum, the executing identity requires `Describe*` and `List*` permissions for the desired services; actions such as start/stop require the corresponding write permissions. --- ### Quick Start ```sh # Launch taws with default profile and region (taws) # Launch with a specific profile and region (taws --profile production --region us‑west‑2) ``` --- ### Key Bindings | Action | Key | Description | |--------|-----|-------------| | Move up | `k` / ↑ | Move selection up | | Move down | `j` / ↓ | Move selection down | | Page up | `Ctrl‑u` | Move up by page | | Page down | `Ctrl‑d` | Move down by page | | Top | `g` | Jump to first item | | Bottom | `G` | Jump to last item | | Resource picker | `:` | Open type selector | | Describe | `Enter` / `d` | View resource details | | Back | `Esc` | Go back to previous view | | Help | `?` | Show help screen | | Refresh | `r` | Refresh current view | | Filter | `/` | Filter resources | | Switch profile | `p` | Change AWS profile | | Switch region | `R` | Change AWS region | | Quit | `q` / `Ctrl‑c` | Exit taws | | Start instance | `s` | Start selected EC2 instance | | Stop instance | `S` | Stop selected EC2 instance | | Terminate | `T` | Terminate selected EC2 instance | --- ### Resource Navigation Use the `:` prompt to select a resource type, then type a fragment to filter. Tabs will autocomplete the command, and hitting `Enter` opens the list. Examples: - `:ec2` – EC2 instances - `:lambda` – Lambda functions - `:s3` – S3 buckets - `:rds` – RDS instances - `:iam-users` – IAM users - `:eks` – EKS clusters --- ### Supported AWS Services taws covers roughly 95% of common AWS usage, focusing on 30 core services: - **Compute** – EC2, Lambda, ECS, EKS, Auto Scaling - **Storage** – S3 - **Database** – RDS, DynamoDB, ElastiCache - **Networking** – VPC (subnets, security groups), Route 53, CloudFront, API Gateway, ELB - **Security** – IAM, Secrets Manager, KMS, ACM, Cognito - **Management** – CloudFormation, CloudWatch Logs, CloudTrail, SSM, STS - **Messaging** – SQS, SNS, EventBridge - **Containers** – ECR - **DevOps** – CodePipeline, CodeBuild - **Analytics** – Athena Missing a service? Open a discussion to propose its addition. --- ### Configuration AWS credentials are sourced from the standard configuration hierarchy: 1. `~/.aws/credentials` & `~/.aws/config` 2. Environment variables (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`, `AWS_PROFILE`, `AWS_REGION`) The following variables influence taws: - `AWS_PROFILE` – default profile - `AWS_REGION` – default region - `AWS_ACCESS_KEY_ID` – access key - `AWS_SECRET_ACCESS_KEY` – secret key - `AWS_SESSION_TOKEN` – temporary token --- ### Known Issues - Certain resources demand granularity‑specific IAM permissions beyond the generic read‑only set. - Resource counts may change during pagination or after refresh. - Global services like IAM, Route 53, and CloudFront are accessed through `us-east‑1` regardless of the configured region. --- ### Contributing We welcome pull requests. Please read the [Contributing Guide](https://github.com/huseyinbabal/taws/blob/main/CONTRIBUTING.md) before submitting. For new services, start a discussion to evaluate feasibility. --- ### Acknowledgements - Inspired by **k9s** for Kubernetes. - Built with the **Ratatui** Rust TUI library. - AWS request signing via the **aws-sigv4** crate. --- ### License MIT – See the `LICENSE` file. --- ### Made with ❤️ for the AWS community