aws-sso-creds is a terminal UI for AWS IAM Identity Center (formerly AWS SSO). It helps you manage generated AWS profiles, browse them quickly, and open the AWS console from your active profile without manually editing ~/.aws/config and ~/.aws/credentials.
- Install the CLI.
- Create your config interactively:
aws-sso-creds initIf you use the CLI often, these shell aliases remove most of the repetitive typing:
alias ao='aws-sso-creds open'
alias aps='eval "export AWS_PROFILE=$(aws-sso-creds select)"'
alias ac='aws-sso-creds -p'apsrunsaws-sso-creds selectand exports the selected profile for you, so you do not need to runexport AWS_PROFILE=...manually.aois a short alias foraws-sso-creds open.acis a short alias foraws-sso-creds -p, which populates roles for the organization you pass in.
- Generate profiles for one configured organization:
aws-sso-creds my-org --populateRoles- Pick and export a profile in one step:
apsThis is equivalent to:
export AWS_PROFILE=$(aws-sso-creds select)- Open the AWS console for the active profile:
aoManual equivalent:
export AWS_PROFILE=my-org-admin
aws-sso-creds open- Creates and maintains an
aws-sso-creds.tomlconfig file. - Populates AWS profiles in
~/.aws/config. - Creates temporary credentials in
~/.aws/credentialswhen requested. - Lets you browse generated profiles in a fuzzy finder.
- Opens the AWS console using the profile in
AWS_PROFILE.
Download a binary for your platform from the GitHub releases page.
Prerequisite: Go 1.17+
Release PRs keep this version updated automatically:
go install github.com/JorgeReus/aws-sso-creds@1.4.3git clone https://github.com/JorgeReus/aws-sso-creds.git
cd aws-sso-creds
go build ./...Run lint locally:
mise lintRun tests locally:
mise testInstall from this repo:
nix profile install github:JorgeReus/aws-sso-credsRun without installing permanently:
nix run github:JorgeReus/aws-sso-credsUse it as a flake input:
{
inputs = {
aws-sso-creds.url = "github:JorgeReus/aws-sso-creds";
};
}Then expose the package from your outputs:
{
outputs = { self, nixpkgs, aws-sso-creds, ... }:
let
system = "aarch64-darwin";
in
{
packages.${system}.default = aws-sso-creds.packages.${system}.default;
};
}By default, aws-sso-creds reads ~/.config/aws-sso-creds.toml.
Example:
error_color = "#fa0718"
information_color = "#05fa5f"
warning_color = "#f29830"
focus_color = "#4287f5"
spinner_color = "#42f551"
[organizations.org1]
url = "https://org1.awsapps.com/start"
prefix = "org1"
sso_region = "us-east-1"
default_region = "us-west-2"
[organizations.org2]
url = "https://org2.awsapps.com/start"
prefix = "org2"
sso_region = "us-west-2"Required fields per organization:
url: AWS start URL for the IAM Identity Center organizationprefix: Prefix used for generated AWS profilessso_region: Region for the IAM Identity Center organization
Optional fields:
default_region: Default AWS region written to generated profilesregion: Legacy fallback. Ifsso_regionis missing,regionis used as the SSO region
Create or update the config interactively:
aws-sso-creds initinit prompts for:
- organization name
- AWS start URL
- prefix
- SSO region
- default AWS region, optional
aws-sso-creds initThis writes or updates ~/.config/aws-sso-creds.toml.
aws-sso-creds my-org --populateRolesThis loads the configured organization, authenticates if needed, and writes AWS SSO profiles to ~/.aws/config.
aws-sso-creds my-org --tempUse this when you want temporary credentials written to ~/.aws/credentials.
aws-sso-creds my-org --forceAuthUse this when cached authentication is stale or you want to re-authenticate explicitly.
aws-sso-creds my-org --noBrowserUse this when you want to complete the flow without auto-launching a browser window.
aws-sso-creds selectThis opens a fuzzy finder previewer for entries in your AWS config and credentials files, then prints the selected profile name to stdout.
export AWS_PROFILE=my-org-admin
aws-sso-creds openopen requires AWS_PROFILE to be set to a profile previously generated by this CLI.
Root command:
aws-sso-creds [flags] [organization]
Subcommands:
init: create or update the config interactivelyselect: choose a profile from the fuzzy finderopen: open the AWS web console forAWS_PROFILEcompletion: generate shell completions
Root flags:
-c, --config: path to the TOML config file-f, --forceAuth: force authentication with AWS SSO-b, --noBrowser: do not open the browser automatically-p, --populateRoles: populate AWS SSO roles in~/.aws/config-t, --temp: create temporary credentials in~/.aws/credentials
Run aws-sso-creds --help or aws-sso-creds [command] --help for the full CLI help text.
When you run aws-sso-creds --help or aws-sso-creds help, the root help output also shows the build version. Local builds without release metadata show Version: dirty; release binaries show the release tag.
Pull requests are welcome.
- Fork the repository.
- Create a feature branch.
- Commit using Conventional Commits.
- Push the branch.
- Open a pull request.
- Pull requests run GitHub Actions CI with
go test ./.... - Pull request commits must follow Conventional Commits so semantic versioning can be derived automatically.
- Pushes to
maindo not publish a release directly. - Pushes to
mainrunrelease-please, which opens or updates a release PR and creates the nextX.Y.Ztag when that PR is merged. - Semver tags matching
X.Y.Zrun GoReleaser and publish GitHub release artifacts. - Configure a
RELEASE_PLEASE_TOKENrepository secret backed by a PAT or GitHub App token. The defaultGITHUB_TOKENdoes not trigger the tag-based release workflow whenrelease-pleasecreates the tag.
Distributed under the MIT License. See LICENSE for details.
Jorge Reus - LinkedIn


