You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Multi-model session UX: changing orchestrator and worker separately #15
In a session using separate orchestrator and worker models, changing models is unclear and slow.
Current behavior / pain points:
If I have picked both orchestrator and worker models, changing both in the same session appears to require running /model twice.
There is no easy way to see which model is currently assigned to orchestrator and which to worker during a session.
If the orchestrator model limit is reached, I can use /model to switch it.
If the worker agent model limit is reached mid-task, it is unclear how to change the worker model specifically.
Requested improvements
Add a command or status output to show current session model assignments:
orchestrator model
worker model
Make /model support explicit role targeting, for example:
/model orchestrator <model>
/model worker <model>
or /model --orchestrator <model>
/model --worker <model>
Document current default behavior clearly:
If /model without a role changes both models, say so.
If it changes only one role, say which role and provide an easy way to change the other role.
Why this matters
For long-running sessions with model limits, users need to switch models without losing context or guessing which role will change. Clear role-specific model management would make multi-agent sessions much easier to operate.
Addressed in integration branch integrate/open-prs-and-issues (PR #16):
ultracode status — new quick health command (mac/Linux/WSL; Windows via Start-UltraCode.ps1 -Status) that reports proxy reachability and related service state without digging through logs.
/healthz — now includes an orchestrator_worker field so you can see whether the orchestrator worker subprocess is wired up and healthy.
Docs — HOW_IT_WORKS.md and TROUBLESHOOTING.md updated with status/healthz usage and common failure modes.
Note on /model role targeting: UltraCode-Shim is a proxy/router — it cannot force Claude Code's in-session /model picker to target a specific role (e.g. only subagent/orchestrator). Session model selection stays on the Claude Code side; the shim only routes API traffic and preserves/restores the global default on launcher exit (PR #12). Role-specific model assignment would need Claude Code itself to expose that.
ultracode status — shows current orchestrator and worker model assignments for the session
/healthz — exposes orchestrator and worker model info for programmatic checks
Full documentation of current /model behavior and multi-model session UX
What we cannot implement:
/model orchestrator <model> / /model worker <model> — role-targeted /model subcommands are Claude Code's built-in model picker, not something the UltraCode proxy can intercept or extend. The proxy routes traffic; it does not own the /model UI.
Worker-only switching today:
Use the Worker → X entry in Claude Code's /model picker to change only the worker model without touching orchestrator.
Marking as completed for the proxy-side improvements; the picker UX remains upstream in Claude Code.
Activity
OnlyTerp commentedon Jun 11, 2026
Addressed in integration branch
integrate/open-prs-and-issues(PR #16):ultracode status— new quick health command (mac/Linux/WSL; Windows viaStart-UltraCode.ps1 -Status) that reports proxy reachability and related service state without digging through logs./healthz— now includes anorchestrator_workerfield so you can see whether the orchestrator worker subprocess is wired up and healthy.Docs —
HOW_IT_WORKS.mdandTROUBLESHOOTING.mdupdated with status/healthz usage and common failure modes.Note on
/modelrole targeting: UltraCode-Shim is a proxy/router — it cannot force Claude Code's in-session/modelpicker to target a specific role (e.g. only subagent/orchestrator). Session model selection stays on the Claude Code side; the shim only routes API traffic and preserves/restores the global default on launcher exit (PR #12). Role-specific model assignment would need Claude Code itself to expose that.fix: remaining PR #13 + issues #14/#15 (post #11/#12 merge)
Merge pull request #16 from OnlyTerp/integrate/open-prs-and-issues
OnlyTerp commentedon Jun 11, 2026
Partial fulfillment — shipped in PR #16
What we shipped:
ultracode status— shows current orchestrator and worker model assignments for the session/healthz— exposesorchestratorandworkermodel info for programmatic checks/modelbehavior and multi-model session UXWhat we cannot implement:
/model orchestrator <model>//model worker <model>— role-targeted/modelsubcommands are Claude Code's built-in model picker, not something the UltraCode proxy can intercept or extend. The proxy routes traffic; it does not own the/modelUI.Worker-only switching today:
/modelpicker to change only the worker model without touching orchestrator.Marking as completed for the proxy-side improvements; the picker UX remains upstream in Claude Code.