Keyboard-first
AWS TUI
Browse, search, and manage AWS resources directly from your terminal. No more switching between browser tabs and consoles.
Seven AWS services, one TUI
Each service gets a two-pane interface with vim-style navigation, lazy pagination, and consistent keybindings.
CloudWatch Logs
Search, multi-select, and tail multiple log groups simultaneously. JSON logs auto-format as sortable tables. Create, delete, and set retention policies.
S3 Browser
Browse buckets and objects with folder navigation. Download files and entire folders recursively. Preview text content and copy S3 URIs.
DynamoDB
Browse tables with metadata details. Scan items with lazy-loaded pagination. View full item attributes including nested maps, lists, and sets.
Lambda
Browse functions with runtime, memory, timeout, and architecture details. View environment variables and layers in expandable popups.
SSM Parameter Store
Navigate parameters by path hierarchy like a file system. View decrypted values for SecureString, String, and StringList types.
SQS
Browse queues with message counts and attributes. Peek messages non-destructively with visibility timeout 0. Auto-format JSON message bodies.
EC2
Browse instances with state, type, public and private IPs. Expand for full metadata including tags, security groups, VPC, and subnet details.
Installation
Pick your preferred method. Requires AWS credentials configured.
Homebrew Recommended
brew install sachamama/tap/sacha
Go Install
go install github.com/sachamama/sacha/cmd/sacha@latest
Manual
Complete reference for every command and feature in sacha.
Overview
Sacha is a keyboard-first AWS TUI (Terminal User Interface) inspired by classic two-pane file managers. It provides a split-pane interface for browsing, searching, and managing AWS resources across seven services: CloudWatch Logs, S3, DynamoDB, Lambda, SSM Parameter Store, SQS, and EC2.
Prerequisites
You need valid AWS credentials configured. Sacha supports all standard credential methods:
- AWS CLI profiles (
~/.aws/credentialsand~/.aws/config) - Environment variables (
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY) - IAM instance roles (EC2, ECS, Lambda)
- AWS SSO / Identity Center
Usage
# Launch with defaults (uses last region/service or AWS SDK defaults)
sacha
# Specify profile and region
sacha --profile production --region us-east-1
# Jump directly to a service
sacha --service s3
sacha --service dynamodb
# Enable debug logging
sacha --verbose
Command-Line Flags
| Flag | Description | Example |
|---|---|---|
| --profile | AWS profile name | --profile staging |
| --region | AWS region | --region eu-west-1 |
| --service | Service to open | --service cloudwatch-logs |
| --verbose | Enable debug logging | --verbose |
| --version | Show version | --version |
Configuration
Sacha stores configuration in ~/.config/sacha/config.json. It automatically saves your last-used region and service.
Resolution precedence:
- CLI flags — highest priority (
--profile,--region,--service) - Environment variables —
AWS_PROFILE,AWS_REGION,AWS_DEFAULT_REGION - Config file — saved preferences
- AWS SDK defaults — lowest priority
Global Keybindings
These keys work in every view:
| Key | Action |
|---|---|
| r | Switch AWS region |
| s | Switch AWS service |
| Ctrl+C | Quit sacha |
Common Patterns
Every service view shares these interaction patterns:
- Vim-style navigation — j/k or arrow keys to move the cursor
- Search/filter — press / to type a filter query, results update in real-time
- Expand popups — enter or space to view full details in a scrollable overlay
- Clipboard — y to copy the relevant identifier (ARN, URL, URI, value)
- Lazy loading — lists automatically fetch more items as you scroll near the bottom
- Back navigation — esc, backspace, or h to go back
Overview
The CloudWatch Logs view provides a split-pane interface for managing and tailing log groups. The left pane lists your log groups; the right pane shows either group details or live tail output.
Log Group Management
- Browse — log groups are listed with search and cursor navigation
- Details pane — right panel shows log group name, retention policy, stored bytes, and creation date
- Create — press c to create a new log group
- Delete — press d to delete selected log groups (shows confirmation prompt)
- Retention — press R to set retention policy on selected groups. Options: 1d, 3d, 5d, 7d, 14d, 30d, 60d, 90d, 1y, never
Tailing Logs
- Start tailing — select one or more groups with space or a, then press t
- Panel switching — use tab, h/l, or arrow keys to switch focus between the groups panel and the tail panel
- Dynamic refresh — changing log group selection while tailing automatically restarts with the new selection
- JSON auto-formatting — detected JSON logs display as a table with TIME, GROUP, and extracted fields
- View toggle — press v to switch between table and plain text view
- Fullscreen — press f to hide the groups panel and focus on logs. Use h/l or arrow keys to scroll horizontally
- Expand event — press enter or space to open a scrollable popup with pretty-printed JSON
- Stop tailing — press x, q, or esc
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | List | Navigate log groups |
| / | List | Search / filter |
| space | List | Toggle selection |
| a | List | Select all |
| c | List | Create log group |
| d | List | Delete selected log groups |
| R | List | Set retention policy |
| t | List | Start tailing selected groups |
| tab, h/l | Tailing | Switch panel focus |
| enter / space | Tailing | Expand log event |
| v | Tailing | Toggle table / plain view |
| f | Tailing | Toggle fullscreen |
| h/l or ←/→ | Fullscreen | Scroll horizontally |
| x / q / esc | Tailing | Stop tailing |
| j/k or ↑/↓ | Popup | Scroll content |
| pgup/pgdn | Popup | Page scroll |
| esc | Popup | Close popup |
Overview
The S3 view lets you browse buckets and objects in a two-pane interface. Navigate into buckets and folders, download files, preview text content, and copy S3 URIs to your clipboard.
Browsing
- Bucket list — shows all accessible S3 buckets with search/filter
- Object navigation — press enter to open a bucket or navigate into a folder
- Back — press esc or backspace to go back
- Lazy loading — objects load automatically as you scroll near the bottom of the list
- Scroll memory — cursor position is restored when navigating back from folders
Selection & Downloads
- Multi-select — press space to toggle selection on files and folders
- Select all (page) — press a to toggle all items on the current page
- Download — press d to download selected items. Folders are downloaded recursively. Files are saved to
./sacha-downloads/with folder structure preserved
Preview & Clipboard
- Preview — press p to view text file contents inline. Use arrow keys to scroll. Press p or esc to close
- Copy URI — press y to copy the S3 URI (e.g.,
s3://bucket/key) to clipboard
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | Browse | Navigate |
| / | Browse | Search / filter |
| enter | Browse | Open bucket / folder |
| space | Browse | Toggle selection |
| a | Browse | Toggle all (current page) |
| d | Browse | Download selected (recursive) |
| p | Browse | Preview text file |
| y | Browse | Copy S3 URI |
| esc / backspace | Browse | Go back |
| ↑/↓ | Preview | Scroll |
| p / esc | Preview | Close preview |
Overview
The DynamoDB view provides a two-pane browser for tables and their items. View table metadata, scan items with lazy pagination, and inspect full attribute details for any item.
Tables View
- Table list — left pane shows all tables with lazy-loaded pagination
- Table details — right pane displays status, item count, size, billing mode, key schema, and GSIs
- Search — press / to filter tables by name
- Open table — press enter to scan the table's items
- Copy ARN — press y to copy the table ARN
Items View
- Item scanning — items load with lazy pagination as you scroll
- Filter — press / to filter items by value
- Expand item — press enter or space to view full attributes in a scrollable popup
- All attribute types — supports strings, numbers, booleans, binary, sets, lists, and maps
- Back — press esc, backspace, or h to return to the tables list
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | Tables | Navigate |
| / | Tables | Search / filter |
| enter | Tables | Open table (scan items) |
| y | Tables | Copy table ARN |
| enter / space | Items | Expand item details |
| / | Items | Filter items by value |
| esc / backspace / h | Items | Go back to tables |
| j/k or ↑/↓ | Popup | Scroll content |
| pgup/pgdn | Popup | Page scroll |
| esc | Popup | Close popup |
Overview
The Lambda view provides a two-pane browser for Lambda functions. View runtime, memory, timeout, and configuration details in the right panel, and expand any function for full details including environment variables and layers.
Functions View
- Function list — left pane shows functions with lazy-loaded pagination
- Details pane — right pane displays runtime, handler, memory, timeout, code size, state, and architecture
- Search — press / to filter by function name or runtime
- Expand — press enter or space to open a scrollable popup with full details, environment variables, and layers
- Copy ARN — press y to copy the function ARN
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | List | Navigate |
| / | List | Search / filter by name or runtime |
| enter / space | List | Expand function details |
| y | List | Copy function ARN |
| j/k or ↑/↓ | Popup | Scroll content |
| pgup/pgdn | Popup | Page scroll |
| esc | Popup | Close popup |
Overview
The SSM Parameter Store view lets you navigate parameters by path hierarchy, like browsing a file system. View parameter values (with automatic decryption for SecureString), types, versions, and metadata.
Hierarchical Navigation
- Path prefixes as folders — parameters organized under path prefixes (e.g.,
/prod/api/) are displayed as navigable folders - Enter folder — press enter or space on a path prefix to drill into it
- Go back — press esc, backspace, or h to navigate up one level
- Scroll memory — your cursor position is saved and restored when navigating back
Parameter Details
- Details pane — right panel shows the parameter value (with decryption), type, version, last modified date, and ARN
- Types — supports String, StringList, and SecureString
- Expand — press enter or space on a leaf parameter to view full details in a scrollable popup
- Copy — press y to copy the parameter value or path
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | Browse | Navigate |
| / | Browse | Search / filter |
| enter / space | Browse | Enter path prefix or expand parameter |
| y | Browse | Copy parameter value or path |
| esc / backspace / h | Browse | Go back one level |
| j/k or ↑/↓ | Popup | Scroll content |
| pgup/pgdn | Popup | Page scroll |
| esc | Popup | Close popup |
Overview
The SQS view provides a two-pane browser for SQS queues. View message counts, queue attributes, and peek messages non-destructively using visibility timeout 0.
Queues View
- Queue list — left pane shows queues with lazy-loaded pagination
- Details pane — right pane shows message counts (approximate visible, in-flight, delayed), queue type (FIFO/Standard), visibility timeout, redrive policy, and encryption
- Search — press / to filter queues by name
- Expand queue — press space to view full queue attributes in a scrollable popup
- Copy URL — press y to copy the queue URL
Message Peeking
- Peek — press enter to receive messages with visibility timeout 0. Messages remain in the queue and are not consumed
- Navigate messages — use j/k to browse received messages
- Expand message — press enter or space to view the full message body in a scrollable popup. JSON bodies are auto-formatted
- Copy body — press y to copy the message body
- Back — press esc, backspace, or h to return to the queues list
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | Queues | Navigate |
| / | Queues | Search / filter |
| enter | Queues | Peek messages |
| space | Queues | Expand queue details |
| y | Queues | Copy queue URL |
| enter / space | Messages | Expand message |
| y | Messages | Copy message body |
| esc / backspace / h | Messages | Go back to queues |
| j/k or ↑/↓ | Popup | Scroll content |
| pgup/pgdn | Popup | Page scroll |
| esc | Popup | Close popup |
Overview
The EC2 view provides a two-pane browser for EC2 instances. View instance state, type, public and private IPs, and expand any instance for full metadata including tags, security groups, VPC, and subnet details.
Instances View
- Instance list — left pane shows instances with lazy-loaded pagination
- Details pane — right pane displays instance name, ID, type, state, public/private IPs, and launch time
- Search — press / to filter by name, instance ID, type, state, or IP
- Expand — press enter or space to open a scrollable popup with full metadata and tags
- Copy ID — press y to copy the instance ID
All Keybindings
| Key | Context | Action |
|---|---|---|
| j/k or ↑/↓ | List | Navigate |
| / | List | Search / filter |
| enter / space | List | Expand instance details |
| y | List | Copy instance ID |
| j/k or ↑/↓ | Popup | Scroll content |
| pgup/pgdn | Popup | Page scroll |
| esc | Popup | Close popup |
Keybindings at a Glance
Quick reference for the most-used keys in each service.