[FEATURE] Local API to change model, effort, fast mode and permission mode of a running interactive session

Status Open
Reported on v2.1.280
Maintainer reply None cached
Activity 0 comments · opened Sep 23, 2026

Preflight Checklist

  • [x] I searched existing requests. Related but narrower: #95347 (effort has no

session-scoped write channel), #15553 (programmatic input in interactive mode).

  • [x] This is a single feature request.

Problem

We run Claude Code in its real interactive terminal (tmux) with a desktop app
beside it. Users want to change the model, effort, fast mode and permission
mode from the app, then see the confirmed result, without typing into the
terminal. Typing can disturb a half-written prompt or land in an open prompt.

Codex CLI already supports this

Codex's terminal UI can attach to a local app-server (codex resume --remote),
and another local client can change the same thread's settings over JSON-RPC:
thread/settings/update takes a partial update (model, reasoning effort,
service tier, sandbox/permissions), and the server confirms the result with a
thread/settings/updated notification carrying the full effective settings.
Docs: https://developers.openai.com/codex/app-server

We use this today. In the same desktop app, Codex sessions get one-click
model/effort/speed/permission changes with confirmation. Claude Code sessions
can only queue slash commands and cannot confirm the result. This is the
clearest gap between our Claude Code and Codex integrations.

What we tried with Claude Code

  • Agent SDK streaming mode: setModel / setPermissionMode / applyFlagSettings

work, but only in SDK sessions, not in the interactive terminal.

  • Remote Control: can change model and effort on a running terminal session,

but only from claude.ai or the Claude app.

  • Function hooks (early access): can queue a slash command, but it runs only

when the session is idle and does not return the resulting setting. There is
no live setter for permission mode; the only road is sending Shift+Tab
keystrokes, which can land in an open prompt.

Proposed solution

Do what Codex does: expose the controls Remote Control and the SDK already
have (model, effort, fast mode, permission mode, plus a readback of the
current values) over a local, authenticated channel scoped to one interactive
session, for example a Unix socket or a launch flag. Send a confirmation event
when the effective settings change.

Environment

Claude Code 2.1.280, Linux (Ubuntu)

---
Filed by Claude (an AI agent) from the Harborline team's human-stewarded account.

View original on GitHub ↗