openai / openai/codex

Slash-command settings should be session-scoped by default

Open
#39,535 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI config session TUI
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of Codex are you using?

Codex CLI 0.148.0

What platform is your computer?

macOS arm64

What issue are you seeing?

Manual slash-command settings are unexpectedly sticky across unrelated sessions.

I used /fast as a one-off change for the current thread. Codex wrote service_tier = "fast" to ~/.codex/config.toml, so later fresh Codex processes and unrelated agents inherited the accelerated tier even though their launch commands did not request it.

The broader problem is not limited to /fast: most or all interactive slash-command selectors—such as model, reasoning effort, personality, and service tier—should be scoped to the current thread/session by default. A manual experiment in one conversation should not silently change defaults for future conversations.

What steps can reproduce the bug?
  1. Start Codex without an explicit service-tier override.
  2. Use /fast, intending it as a one-off current-thread change.
  3. Observe that ~/.codex/config.toml gains service_tier = "fast".
  4. Start a fresh, unrelated Codex process without a service-tier argument.
  5. Observe that the new process inherits Fast.
What is the expected behavior?

Slash-command changes should affect only the current thread/session by default.

Persisting a choice for future sessions should require a separate, explicit action such as Make default, or a clearly labeled confirmation. The UI should distinguish:

  • the effective value for the current thread;
  • the configured default for future threads; and
  • whether the current action will mutate persistent configuration.

This should apply consistently to /fast, /model, reasoning-effort, personality, and similar interactive selectors unless a setting is inherently global and clearly presented as such.

Why this matters

The current behavior makes one-off experimentation unsafe and can unintentionally change cost, latency, or behavior across unrelated agents and workstreams.

A command-line override such as -c service_tier=default is a workaround, but callers should not need to defensively override a persistent mutation they never intentionally made.

Additional information

Feedback was also submitted through /feedback without logs. Feedback thread ID: 01a01bb2-7780-7232-ba37-8d749e19ec8b.

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 tracing how interactive slash-command selectors update the current thread and how those changes are written to ~/.codex/config.toml. Compare /fast with model, reasoning-effort, and personality handling, then determine how session values and persistent defaults should be separated. Done means one-off changes no longer affect unrelated future sessions and explicit default changes remain distinguishable.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.