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:

Terminal window
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 acme

Bind each client’s repositories

Terminal window
cd ~/code/acme-webapp
aisw workspace bind . --context acme
cd ~/code/acme-api
aisw workspace bind . --context acme

Repeat for every repository tied to that client. Multiple repositories can bind to the same context.

Turn on enforcement once

Terminal window
aisw workspace guard --mode strict

This 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:

Terminal window
aisw context use acme

Or 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.

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

Terminal window
aisw context list
aisw workspace status

Confirms 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.