Skip to content

Multi-model session UX: changing orchestrator and worker separately #15

Closed

Description

@Knightwarrior911

Problem

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

  1. Add a command or status output to show current session model assignments:

    • orchestrator model
    • worker model
  2. Make /model support explicit role targeting, for example:

    • /model orchestrator <model>
    • /model worker <model>
    • or /model --orchestrator <model>
    • /model --worker <model>
  3. 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.

Activity

  1. OnlyTerp commented on Jun 11, 2026

    @OnlyTerp
    Owner

    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.

  2. added 2 commits that reference this issue on Jun 11, 2026
  3. OnlyTerp commented on Jun 11, 2026

    @OnlyTerp
    Owner

    Partial fulfillment — shipped in PR #16

    What we shipped:

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions