Interactive AWS SSO credential manager with CLI and web UI.
- Auto-discovery — Scans
~/.aws/configfor SSO profiles (legacy and sso_session) - Status dashboard — View credential validity with expiry countdown
- Multi-select refresh — Refresh multiple profiles at once with SSO device auth
- Auto-refresh daemon — Background process to keep credentials fresh
- Built-in web UI — Toggle a web server from the CLI with
wfor a browser-based dashboard - Desktop notifications — Alerts when credentials expire (macOS/Linux)
- Persistent settings — Notifications, favorites, web server, port — all saved across sessions
- AWS CLI v2 configured with SSO profiles in
~/.aws/config
brew install tux86/tap/ssomaticGrab the latest binary for your platform from Releases:
| Platform | Binary |
|---|---|
| macOS (Apple Silicon) | ssomatic-darwin-arm64.bin |
| Linux (x64) | ssomatic-linux-x64.bin |
| Linux (ARM64) | ssomatic-linux-arm64.bin |
chmod +x ssomatic-*.bin
mv ssomatic-*.bin /usr/local/bin/ssomaticRequires Bun >= 1.0.
git clone https://github.com/tux86/ssomatic.git
cd ssomatic
bun install
bun run build
./dist/ssomaticssomatic # Launch the CLIPress w to toggle the built-in web UI server. The URL is shown at the bottom of the terminal. Web server state and port are saved in settings.
bun run start # Run from source
bun run dev # Run with --watch (auto-restart on changes)
bun run build # Build web assets + compiled binary
bun run lint # Run ESLintssomatic/
├── src/
│ ├── aws/ # Shared AWS credential logic (sso.ts, aws.ts, utils.ts)
│ ├── cli/ # Terminal UI (React/Ink) — entry point
│ │ ├── index.tsx # Main app + web server toggle
│ │ ├── components/ # Ink UI components
│ │ └── hooks/ # useIdentity, useCopy
│ └── web/
│ ├── server.ts # Bun HTTP server + RPC bridge
│ └── client/ # Web UI SPA (React/Vite/Tailwind)
├── dist/ # Build output (single binary, web assets embedded)
└── package.json
| Key | Action |
|---|---|
↑/↓ or j/k |
Navigate |
Enter |
Select |
Space |
Toggle selection |
a |
Select all / none |
w |
Toggle web server |
c |
Copy URL |
Escape |
Back |
q |
Quit |
Uses Conventional Commits and semantic-release.
Made with ❤ by tux86

