Separating Claude Code Personal Sub and Claude Code Company Sub
It's surprisingly easy
alias cc="CLAUDE_CODE_NO_FLICKER=1 claude --dangerously-skip-permissions --teammate-mode auto"alias ccl="CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_USE_VERTEX=1 CLOUD_ML_REGION=global ANTHROPIC_VERTEX_PROJECT_ID=tech-innovation-prod ANTHROPIC_MODEL=claude-opus-4-6[1m] ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6[1m] claude --dangerously-skip-permissions --teammate-mode auto"It's surprisingly easy
Why? Multi-tenant environments. First, we need to understand a few differences between environments:
So
Most people physically separate their tenancy, such as Claude Code, from their personal vs. work laptops. So in most cases, it's not a big deal.
But when you need multi-tenancy, it becomes super stressful. For example, say you have two different toolkits:
Most MCP auth states or code harnesses don't support profiles, so you can only log in to one.
So therefore... a natural evolution was to have both:
to physically isolate tenancies.
Now we've solved the multiple-profile issue, but the client's problems persist. Now let's get back to the environments:
All MCP auth or toolkit auth info should always be saved in the Agent Runtime Environment IMHO. However, a surprising number of harnesses tie them to the LLM server (such as Codex Apps or Claude.ai Plugins) or put them in the end-user UI (Claude Desktop or Codex Desktop).
Now the problem is:
The only way to reliably isolate different auth information is thus:
Then
are both isolated VPS, and
This way, you can provide different toolkits, creating multiple dev environments.
shortest path, negative possible.
OPT[v,k]=min(OPT[v,k−1],OPT[u,v]+w(u,v))The set of vertices reachable from source s in the residual graph is one part of the partition. Cut capacity cap(A,B)=∑out Ac(e).
∣f∣=e out of X∑f(e)−e into X∑f(e)Given (G,s,t,c∈N+), start with f(u,v)=0 and Gf=G. While an augmenting path is in Gf, find a bottleneck. Augment the flow along this path and update the residual graph Gf. O(∣f∣(V+E)).
Ford-Fulkerson, but choose the shortest augmenting path.
For any flow f and any (A,B) cut, ∣f∣≤cap(A,B). For any flow f and any (A,B) cut, ∣f∣=∑f(s,v)=∑u∈A, v∈Bf(u,v)−∑u∈A, v∈Bf(v,u)
To reduce a problem Y to a problem X (Y≤pX) we want a function f that maps Y to X such that f is a polynomial time computable and ∀y∈Y is solvable if and only if f(y)∈X is solvable.
Describe how to construct a flow network. Claim "This is feasible if and only if the max flow is …". Prove both directions.
If a standard problem and its dual are feasible, both are feasibly bounded. If one problem has an unbounded solution, then the dual of that problem is infeasible.
| P\D | Feasibly Bounded | Feasibly Unbounded | Infeasible |
|---|---|---|---|
| Feasibly Bounded | Possible | Impossible | Impossible |
| Feasibly Unbounded | Impossible | Impossible | Possible |
| Infeasible | Impossible | Possible | Possible |
To reduce a decision problem Y to a decision problem X (Y≤pX), find a function f that maps Y to X such that f is poly-time computable and ∀y∈Y is YES if and only if f(y)∈X is YES.
Show X is in NP, Pick problem NP-complete Y, and show Y≤pX.
alias cc="CLAUDE_CODE_NO_FLICKER=1 claude --dangerously-skip-permissions --teammate-mode auto"alias ccl="CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_USE_VERTEX=1 CLOUD_ML_REGION=global ANTHROPIC_VERTEX_PROJECT_ID=tech-innovation-prod ANTHROPIC_MODEL=claude-opus-4-6[1m] ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-6[1m] claude --dangerously-skip-permissions --teammate-mode auto"