/awsesh

A charming TUI for AWS SSO session management ✨

Primary LanguageGoMIT LicenseMIT

(AW)Sesh 🔐

Sesh is a simple to use AWS session manager with charm! ✨💕

Sesh is made to easily manage your AWS SSO sessions and accounts. Filter your accounts by name, and quickly switch between them.

✨ Features

  • 🚀 Quick AWS SSO session management
  • 🔄 Fast account switching
  • 🔍 Fuzzy search filtering for accounts
  • 🌐 Open the AWS console in your browser
  • 💅 Charming interactive terminal user interface
  • 🪶 Lightweight and easy to install

Usage

❗ Important Notice ❗

This application will edit your .aws/credentials file to set the keys. If you have a complex setup there already I would recommend backing it up ahead of trying this!

Just type sesh!

sesh

Basic demo

sesh demo

You can edit, remove and manage SSO. As well as set region per account and open in browser.

sesh editing and removing

SSO's with a large number of accounts

There is an issue of running into 429s (too many requests) when trying to fetch roles on a large number of accounts. To sidestep that issue we only automatically fetch the roles if there are less than 30 accounts. If there are more they will be lazy loaded when trying to access the role selection. Hopefully I'll find a better solution in the future.

📋 Prerequisites

  • Go 1.x (if building from source)

🛠️ Created with

📦 Installation

Option 1: Installation Script

Download and run the installation script:

curl -sSL https://raw.githubusercontent.com/elva-labs/awsesh/main/install.sh | bash

Option 2: Manual Installation

  1. Clone the repository:
git clone https://github.com/elva-labs/awsesh.git
cd awsesh
  1. Build the application:
go build -o build/sesh
  1. Move the binary to your PATH:
# For system-wide installation (requires sudo)
sudo cp build/sesh /usr/local/bin/

# For user-local installation
mkdir -p ~/.local/bin
cp build/sesh ~/.local/bin/
  1. Make the binary executable:
chmod +x /usr/local/bin/sesh  # or ~/.local/bin/sesh for user-local installation

🚀 Usage

After installation, you can run sesh from the command line:

sesh

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.