taws provides a terminal UI to interact with your AWS resources. The aim of this project is to make it easier to navigate, observe, and manage your AWS infrastructure in the wild.
- Multi-Profile Support - Easily switch between AWS profiles
- Multi-Region Support - Navigate across different AWS regions
- 94+ Resource Types - Browse and manage resources across 60+ AWS services
- Manual Refresh - Refresh resources with a single keystroke
- Pagination - Navigate through large resource lists with
]/[keys - Keyboard-Driven - Vim-like navigation and commands
- Resource Actions - Start, stop, terminate EC2 instances directly
- Detailed Views - JSON/YAML view of resource details
- Filtering - Filter resources by name or attributes
- Autocomplete - Smart resource type autocomplete with fuzzy matching
brew install huseyinbabal/tap/tawsscoop bucket add huseyinbabal https://github.com/huseyinbabal/scoop-bucket
scoop install tawsDownload the latest release from the Releases page.
| Platform | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon (M1/M2/M3) | taws-aarch64-apple-darwin.tar.gz |
| macOS | Intel | taws-x86_64-apple-darwin.tar.gz |
| Linux | x86_64 (musl) | taws-x86_64-unknown-linux-musl.tar.gz |
| Linux | ARM64 (musl) | taws-aarch64-unknown-linux-musl.tar.gz |
| Windows | x86_64 | taws-x86_64-pc-windows-msvc.zip |
# macOS Apple Silicon
curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-aarch64-apple-darwin.tar.gz | tar xz
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 (musl - works on Alpine, Void, etc.)
curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv taws /usr/local/bin/
# Linux ARM64 (musl - works on Alpine, Void, etc.)
curl -sL https://github.com/huseyinbabal/taws/releases/latest/download/taws-aarch64-unknown-linux-musl.tar.gz | tar xz
sudo mv taws /usr/local/bin/- Download
taws-x86_64-pc-windows-msvc.zipfrom the Releases page - Extract the zip file
- Add the extracted folder to your PATH, or move
taws.exeto a directory in your PATH
cargo install taws# Run interactively
docker run --rm -it ghcr.io/huseyinbabal/taws
# Launch with a specific profile (mount AWS credentials)
docker run --rm -it \
-v ~/.aws:/root/.aws:ro \
ghcr.io/huseyinbabal/taws --profile production
# Launch in a specific region
docker run --rm -it \
-v ~/.aws:/root/.aws:ro \
ghcr.io/huseyinbabal/taws --region us-west-2
# Using environment variables
docker run --rm -it \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-e AWS_REGION=us-east-1 \
ghcr.io/huseyinbabal/taws
# Build locally
docker build -t taws .
docker run --rm -it -v ~/.aws:/root/.aws:ro tawsNote: Use
-itflags for interactive terminal support (required for TUI). Mount your~/.awsdirectory as read-only to use your existing AWS credentials.
taws is built with Rust. Make sure you have Rust 1.70+ installed, along with a C compiler and linker.
| Platform | Install Command |
|---|---|
| Amazon Linux / RHEL / Fedora | sudo yum groupinstall "Development Tools" -y |
| Ubuntu / Debian | sudo apt update && sudo apt install build-essential -y |
| macOS | xcode-select --install |
| Windows | Install Visual Studio Build Tools |
# Clone the repository
git clone https://github.com/huseyinbabal/taws.git
cd taws
# Build and run
cargo build --release
./target/release/taws- AWS Credentials - See Authentication section below
- IAM Permissions - Your AWS user/role needs appropriate read permissions for the services you want to browse. At minimum, you'll need
Describe*andList*permissions.
taws uses a credential chain, trying each source in order:
| Priority | Source | Description |
|---|---|---|
| 1 | Environment Variables | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN |
| 2 | AWS SSO | If profile has SSO configured, uses SSO (prompts for login if needed) |
| 3 | Credentials File | ~/.aws/credentials |
| 4 | Config File | ~/.aws/config |
| 5 | IMDSv2 | EC2 instance metadata |
taws supports AWS SSO. If your profile uses SSO and the token is expired, taws will prompt you to authenticate via browser.
Both SSO config formats are supported:
- Modern:
sso_sessionreference to[sso-session X]section - Legacy:
sso_start_urldirectly in profile
If you already logged in via aws sso login, taws will use the cached token automatically.
# Launch taws with default profile
taws
# Launch with a specific profile
taws --profile production
# Launch in a specific region
taws --region us-west-2
# Enable debug logging
taws --log-level debug
# Run in read-only mode (blocks all write operations)
taws --readonly
# Use with LocalStack or custom endpoint
taws --endpoint-url http://localhost:4566
# Or via environment variable
AWS_ENDPOINT_URL=http://localhost:4566 taws| Platform | Path |
|---|---|
| Linux | ~/.config/taws/taws.log |
| macOS | ~/Library/Application Support/taws/taws.log |
| Windows | %APPDATA%\taws\taws.log |
| Action | Key | Description |
|---|---|---|
| Navigation | ||
| Move up | k / ↑ |
Move selection up |
| Move down | j / ↓ |
Move selection down |
| Top | gg / Home |
Jump to first item |
| Bottom | G / End |
Jump to last item |
| Page up | PgUp / Ctrl+b |
Scroll up one page |
| Page down | PgDn / Ctrl+f |
Scroll down one page |
| Pagination | ||
| Next page | ] |
Load next page of results |
| Previous page | [ |
Load previous page of results |
| Views | ||
| Resource picker | : |
Open resource type selector |
| Describe | Enter / d |
View resource details |
| Back | Esc / Backspace |
Go back to previous view |
| Help | ? |
Show help screen |
| Actions | ||
| Refresh | R |
Refresh current view (resets pagination) |
| Filter | / |
Filter resources |
| Region shortcuts | 0-5 |
Quick switch to common regions |
| Quit | Ctrl-c |
Exit taws |
| EC2 Actions | ||
| Connect (SSM) | c |
Open SSM shell session to instance |
| Start instance | s |
Start selected EC2 instance |
| Stop instance | S |
Stop selected EC2 instance |
| Terminate | Ctrl+d |
Terminate selected EC2 instance |
Press : to open the resource picker. Type to filter resources:
:ec2 # EC2 Instances
:lambda # Lambda Functions
:s3 # S3 Buckets
:rds # RDS Instances
:iam-users # IAM Users
:eks # EKS Clusters
Use Tab to autocomplete and Enter to select.
taws supports 30 AWS services with 49 resource types covering 95%+ of typical AWS usage:
| Category | Service | Resources |
|---|---|---|
| Compute | EC2 | Instances |
| Lambda | Functions | |
| ECS | Clusters, Services, Tasks | |
| EKS | Clusters | |
| Auto Scaling | Auto Scaling Groups | |
| Storage | S3 | Buckets |
| Database | RDS | Instances, Snapshots |
| DynamoDB | Tables | |
| ElastiCache | Clusters | |
| Networking | VPC | VPCs, Subnets, Security Groups |
| ELBv2 | Load Balancers, Listeners, Rules, Target Groups, Targets | |
| Route 53 | Hosted Zones | |
| CloudFront | Distributions | |
| API Gateway | REST APIs | |
| Security | IAM | Users, Groups, Roles, Policies, Access Keys |
| Secrets Manager | Secrets | |
| KMS | Keys | |
| ACM | Certificates | |
| Cognito | User Pools | |
| Management | CloudFormation | Stacks |
| CloudWatch | Log Groups | |
| CloudTrail | Trails | |
| SSM | Parameters | |
| STS | Caller Identity | |
| Messaging | SQS | Queues |
| SNS | Topics | |
| EventBridge | Event Buses, Rules | |
| Containers | ECR | Repositories |
| DevOps | CodePipeline | Pipelines |
| CodeBuild | Projects | |
| Analytics | Athena | Workgroups |
Missing a service? Start a discussion to propose adding it!
See Authentication for credential setup.
| Variable | Description |
|---|---|
AWS_PROFILE |
Default AWS profile to use |
AWS_REGION |
Default AWS region |
AWS_DEFAULT_REGION |
Fallback region (if AWS_REGION not set) |
AWS_ACCESS_KEY_ID |
AWS access key |
AWS_SECRET_ACCESS_KEY |
AWS secret key |
AWS_SESSION_TOKEN |
AWS session token (for temporary credentials) |
AWS_SHARED_CREDENTIALS_FILE |
Custom path to credentials file (default: ~/.aws/credentials) |
AWS_CONFIG_FILE |
Custom path to config file (default: ~/.aws/config) |
AWS_ENDPOINT_URL |
Custom endpoint URL (for LocalStack, etc.) |
Press c on a running EC2 instance to open an interactive shell session via AWS Systems Manager.
Requirements:
- session-manager-plugin must be installed
- EC2 instance must have SSM Agent running
- Instance must be running (not stopped/terminated)
- Linux instances only (Windows not supported via shell)
Note: When you exit the shell session (exit), you'll return to taws.
- Some resources may require specific IAM permissions not covered by basic read-only policies
- Total resource count is not displayed due to AWS API limitations (most AWS APIs don't return total count)
- Some global services (IAM, Route53, CloudFront) always use us-east-1
Contributions are welcome! Please see our Contributing Guide for details.
Important: Before adding a new AWS service, please start a discussion first.
- Inspired by k9s - the awesome Kubernetes CLI
- Built with Ratatui - Rust TUI library
- Uses aws-sigv4 for request signing
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for the AWS community


