cho.sh
I prefer TUI

I prefer TUI

Why? Multi-tenant environments. Three layers.

  • End-user UI
  • Agent Runtime Environment
  • LLM Inference Server

Run Claude Code on your MacBook and the first two are always local. The third is usually Claude.ai. SSH into a VPS and install Claude Code there, and the first two move to the server. The third is still Claude.ai. Run Claude RC on a VPS and code from your iPad using the Claude app, and the UI is the iPad, the runtime is the VPS, server still Claude.ai.

Most people physically separate tenancies across laptops, personal and work. In most cases, no big deal.

Need on one setup and it becomes super stressful. Say you have two different toolkits.

  • personal (personal Notion, personal Sentry, personal Linear)
  • workplace (company Notion, company Sentry, company Linear)

Most auth states or code harnesses don't support profiles. You can only be logged into one.

So a natural evolution was to have both.

  • a personal VPS with all personal toolkits set up
  • a workplace VPS with all workspace toolkits set up

Tenancies physically split. That fixes the profile problem, but the client problem stays.

Look at the layers again. MCP and toolkit auth should always live in the Agent Runtime Environment IMHO. A surprising number of harnesses tie it to the LLM server instead (Codex Apps, Claude.ai Plugins) or to the end-user UI (Claude Desktop, Codex Desktop).

Both break on multi-tenancy.

  • Auth on the LLM server, and you cannot reuse LLM accounts across tenants.
  • Auth in the end-user UI, and you cannot use the same app to access multiple tenants.

The only way to reliably isolate different auth information is this. SSH into a VPS, run Claude Code there, never use LLM-server plugins. UI and runtime are the isolated VPS, and the LLM server holds no information on the tenancy.

This way you can provide different toolkits, creating multiple dev environments.

Backlinks2