sacha

module
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2026 License: MIT

README

sacha

Keyboard-first AWS TUI for your terminal

CI Release Go Report Card Go Version Latest Release

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

InstallQuick StartFeaturesKeybindingsDocsContributing

Buy Me A Coffee


Why sacha?

Sacha is a two-pane TUI inspired by classic file managers. It keeps you in the terminal while you explore AWS resources across six services, with vim-style navigation, lazy-loaded pagination, and automatic JSON formatting.

sachamama comes from Quechua and means "mother of the forest." sacha shortens the idea to "forest," reflecting how the tool helps you see the bigger AWS landscape without getting lost in individual trees.

Supported Services
Service What you can do
CloudWatch Logs Search, multi-select, and tail multiple log groups. Highlight and filter JSON fields with jq syntax. Create, delete, and set retention policies.
S3 Browse buckets and objects. Download files and folders recursively. Preview text content. Copy S3 URIs.
DynamoDB Browse tables and scan items. View table metadata, key schema, and GSIs. Inspect full item attributes.
Lambda Browse functions. View configuration, environment variables, layers, and runtime details.
SSM Parameter Store Navigate parameters by path hierarchy. View values with decryption. Supports String, StringList, SecureString.
SQS Browse queues with message stats. Peek messages non-destructively. View FIFO/Standard attributes and redrive policies.

Install

Prerequisites: AWS credentials configured (via ~/.aws/credentials, environment variables, or IAM role).

Homebrew (macOS / Linux)
brew install sachamama/tap/sacha
Go Install
go install github.com/sachamama/sacha/cmd/sacha@latest

Requires Go 1.22+.

Pre-built Binaries

Download from GitHub Releases:

# macOS (Apple Silicon)
curl -Lo sacha.tar.gz https://github.com/Sachamama/sacha/releases/latest/download/sacha_VERSION_darwin_arm64.tar.gz
tar xzf sacha.tar.gz && sudo mv sacha /usr/local/bin/

# macOS (Intel)
curl -Lo sacha.tar.gz https://github.com/Sachamama/sacha/releases/latest/download/sacha_VERSION_darwin_amd64.tar.gz
tar xzf sacha.tar.gz && sudo mv sacha /usr/local/bin/

# Linux (x86_64)
curl -Lo sacha.tar.gz https://github.com/Sachamama/sacha/releases/latest/download/sacha_VERSION_linux_amd64.tar.gz
tar xzf sacha.tar.gz && sudo mv sacha /usr/local/bin/

# Linux (ARM64)
curl -Lo sacha.tar.gz https://github.com/Sachamama/sacha/releases/latest/download/sacha_VERSION_linux_arm64.tar.gz
tar xzf sacha.tar.gz && sudo mv sacha /usr/local/bin/

Replace VERSION with the actual version (e.g., 1.0.0).

From Source
git clone https://github.com/Sachamama/sacha.git
cd sacha
make build  # binary at bin/sacha
Update
# Homebrew
brew upgrade sacha

# Go install
go install github.com/sachamama/sacha/cmd/sacha@latest

# Pre-built binary — download from https://github.com/Sachamama/sacha/releases
# From source
git pull && make build

Check your current version: sacha --version


Quick Start

sacha
# or with explicit options
sacha --profile production --region us-east-1 --service cloudwatch-logs
Global Flags
Flag Description
--profile AWS profile to use
--region AWS region
--service Jump directly to a service (cloudwatch-logs, s3, dynamodb, lambda, ssm, sqs)
--verbose Enable debug logging
--version Show version information
Configuration

Config file: ~/.config/sacha/config.json

Resolution precedence:

  1. CLI flags (--profile, --region, --service)
  2. Environment variables (AWS_PROFILE, AWS_REGION, AWS_DEFAULT_REGION)
  3. Config file
  4. AWS SDK defaults

Sacha remembers your last-used region and service automatically.


Features

CloudWatch Logs
  • Split-pane TUI — left pane lists log groups; right pane shows details or live tail output.
  • Log group management — create (c), delete (d) with confirmation, set retention policy (R) with standard presets (1d to 1y or never).
  • Multi-group tailing — select multiple groups with space/a and tail them simultaneously with t. Dynamic refresh when selection changes.
  • Compact display — log group names show only the last path segment (e.g., /aws/lambda/my-funcmy-func). Timestamps show the base time for the first event and relative offsets (+1.5s, +2m30s) for subsequent events.
  • jq-style highlight — press H while tailing to enter field paths (e.g., .level .message .statusCode). Matching JSON values are highlighted in the log output.
  • Filter by highlight — press F to toggle filtering: only events containing the highlighted fields are shown. Press F again to show all events.
  • Panel focustab/h/l to switch between groups and tail panels. Focused panel highlighted with colored border.
  • Fullscreen mode — press f while tailing for a distraction-free view with horizontal scrolling.
  • Expand eventsenter/space to open a scrollable popup with pretty-printed JSON.
S3
  • Bucket and object browser — navigate into buckets and folders with enter, go back with esc/backspace.
  • Batch operations — multi-select files and folders with space, select all with a, load all pages and select with A.
  • Recursive downloads — press d to download selected files and folders to ./sacha-downloads/, preserving folder structure.
  • Text preview — press p to preview file contents inline.
  • Clipboardy to copy S3 URI.
  • Lazy pagination — loads more objects as you scroll near the bottom.
DynamoDB
  • Two-pane table browser — table list on the left, metadata on the right (status, item count, size, billing, key schema, GSIs).
  • Item scanning — press enter to scan items with lazy-loaded pagination.
  • Search & filter/ to filter tables or items by value.
  • Expand itemsenter/space to view full attribute details in a scrollable popup.
  • All attribute types — strings, numbers, booleans, binary, sets, lists, and maps.
  • Clipboardy to copy table ARN.
Lambda
  • Function browser — two-pane view with runtime, handler, memory, timeout, code size, state, and architecture in the details panel.
  • Deep inspectionenter/space to expand and view environment variables, layers, and full configuration.
  • Filter by name or runtime/ to search.
  • Clipboardy to copy function ARN.
  • Lazy pagination — loads more functions as you scroll.
SSM Parameter Store
  • Hierarchical browsing — navigate path prefixes like folders with enter, go back with esc/backspace/h.
  • Parameter details — value (with automatic decryption), type, version, last modified, ARN.
  • All types supported — String, StringList, SecureString.
  • Expand popupenter/space on a parameter for full details.
  • Clipboardy to copy parameter value or path.
  • Scroll memory — cursor position restored when navigating back.
SQS
  • Queue browser — message counts (visible, in-flight, delayed), queue type, visibility timeout, redrive policy.
  • Non-destructive peek — press enter to receive messages with visibility timeout 0 — messages stay in the queue.
  • Message inspection — navigate messages, view auto-formatted JSON bodies, expand in a scrollable popup.
  • Queue details popup — press space to view full queue attributes.
  • Clipboardy to copy queue URL or message body.
  • Search/filter/ to filter queues by name.

Keybindings

Global
Key Action
r Change region
s Change service
Ctrl+C Quit
CloudWatch Logs
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
H Tailing Set highlight fields (jq syntax: .level .message)
F Tailing Toggle filter by highlighted fields
f Tailing Toggle fullscreen
h/l or ←/→ Fullscreen Scroll horizontally
x or q/esc Tailing Stop tailing
j/k or ↑/↓ Popup Scroll content
pgup/pgdn Popup Page scroll
esc Popup Close
S3
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)
A Browse Load all pages + select all
d Browse Download selected (recursive)
p Browse Preview text file
y Browse Copy S3 URI
esc/backspace Browse Go back
DynamoDB
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
esc/backspace/h Items Go back to tables
j/k or ↑/↓ Popup Scroll content
pgup/pgdn Popup Page scroll
esc Popup Close
Lambda
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
SSM Parameter Store
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
SQS
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

Architecture

Sacha uses a layered architecture built on Bubble Tea:

cmd/sacha/main.go          CLI entry point (Cobra)
internal/config/            Configuration (CLI > env > file > defaults)
internal/aws/               AWS SDK v2 abstraction + Service interface
internal/<service>/          Domain clients and types per service
internal/ui/<service>/       Bubble Tea models and views per service
internal/ui/app/             Main app shell (region/service switching)

Each service implements the awsx.Service interface and is registered in main.go. See the Contributing Guide for how to add a new service.


Versioning

Sacha follows semantic versioning. Releases are tagged vMAJOR.MINOR.PATCH and automatically built via GoReleaser:

  • Pre-built binaries for Linux, macOS, Windows (amd64 + arm64)
  • Homebrew tap updates
  • SHA256 checksums
  • Auto-generated changelogs

Browse all releases: github.com/Sachamama/sacha/releases


Contributing

Contributions are welcome! Please read the Contributing Guide for details on the development workflow, coding standards, commit conventions, and how to add new AWS services.


License

MIT © Sachamama

Directories

Path Synopsis
cmd
sacha command
internal
aws
ec2
s3
sqs
ssm
version
Package version provides build-time version information.
Package version provides build-time version information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL