Authentication
argo-rs uses GitHub’s OAuth Device Flow for secure browser-based authentication.
Commands
Login
argo auth login
This will:
- Display a device code
- Open your browser to GitHub’s authorization page
- Wait for you to enter the code and authorize
- Securely store the token in your system keychain
Logout
argo auth logout
Removes stored GitHub credentials from the keychain.
Check Status
argo auth status
Shows whether you’re currently authenticated and displays your GitHub username.
How OAuth Device Flow Works
- argo-rs requests a device code from GitHub
- You visit
https://github.com/login/deviceand enter the code - GitHub authenticates you and grants access to argo-rs
- The token is stored securely in your system keychain
This flow is more secure than storing personal access tokens because:
- No token is ever displayed or copied
- Tokens have limited, well-defined scopes
- Authorization can be revoked from GitHub settings
Token Storage
Tokens are stored securely using your system’s native credential storage:
- macOS: Keychain
- Linux: Secret Service (GNOME Keyring, KWallet, etc.)
See Credential Storage for details.
Troubleshooting
“Not authenticated” Error
Run argo auth login to authenticate.
Token Expired
Re-run argo auth login. The old token will be replaced.
Browser Doesn’t Open
Manually visit https://github.com/login/device and enter the displayed code.