Support multiple profiles (instances/accounts)
- Dominant language
- Go
- Stars
- 8
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
### Is your feature or enhancement related to a problem? Please describe.
The CLI stores a single instance in `~/.chatwoot/config.yaml` (base URL + account ID, with the token in the OS keyring). If you work across more than one Chatwoot there's no way to keep them side by side: a self-hosted staging vs production, an agency with several client accounts, or one person who belongs to multiple accounts. The only option today is re-running `auth login`, which overwrites the saved login every time you switch. `internal/config/CLAUDE.md` already lists this as a TODO ("Add profile support (multiple saved credentials)").
### Describe the solution you'd like
Named profiles, following the CLI's existing noun grammar:
```
chatwoot auth login --profile staging # save a second instance
chatwoot profiles # list saved profiles
chatwoot profile staging use # set the default
chatwoot --profile staging convs # one-off override for one command
```
Resolution order: `--profile` flag, then `CHATWOOT_PROFILE`, then a configured default, then `default`. Each profile keeps its own token in the keyring. The existing flat config would migrate into a `default` profile on first load, so current setups keep working with no re-login.
### Describe alternatives you've considered
- Re-running `auth login` to switch instances (the status quo, loses the previous login each time).
- `CHATWOOT_API_KEY` plus `-a` for the account, but the env var is global, so it can't hold more than one instance at once and still needs the matching base URL.
- Hand-managed config files or per-shell wrappers, which is the manual version of what profiles would do.
### Additional context
I run a few instances and would be glad to open a PR for this if it's a direction you'd accept.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.