4 releases

new 0.1.3 Dec 18, 2025
0.1.2 Dec 9, 2025
0.1.1 Dec 3, 2025
0.1.0 Nov 20, 2025

#2 in #aws-profile


Used in rusticity

Apache-2.0

2MB
46K SLoC

Rusticity - Terminal UI for AWS

A snappy terminal UI for AWS written in 🦀 Rust, inspired by 🧬 Helix editor.

⚠️ Early Development: Rusticity is in active development. Expect breaking changes, bugs, and evolving features. Use at your own risk and please report any issues you encounter!

Features

  • 📟 Terminal UI using Ratatui
  • ⌨️ Helix-like keybindings with Normal and Insert modes
  • 🪟 Multi-pane support
  • 🏗️ Modular architecture with separate crates:
    • rusticity-core: AWS SDK integration
    • rusticity-term: Terminal UI components
    • rusticity: Main binary

Supported Services

  • 📊 CloudWatch Logs: Log groups, log streams, log events
  • 🔍 CloudWatch Logs Insights: Query and analyze logs
  • 🚨 CloudWatch Alarms: View and manage alarms
  • 🪣 S3: Browse buckets and objects
  • 📦 ECR: Elastic Container Registry (public and private)
  • ☁️ CloudFormation: View and manage stacks
  • λ Lambda: Function management
  • 👤 IAM: Identity and Access Management

Want to see support for another AWS service? Request it here or upvote existing requests!

Architecture

Inspired by Helix editor (https://github.com/helix-editor/helix), the project is split into:

  • rusticity-core: Core AWS functionality (SDK clients, API calls, data models)
  • rusticity-term: Terminal UI layer (event handling, keymaps, rendering, pane management)
  • rusticity: Main application binary

Installation

From crates.io

cargo install rusticity

From source

git clone https://github.com/clumsy/rusticity.git
cd rusticity
cargo install --path rusticity

Configuration

Configure AWS credentials using standard AWS methods:

# Using environment variables
export AWS_DEFAULT_REGION=your-region
export AWS_PROFILE=your-profile
export AWS_ACCESS_KEY_ID=your-key
export AWS_SECRET_ACCESS_KEY=your-secret

# Or use AWS CLI configuration
aws configure

Column Customization

Customize column names by adding a [columns] section to ~/.config/rusticity/config.toml:

[columns.lambda.function]
name = "Function Name"
description = "Description"

[columns.cw.group]
log_group = "Log Group"
stored_bytes = "Storage"

Usage

# Run the application
rusticity

# With specific AWS profile and region
AWS_PROFILE=your-profile AWS_DEFAULT_REGION=your-region rusticity

Development

The project uses a Cargo workspace with three crates:

rusticity/
├── rusticity-core/    # Core AWS SDK integration
├── rusticity-term/    # Terminal UI components
└── rusticity/         # Main binary

Setup

# Clone and build
cargo build

# Run tests (also installs git hooks automatically)
cargo test

Git hooks will automatically check formatting and linting before commits.

Run

# Run the application
cargo run

# With specific AWS profile and region
AWS_PROFILE=your-profile AWS_DEFAULT_REGION=your-region cargo run

Testing

cargo test runs all checks including formatting, linting, and tests:

cargo test  # Runs fmt check, clippy, and all tests

License

Apache-2.0

Dependencies

~181MB
~2.5M SLoC