openai / openai/codex

Add explicit Side Chat model defaults to config.toml

Open
#44,463 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app config enhancement
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What variant of Codex are you using?

App (ChatGPT desktop app, local Codex)

What feature would you like to see?
Problem

The global model and model_reasoning_effort settings are appropriate for long-running main tasks, but Side Chats often serve a different workload: quick questions, explanations, and lightweight investigation. Using the same high-capability/high-effort default for both is slower and consumes more usage than necessary. Manually switching every newly created Side Chat is repetitive and easy to forget.

Proposed configuration

Add deterministic, declarative Side Chat defaults to config.toml:

model = "gpt-6-astra"
model_reasoning_effort = "high"

[side_chat]
model = "gpt-5.6-luna"
model_reasoning_effort = "low"

The exact key name is flexible; the important part is having a supported configuration scope that applies only when creating a Side Chat.

Suggested precedence
  1. An explicit model/effort selection made inside an individual Side Chat
  2. Trusted project-scoped side_chat.* settings
  3. User-level side_chat.* settings
  4. Global model and model_reasoning_effort
  5. The product-recommended default
Expected behavior
  • A new Side Chat starts with the configured Side Chat model and reasoning effort.
  • Creating a Side Chat does not change the main task's model or reasoning effort.
  • When side_chat.* is absent, existing behavior remains unchanged and falls back to the global/default selection.
  • Changing the model in one Side Chat affects only that Side Chat unless the user explicitly saves it as a default.
  • Invalid multiline Side Chats and Side Chats opened from queued messages use the same configured default.
  • Invalid or unavailable Side Chat models produce the same clear validation/fallback behavior as the global model setting.
  • The desktop settings UI should expose these fields alongside the existing model default controls, when available.
Use case

I want to run implementation work in the main task with Astra or Sol at a higher reasoning effort, while consistently opening temporary Side Chats with Luna at low effort for quick questions.

Additional information

This is intentionally more specific than #38442. That issue proposes remembering the last Side Chat model and effort within a project. This request is for an explicit, deterministic config.toml contract with documented fallback and override precedence, suitable for reproducible personal and project configuration.

Environment observed:

  • ChatGPT desktop app 26.903.61454 (macOS)
  • Bundled Codex CLI 0.153.4

The current configuration reference documents the global model setting but no Side Chat-specific model scope.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the config.toml parsing and configuration reference for the existing global model settings, then trace how Side Chats are created and how the desktop settings UI exposes model defaults. Done means supported side_chat model and reasoning-effort defaults follow the stated precedence without changing main tasks, preserve current fallback behavior, and cover validation and queued or multiline Side Chats.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.