diff --git a/src/acp-agent.ts b/src/acp-agent.ts index 972c28f..9ce6404 100644 --- a/src/acp-agent.ts +++ b/src/acp-agent.ts @@ -1425,7 +1425,7 @@ export class ClaudeAcpAgent implements Agent { ); } - const models = await getAvailableModels(q, initializationResult.models, settingsManager); + const models = await getAvailableModels(q, initializationResult.models, settingsManager, options.model); const availableModes = [ { @@ -1619,6 +1619,7 @@ async function getAvailableModels( query: Query, models: ModelInfo[], settingsManager: SettingsManager, + optionsModel?: string, ): Promise { const settings = settingsManager.getSettings(); @@ -1631,7 +1632,18 @@ async function getAvailableModels( } } - await query.setModel(currentModel.value); + if (optionsModel) { + // Model was already passed via query Options at CLI startup time. + // Resolve it against available models for currentModelId, but skip + // setModel() to avoid triggering a /model command that leaks into + // the event stream. + const match = resolveModelPreference(models, optionsModel); + if (match) { + currentModel = match; + } + } else { + await query.setModel(currentModel.value); + } return { availableModels: models.map((model) => ({