opencode
opencode copied to clipboard
feat(auth): add support for multiple profiles per provider
implements https://github.com/sst/opencode/issues/5391
Summary
- Allow users to store multiple API keys for the same provider with named profiles (e.g., separate OpenRouter keys for different cost tracking)
- Add
auth set-defaultcommand to swap a named profile to become the default
Changes
-
Auth module: Added profile support to get/set/remove, plus
profiles(),hasDefault(),setDefault()functions -
CLI commands:
loginprompts for profile name when default exists,logout/listshow profile names, newset-defaultcommand -
Provider:
parseModel()extracts profile fromprovider:profile/modelformat -
Config: Added optional
profilefield to provider schema -
Errors: Added
ProfileNotFoundErrorandInvalidProfileNameError
Usage
# First login creates default profile
opencode auth login # select openrouter, enter key
# Second login prompts for profile name
opencode auth login # select openrouter, enter "work", enter key
# List shows profiles
opencode auth list
# OpenRouter (default) api
# OpenRouter:work api
# Use profile in model string
opencode --model openrouter:work/claude-sonnet-4
# Swap profiles
opencode auth set-default # select openrouter, select "work"