GSD CLI

GSD CLI (Get Stuff Done) is a user-friendly command-line tool designed to simplify authentication and credential management for AWS services. It provides an intuitive interface for managing AWS profiles, authenticating via SSO, and accessing AWS services, so you can focus on getting things done.
Features
- Interactive Configuration: User-friendly interactive prompts for managing AWS profiles
- Simplified Authentication: Authenticate with AWS using SSO or static credentials
- Profile Management: Easily switch between AWS profiles
- Credential Validation: Verify the validity of your current credentials
- Quick Access to AWS Services: Open the AWS Management Console, SSO login page, or specific AWS services directly from the CLI
- User-Friendly Commands: Intuitive commands with clear error messages and helpful output
Installation
Option 1: Download Binary (Recommended)
Visit the Releases page and download the latest version for your platform:
-
For macOS:
# For Apple Silicon (M1/M2)
curl -LO https://github.com/aphexlog/gsd/releases/latest/download/gsd_Darwin_arm64.tar.gz
tar xzf gsd_Darwin_arm64.tar.gz
sudo mv gsd /usr/local/bin/
# For Intel Macs
curl -LO https://github.com/aphexlog/gsd/releases/latest/download/gsd_Darwin_x86_64.tar.gz
tar xzf gsd_Darwin_x86_64.tar.gz
sudo mv gsd /usr/local/bin/
-
For Linux:
# For AMD64
curl -LO https://github.com/aphexlog/gsd/releases/latest/download/gsd_Linux_x86_64.tar.gz
tar xzf gsd_Linux_x86_64.tar.gz
sudo mv gsd /usr/local/bin/
# For ARM64
curl -LO https://github.com/aphexlog/gsd/releases/latest/download/gsd_Linux_arm64.tar.gz
tar xzf gsd_Linux_arm64.tar.gz
sudo mv gsd /usr/local/bin/
-
For Windows:
Download the appropriate ZIP file from the releases page and add it to your PATH.
Option 2: Build from Source
-
Clone the repository:
git clone https://github.com/aphexlog/gsd.git
cd gsd
-
Build the CLI:
go build -o gsd
-
Add the binary to your PATH (optional):
sudo mv gsd /usr/local/bin/
Usage
Authentication
Authenticate with AWS using the login command:
gsd login [profile]
If no profile is specified, the default profile is used. This command automatically detects your AWS SSO profile or prompts you to authenticate.
Profile Management
Switch to a different profile:
gsd switch
You will be presented with an interactive menu to select your profile.
Configuration Management
List all configured profiles:
gsd config ls
Add a new profile interactively:
gsd config add
The CLI will guide you through:
- Profile name selection
- AWS region selection
- Authentication method choice (SSO or Access Keys)
- Required configuration details
Remove an existing profile:
gsd config remove
Provides an interactive menu to:
- Select the profile to remove
- Confirm deletion
Edit an existing profile:
gsd config edit
Interactive interface to:
- Select the profile to edit
- Choose what to modify (Region, SSO Configuration, or Access Keys)
- Update the selected configuration
Open AWS Services
Open the AWS Management Console for the current account:
gsd open
Select "Console (Main)" from the interactive menu.
Open the AWS SSO login page:
gsd open
Select "SSO" from the interactive menu.
Open a specific AWS service:
gsd open
Select the desired service from the interactive menu.
Credential Validation
Check the currently authenticated profile and credentials:
gsd whoami
Example Workflow
-
Add a New Profile:
gsd config add
Follow the interactive prompts to configure your profile.
-
Login:
gsd login my-profile
Authenticate using your configured profile.
-
Switch Profile:
gsd switch
Select a different AWS profile from the interactive menu.
-
Open AWS Console:
gsd open
Select "Console (Main)" to access the AWS Management Console.
-
Check Current Profile:
gsd whoami
View the currently authenticated profile and credentials.
Roadmap
- Add support for additional AWS services
- Improve output formatting (e.g., JSON, tables)
- Integrate secure credential storage
- Add profile import/export functionality
- Enhance interactive configuration options
Contributing
Contributions are welcome! Please submit a pull request or open an issue to suggest improvements or report bugs.
Created by aphexlog
License
This project is licensed under the MIT License.