|
|
|
Your access tokens live in your operating system's native secret vault, never on disk.
One command to jump between projects and clients. π
Tired of the endless
supabase logoutβsupabase loginβ paste token dance every time you switch project or client?supawho saves each account once and lets you jump between them in seconds β securely, with no tokens on disk.
| π Secure by design | Tokens live in the OS secret store β encrypted, never written to a file |
| π Know who is who | supawho whoami maps every account to its real email + organizations |
| π₯οΈ Truly cross-platform | One static binary for macOS, Linux and Windows. No runtime to install |
| β‘ Instant switching | supawho use client-a and you're logged in |
| π Self-updating | supawho upgrade keeps you current on any OS |
| πΊ Installs everywhere | Homebrew, .deb/.rpm/.apk packages, or a one-line script |
# 1. Install (macOS shown β Linux & Windows below)
brew install EliaTolin/tap/supawho
# 2. Use it
supawho add work sbp_your_token # save an account (once)
supawho use work # switch to it in a second
supawho whoami # forgot which is which? map them allNot on macOS? Grab your one-liner from Installation β
install.shfor Linux,install.ps1for Windows.
Pick your platform β every option gives you the same single, dependency-free binary.
brew install EliaTolin/tap/supawhoPrefer a script or a raw binary?
curl -fsSL https://raw.githubusercontent.com/EliaTolin/supawho/main/install.sh | bashOr grab the Darwin archive from the releases page and drop the binary in your PATH.
curl -fsSL https://raw.githubusercontent.com/EliaTolin/supawho/main/install.sh | bashNative packages (.deb / .rpm / .apk)
Download the package for your distro from the releases page, then:
# Debian / Ubuntu
sudo dpkg -i supawho_*_Linux_x86_64.deb
# Fedora / RHEL
sudo rpm -i supawho_*_Linux_x86_64.rpm
# Alpine
sudo apk add --allow-untrusted supawho_*_Linux_x86_64.apkβΉοΈ Linux needs a Secret Service provider (GNOME Keyring, KWallet, β¦) running to store tokens.
irm https://raw.githubusercontent.com/EliaTolin/supawho/main/install.ps1 | iexPrefer the raw binary?
Download supawho_*_Windows_x86_64.zip from the releases page, extract supawho.exe, and add it to your PATH.
Requires Go 1.25+:
git clone https://github.com/EliaTolin/supawho.git
cd supawho
go install .- Open supabase.com/dashboard β profile icon (top right)
- Account preferences β Access Tokens
- Generate new token, name it, and copy it
π‘ The token starts with
sbp_and is shown only once β copy it right away.
Then save it:
supawho add myproject sbp_xxxxxxxxxxxxx| Command | Description |
|---|---|
supawho |
Interactive account picker |
supawho add <name> <token> |
Save a new account |
supawho use <name> |
Switch to an account |
supawho list |
Show all saved accounts |
supawho whoami [name] |
Reveal the email + organizations behind each account |
supawho find <project-ref> |
Find which account owns a project |
supawho rename <old> <new> |
Rename a saved account |
supawho remove <name> |
Delete an account |
supawho upgrade |
Update to the latest version |
supawho version |
Print the installed version |
Just run supawho with no arguments:
___ _ _ ___ ___ _ _ _ _ ___
/ __|| | | | _ \/ _ \| | | | || |/ _ \
\__ \| |_| | _/ (_) | |/\| | __ | (_)
|___/ \___/|_| \__\_\__/\__|_||_|\___/
π Who are you today?
Select an account:
1) myproject
2) another-project
Enter number (1-2):
Got a dozen accounts and can't remember whose is whose? supawho whoami asks Supabase and maps each one to its email and organizations β a revoked token is flagged on its own row without breaking the rest:
Add a name to look up a single account: supawho whoami client-a.
The reverse lookup: paste a Supabase project ref and supawho find tells you which saved account it lives in.
$ supawho find sjslmvggunljemhwbkgm
β Found in account 'aurora'
Project almanaccolo
Reference sjslmvggunljemhwbkgm
Organization AuroraDigital
Region eu-central-1
Status ACTIVE_HEALTHY
Email mail@auroradigital.it
Account aurora
Switch to it: supawho use aurora
supawho tells you when a new version ships, and updates itself with one command:
supawho upgradeIt downloads the latest release, verifies its checksum, and swaps the binary in place. If supawho was installed through a package manager, it won't fight it β it points you to the right command instead:
| Installed via | How it updates |
|---|---|
| Homebrew | brew upgrade supawho |
| Install script / raw binary | supawho upgrade |
.deb / .rpm / .apk |
your system package manager |
Prefer silence? Set
SUPAWHO_NO_UPDATE_CHECK=1to disable the background version check.
Your tokens never touch the filesystem. They live in your operating system's native secret store β the same encrypted vault the OS uses for passwords and certificates:
- macOS β Keychain
- Linux β Secret Service (GNOME Keyring / KWallet, via
libsecret) - Windows β Credential Manager
| supawho | Plain-text files | |
|---|---|---|
| Encrypted at rest | β | β |
| Protected by system login | β | β |
| Hidden from other processes | β | β |
Survives an accidental git add . |
β | β |
- macOS, Linux, or Windows β a single static binary, no runtime to install
- On Linux, a Secret Service provider must be running (GNOME Keyring, KWallet, β¦)
- Supabase CLI β installed and available in your
PATH
Account not found when running supawho use
Run supawho list to check the exact name β account names are case-sensitive.
The token stops working after switching
Confirm it's still valid in Supabase Dashboard β Access Tokens, then re-add the account with a fresh one: supawho add <name> <token>.
Linux: Cannot create an item in a locked collection
Your keyring is locked or no Secret Service is running. Unlock your login keyring (GNOME Keyring / KWallet) and try again.
supawho upgrade says it's managed by a package manager
That's on purpose β update through the manager you installed it with (see the table above).
Issues, ideas and PRs are welcome β this project grew cross-platform thanks to the community. Special thanks to @igorgomes3 whose supawho-linux fork sparked the multi-OS rewrite.
Found a bug or want a feature? Open an issue.
MIT β Made with π by Elia Tolin