Cross-tool · Tested with aisw v0.3.7 · Updated July 16, 2026
Manage Multiple Client Accounts Across Claude Code, Codex CLI, and Gemini CLI
Create one aisw context per client, mapping a Claude Code, Codex CLI, and Gemini CLI profile for each. Bind each client's repositories to their context with workspace guardrails so aisw blocks or warns if the wrong client's account is active. Switch between clients with aisw context use <client>.
Freelancers and consultants juggling several clients face the same problem from three directions at once: separate Claude Code accounts, separate Codex CLI accounts, separate Gemini CLI accounts, and separate repositories that must never cross-contaminate. This guide combines contexts and workspace guardrails into one setup built specifically for that.
Set up a context per client
Repeat this for each client:
aisw add claude acme --api-key "$ACME_CLAUDE_KEY"aisw add codex acme --api-key "$ACME_OPENAI_KEY"aisw add gemini acme
aisw context create acme \ --claude acme \ --codex acme \ --gemini acmeBind each client’s repositories
cd ~/code/acme-webappaisw workspace bind . --context acme
cd ~/code/acme-apiaisw workspace bind . --context acmeRepeat for every repository tied to that client. Multiple repositories can bind to the same context.
Turn on enforcement once
aisw workspace guard --mode strictThis applies to all bound repositories across all clients — you only need to set it once, not per client.
Daily use
Switching to a client’s full setup, whether or not you’re currently in one of their repositories:
aisw context use acmeOr just cd into a bound repository and let the shell hook catch a mismatch automatically before it launches a coding agent with the wrong account.
Desktop method (coming soon)
AI Switcher Desktop is currently in private testing and not yet available for public download. The steps below reflect the current build; use the CLI method above until it ships.
Screenshot placeholder
AI Switcher Desktop Contexts screen showing a list of client contexts, each with a repository count and last-used timestamp
The Contexts list in AI Switcher Desktop shows every client at a glance, including how many repositories each is bound to and when it was last active — useful for a quick sanity check before a call or a handoff.
Verify the result
aisw context listaisw workspace statusConfirms every client context exists with all three tools mapped, and that the repository you’re currently in (if any) matches its expected context.
Common problems
If two clients’ repositories are accidentally bound to the same context, aisw workspace status will show both under one context name — re-bind the misassigned repository with the correct --context value to fix it.
Frequently asked questions
How does this scale as I add more clients?
Each client is one more context and one more set of profiles — there's no practical limit, and the workflow is identical whether you have two clients or twenty.
What if a client only needs one of the three tools?
Map only the tools that client actually uses when creating the context. aisw only switches and enforces the tools included.
Can I see which client I'm currently set up for at a glance?
Yes — aisw status shows the active context by name, and if you've bound the current repository, aisw workspace status confirms it matches.