7 AWS services supported

Keyboard-first
AWS TUI

Browse, search, and manage AWS resources directly from your terminal. No more switching between browser tabs and consoles.

sacha demo showing CloudWatch Logs tailing, S3 browsing, and DynamoDB scanning

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.

multi-tail JSON tables retention

S3 Browser

Browse buckets and objects with folder navigation. Download files and entire folders recursively. Preview text content and copy S3 URIs.

recursive download preview clipboard

DynamoDB

Browse tables with metadata details. Scan items with lazy-loaded pagination. View full item attributes including nested maps, lists, and sets.

table scan all types GSI info

Lambda

Browse functions with runtime, memory, timeout, and architecture details. View environment variables and layers in expandable popups.

env vars layers config

SSM Parameter Store

Navigate parameters by path hierarchy like a file system. View decrypted values for SecureString, String, and StringList types.

path hierarchy decryption scroll memory

SQS

Browse queues with message counts and attributes. Peek messages non-destructively with visibility timeout 0. Auto-format JSON message bodies.

non-destructive peek FIFO/Standard redrive

EC2

Browse instances with state, type, public and private IPs. Expand for full metadata including tags, security groups, VPC, and subnet details.

instance details tags security groups

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/credentials and ~/.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 variablesAWS_PROFILE, AWS_REGION, AWS_DEFAULT_REGION
  • Config file — saved preferences
  • AWS SDK defaults — lowest priority

Global Keybindings

These keys work in every view:

KeyAction
rSwitch AWS region
sSwitch AWS service
Ctrl+CQuit sacha

Common Patterns

Every service view shares these interaction patterns:

  • Vim-style navigationj/k or arrow keys to move the cursor
  • Search/filter — press / to type a filter query, results update in real-time
  • Expand popupsenter or space to view full details in a scrollable overlay
  • Clipboardy to copy the relevant identifier (ARN, URL, URI, value)
  • Lazy loading — lists automatically fetch more items as you scroll near the bottom
  • Back navigationesc, 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

KeyContextAction
j/k or ↑/↓ListNavigate log groups
/ListSearch / filter
spaceListToggle selection
aListSelect all
cListCreate log group
dListDelete selected log groups
RListSet retention policy
tListStart tailing selected groups
tab, h/lTailingSwitch panel focus
enter / spaceTailingExpand log event
vTailingToggle table / plain view
fTailingToggle fullscreen
h/l or ←/→FullscreenScroll horizontally
x / q / escTailingStop tailing
j/k or ↑/↓PopupScroll content
pgup/pgdnPopupPage scroll
escPopupClose 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

KeyContextAction
j/k or ↑/↓BrowseNavigate
/BrowseSearch / filter
enterBrowseOpen bucket / folder
spaceBrowseToggle selection
aBrowseToggle all (current page)
dBrowseDownload selected (recursive)
pBrowsePreview text file
yBrowseCopy S3 URI
esc / backspaceBrowseGo back
↑/↓PreviewScroll
p / escPreviewClose 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

KeyContextAction
j/k or ↑/↓TablesNavigate
/TablesSearch / filter
enterTablesOpen table (scan items)
yTablesCopy table ARN
enter / spaceItemsExpand item details
/ItemsFilter items by value
esc / backspace / hItemsGo back to tables
j/k or ↑/↓PopupScroll content
pgup/pgdnPopupPage scroll
escPopupClose 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

KeyContextAction
j/k or ↑/↓ListNavigate
/ListSearch / filter by name or runtime
enter / spaceListExpand function details
yListCopy function ARN
j/k or ↑/↓PopupScroll content
pgup/pgdnPopupPage scroll
escPopupClose 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

KeyContextAction
j/k or ↑/↓BrowseNavigate
/BrowseSearch / filter
enter / spaceBrowseEnter path prefix or expand parameter
yBrowseCopy parameter value or path
esc / backspace / hBrowseGo back one level
j/k or ↑/↓PopupScroll content
pgup/pgdnPopupPage scroll
escPopupClose 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

KeyContextAction
j/k or ↑/↓QueuesNavigate
/QueuesSearch / filter
enterQueuesPeek messages
spaceQueuesExpand queue details
yQueuesCopy queue URL
enter / spaceMessagesExpand message
yMessagesCopy message body
esc / backspace / hMessagesGo back to queues
j/k or ↑/↓PopupScroll content
pgup/pgdnPopupPage scroll
escPopupClose 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

KeyContextAction
j/k or ↑/↓ListNavigate
/ListSearch / filter
enter / spaceListExpand instance details
yListCopy instance ID
j/k or ↑/↓PopupScroll content
pgup/pgdnPopupPage scroll
escPopupClose popup

Keybindings at a Glance

Quick reference for the most-used keys in each service.

Global

rChange region
sChange service
j/kNavigate
/Search / filter
yCopy to clipboard
Ctrl+CQuit

CloudWatch Logs

spaceToggle selection
tStart tailing
cCreate group
dDelete groups
RSet retention
vToggle view
fFullscreen

S3

enterOpen bucket/folder
spaceToggle selection
aToggle all (page)
dDownload
pPreview file

DynamoDB

enterOpen table / expand
spaceExpand item
escGo back

Lambda

enterExpand function
spaceExpand function

SSM

enterEnter folder / expand
esc/hGo back

SQS

enterPeek messages
spaceExpand queue
esc/hGo back

EC2

enterExpand instance
spaceExpand instance