accounts
Read when: using more than one WhatsApp account, choosing the active account, or migrating from manual --store directories.
wacli accounts manages named accounts. Each account is an isolated store directory with its own WhatsApp linked-device session, local mirror database, media files, and lock.
#Commands
wacli accounts list
wacli accounts add NAME [--no-auth]
wacli accounts use NAME
wacli accounts show NAME
wacli accounts remove NAME
Use a named account with any command:
wacli --account work chats list
wacli --account personal send text --to 1234567890 --message "hi"
#Config
The default config path is <base>/config.yaml, where <base> is the default store root (~/.wacli on macOS and existing legacy Linux installs, otherwise ~/.local/state/wacli on Linux).
default_account: personal
accounts:
personal:
store: accounts/personal
work:
store: accounts/work
Relative store paths resolve from the config directory. Absolute paths are allowed for custom layouts.
#Selection Rules
Store selection is intentionally explicit:
--store DIRuses that exact store and cannot be combined with--account.--account NAMEresolvesNAMEfromconfig.yaml.WACLI_STORE_DIRkeeps its existing override behavior for scripts and one-off stores.- If
default_accountis set, commands use that account. - Otherwise existing single-store behavior remains: XDG state dir on Linux, or
~/.waclielsewhere.
Account names may contain letters, digits, ., _, and -, and must start with a letter or digit.
#Notes
accounts add NAMEcreates the isolated store and then runs the normal auth/bootstrap flow for that account. Use--no-authto only write config and create the store.- Locks are per account store, so
wacli --account personal sync --followandwacli --account work chats listdo not block each other unless they share the same store path. - Cross-account search or status should be explicit aggregate commands, not accidental shared database queries.
- Use
--store DIRfor one-off migration/debugging against an old manual store.