Every time a new model comes out, you open your sessions one by one and switch the model and effort. With a handful of sessions that's fine, but if you keep a separate session per project, you quickly end up with dozens. That is exactly the chore I faced on September 22, 2026, when Claude Opus 5.5 and GPT-6 Sol and Luna all shipped on the same day.

The short answer: in both the Claude Code desktop app (Claude Code Desktop from here on) and Codex, asking the assistant to "change all my sessions to X" worked, without me touching each session myself. There is no "change everything" button in the UI; instead, the assistant changes the sessions one by one behind the scenes. But what it can reach, when the change takes effect, and how you verify it differ quite a bit between the two.

This article is based on my own run on September 24, 2026, where I changed the settings and then reverted them, plus the official documentation (Claude Code's Desktop and Model configuration pages, and Codex's Models, Config basics and Slash commands pages). It covers the steps and the pitfalls. Claude Code in the terminal (the CLI) is out of scope here.

The bottom line: both change everything on request, but one at a time under the hood

Source: my own test on September 24, 2026 (Claude Code Desktop 2.7032.0 with bundled Claude Code 2.1.280, and the Codex desktop app 26.917.6896.0) and each vendor's official documentation

Claude Code Desktop

Ask, and it changes your other sessions

Changes happen without sending a message. They apply from the next turn and survived an app restart. The one session you're talking to can't be changed.

Codex

Ask, and it changes existing chats too

It changed all 115 existing chats in my setup. But it used internal machinery rather than an official method, and sent one message to each of the 2 open chats. Defaults for new chats go in the config file.

Applies to both

Verify in the UI and the saved values

Asking the model "what's your effort right now?" is unreliable. Keep a record of the old values and re-read every session afterwards.

1. Why you'd want to change them all at once

Both Claude Code Desktop and Codex remember the model and effort per session (per chat). Even if a new model comes out and you decide to use it everywhere from now on, your existing sessions keep running on the old one.

  • Claude Code Desktop: the official docs say you pick the model from the dropdown next to the send button, and that you can change it mid-session. What you change is the session you have open.
  • Codex: on the official Slash commands page, /model and /reasoning both pick the model and reasoning depth for the current chat. Changing the default in the config file does not change the values already saved in existing chats (more on this below).

Effort (how deeply the model reasons) works the same way. For example, Opus 5.5 defaults to medium effort, and many people have rethought the balance between usage and results because of it (see the Opus 5.5 article and the effort setting article). Cost matters too: higher effort means more reasoning tokens, so sessions left on high effort can quietly eat into your usage limits.

So instead of opening each session and switching it, the approach here is to ask the assistant to "change them all to this". Since all you do is make one request, this article calls it a "bulk change."

2. Claude Code Desktop: just ask the assistant

What the official docs say

The Claude Code Desktop documentation has a section called Work across sessions. It says Claude can list your other sessions in the Code tab, read what each one has been doing, and send messages between them, and that you can also ask it to rename or archive a session.

As of September 24, 2026, though, the actions listed in that section are listing, reading, messaging, renaming and archiving. Changing the model or effort isn't mentioned. The tools the app gives the assistant, on the other hand, include one that switches another session's model and one that changes its effort. What follows is what happened when I actually used them. This isn't a documented procedure, so the behavior may change in a future version.

Trying it out

I tested it on 2 sessions that weren't running. Both started on Opus 5.5 at medium effort; I changed them to Sonnet 5 at low effort, checked the result, and then changed them back.

What I confirmed in Claude Code Desktop

Source: my own test (September 24, 2026, Claude Code Desktop 2.7032.0 with bundled Claude Code 2.1.280, Windows 11)

① Ask

From a different session, I asked it to set these 2 sessions to Sonnet 5 at low effort. No message was sent to the target sessions.

② Check the saved values

The assistant re-read the session info and confirmed both were now Sonnet 5 at low. It reported that the change applies from the next turn.

③ Check the UI

When I opened the target sessions, the prompt box showed Sonnet 5 at Low.

④ Survives a restart

After killing the app process and relaunching, they still showed Sonnet 5 at Low. Finally, I set both back to Opus 5.5 at medium and confirmed it.

One thing to watch is how you verify. When I asked one of the changed sessions "what's your effort right now?", it replied "effort is 10", which isn't any of the levels. The model isn't necessarily told its own effort correctly. To check, look at the prompt box in the UI, or have the assistant re-read the saved values.

The rules for changing sessions

Here are the rules I gathered from the descriptions of the tools the app gives the assistant and from how they behaved.

  • Changes apply from the next turn: a turn that is already running finishes on the current model. The model isn't swapped out partway through.
  • Only models listed in the model menu can be chosen: if you name one that isn't in the menu, you get back the list of available options.
  • Effort has 5 levels: low, medium, high, xhigh and max: the app shows them as Low, Medium, High, Extra and Max. The highest level available depends on the model.
  • The session you're talking to can't be changed: the tool refuses on the grounds that a session shouldn't silently change its own cost. Switch the session you made the request from yourself, using its model menu.
  • You may be asked to confirm: according to the tool descriptions, the app asks you to confirm when another session is changed, especially when moving it up to a pricier model or higher effort. I ran my test in Bypass permissions mode (which skips permission prompts), so no confirmation cards appeared. In the default mode, you may have to approve once per session.

3. What Claude Code Desktop can and can't reach

Even if you say "all of them," the assistant can't change sessions it can't see. The Work across sessions section of the official docs describes what it can see as follows.

Session typeCan it be changed on request?Notes
Local sessions in the Code tabYesWhat I tested
SSH and WSL sessions in the Code tabVisible to the assistantListed, but I didn't try changing the model
Cloud sessionsNot visibleStated in the official docs (switch them in the cloud session itself)
Sessions started from the terminal CLI or the VS Code extensionNot visibleNot visible even in the same project folder
The session making the requestNoNot even listed (switch it yourself from the model menu)
Archived sessionsCan be included if you askLeft out of the list by default

Another important point: by default, it only sees the 20 most recently active sessions. The official docs say so, and the app's tool also returns 20 by default. When you ask for "all of them," add "don't stop at 20, list every session." In my setup there were dozens of sessions even without the archived ones.

There's one side effect too. The moment the model or effort changed, that session's "last active" time was set to the current time. If you sort the sidebar by most recent, the order will change. Changing dozens of sessions at once will scramble your usual order, so if that bothers you, organize them with pins or groups beforehand.

4. Codex: defaults in the config file, existing chats one by one on request

In Codex, the approach differs between chats you'll create from now on and chats that already exist.

Future chats: the config file (the official method)

The official Models page explains that you set your local default model with model in config.toml. Effort is model_reasoning_effort. The desktop app, the CLI and the IDE extension all read the same config file.

model = "gpt-6-sol"
model_reasoning_effort = "medium"

The file is ~/.codex/config.toml (on Windows, C:\Users\<username>\.codex\config.toml). If the keys are already there, edit their values instead of adding new lines. Duplicate keys make the file unreadable as a config file.

Watch out for precedence. According to the official Config basics page, command-line options, a project's .codex/config.toml and profiles all take priority over your user config file. If a project sets its own model, changing your user config won't affect that project.

Also, you can't change the default model for Codex cloud chats (the official Models page says this isn't currently possible). Your local config file doesn't reach the cloud.

Existing chats: no official bulk method found

The official way to change an existing chat is to open it and pick from the menu below the prompt box, or to use /model and /reasoning. Both apply only to the one chat you have open, and I couldn't find a button or procedure for changing all chats at once, either in the official docs or in the app.

So I asked Codex to "change everything, including the other chats, to GPT-6 Sol at medium." Codex used the app's internal machinery (the App Server) to load each chat in turn and rewrite its settings.

5. What happened when Codex changed 115 chats

115 is the number of existing chats in my Codex (excluding archived ones). I asked Codex to change all of them to GPT-6 Sol at medium.

Here is the flow, based on the log Codex left after the job (September 24, 2026, Codex desktop 26.917.6896.0, CLI 0.155.0-alpha.16).

The 5 stages Codex went through to change 115 chats

Source: Codex's work log (September 24, 2026)

① Back up

Saved the config file and each chat's stored values so they could be restored.

② Count the targets

Fetched the list through to the last page. Targeted the 115 regular, non-archived chats.

③ Change the defaults

Rewrote the 2 keys in config.toml, then re-read the file to confirm they matched.

④ Change them one by one

Changed 112 chats without sending a message. The 2 chats open in the app and the chat doing the work were changed by sending a short message.

⑤ Check every chat

Read the stored values of all 115 chats counted at the start, read-only. 115/115 were on Sol at medium.

Some chats got a message

Step ④ is where Codex differs most from Claude Code Desktop. Idle chats could be loaded and have just their settings rewritten. But the 2 chats the app currently had loaded couldn't be loaded from outside, because they "already had another writer".

Codex didn't force the lock open or edit the stored data directly. Instead it used the app's "send a message to another chat" feature, attached the model and effort, and sent a short message that only asked for confirmation. That changes the settings, but it also means one turn actually runs in that chat. In other words, a Codex bulk change can, depending on the situation, leave one message in some of your chats.

The config file alone doesn't change existing chats

Even after the defaults were changed in step ③, each existing chat still had its own saved model and effort. Changing the default only affects new chats, so step ④ was needed as a separate job.

This is not an official method

What Codex used is internal machinery included in the installed version. I couldn't find it in the body of the public docs, and there's no guarantee it will work the same way in future versions. Codex itself noted in its log that it doesn't recommend editing the stored data (the database or conversation logs) directly, because the UI state, the saved history and the next turn's settings could drift out of sync. Archived chats, sub-agents, scheduled runs and cloud chats were also out of scope. I haven't checked what the UI shows after restarting the whole app, or verified all 115 chats in the UI.

6. The two side by side

AspectClaude Code DesktopCodex
Bulk-change existing sessions on request?Yes (tested on 2 sessions)Yes (done on 115 chats)
Mechanism usedTools the app gives the assistant (no documented procedure)The app's internal machinery (not an official method)
Is a message sent?NoUsually not (open chats got one message each)
When it takes effectFrom the next turnFrom the next turn
The chat making the requestCan't be changed (switch it yourself)Changed by sending a message
Sessions visible by default20 most recent (all if you ask)All, by paging through the list
Out of scopeCloud, and sessions started from the CLI or VS CodeCloud chats, archived chats, sub-agents, scheduled runs
Defaults for new sessionsNot covered in this articlemodel and model_reasoning_effort in config.toml (official)
Side effectsSort order changes (last-active time is updated)Confirmation messages left in some chats

In a nutshell: Claude Code Desktop "gives the assistant tools for making the change," while in Codex "the assistant operated the app's internals to make the change." Either way, all you do is ask, but the Codex route is more fragile across versions and does more damage if it stops partway.

7. Example prompts and 4 checks to avoid mistakes

Example prompts

In Claude Code Desktop, you might ask something like this:

Set every session except archived ones to Opus 5.5 at medium effort.
Don't stop at 20; list every session, and skip any that are running.
Keep a list of each session's model and effort before the change, and when you're done, re-read every session to confirm.

In Codex, it might look like this:

Set the default for new chats and every existing chat to GPT-6 Sol at medium.
Back up the current settings before you start, and fetch the list through to the last page.
If you need to send messages to open chats, tell me how many first.
At the end, re-read every chat you counted at the start and confirm they match.

4 checks to avoid mistakes

  1. Have it keep the old values: if you want to roll back and don't know the original values, you'll be recalling them one session at a time. This matters most if you deliberately run some sessions on a different model.
  2. Spell out the scope: whether to include archived sessions, whether to skip running ones, whether to limit it to a particular project. In Claude Code Desktop, don't forget "don't stop at 20."
  3. Have it re-read everything at the end: don't count the "success" replies along the way; re-read every target counted at the start and confirm they match. Codex could say 115/115 because of this check.
  4. Open one yourself: check with your own eyes, in at least one session, that the prompt box shows the new setting. Asking the model for its own effort isn't reliable.

One more thing: in Claude Code Desktop, the session you made the request from doesn't change, so remember to switch it yourself from the model menu at the end.

Summary

As of September 24, 2026, neither Claude Code Desktop nor Codex has a button to change the model for all sessions at once. Even so, I confirmed in both that asking the assistant lets you change everything without opening each session yourself.

Claude Code Desktop changed sessions without sending messages, using tools the app provides, and the changes survived a restart. However, it only sees local desktop sessions, the default is the 20 most recent, and the session making the request is excluded. In Codex, new chats are handled by the config file, and the assistant changed existing chats one by one using internal machinery. The chats that were open each received one message.

You no longer need to go around opening every session each time a new model comes out. Keep the old values, define the scope, re-read everything, and check one with your own eyes. Adding these 4 checks to your request makes a bulk change much safer.

FAQ

Q. Is there a button in Claude Code Desktop to change all sessions at once?

A. Not that I could find as of September 24, 2026. You choose the model and effort one session at a time from the menu in the open session's prompt box. The method in this article is to ask the assistant to change your other sessions for you.

Q. Does changing a session send anything to it?

A. Not in Claude Code Desktop. The session simply runs with the new settings the next time you use it. In Codex, only chats open in the app received one short confirmation message so their settings could be changed, and one turn actually ran.

Q. Does a session that's in the middle of work switch models partway through?

A. No. In both apps, changes apply from the next turn, and the turn that's already running finishes on the original model.

Q. Can I verify by asking the model "what model and effort are you on"?

A. I don't recommend it, because it isn't reliable. In my test, a session I had set to low effort answered "effort is 10." Look at the prompt box in the UI, or have the assistant re-read the saved values.

Q. Can I bulk-change cloud sessions or CLI sessions too?

A. Not from the Claude Code Desktop assistant, because it can't see them. The official docs also say it can't see cloud sessions or sessions started from the terminal CLI or the VS Code extension. For Codex cloud chats, the default model currently can't be changed either.

Q. Is it safe to move everything up to a higher model at once?

A. The change itself works, but if every session runs on a top-tier model at high effort, your usage limits will drain faster. The Claude Code Desktop app is also designed to ask for confirmation when moving to a pricier model or higher effort. For where to set your everyday starting point, see the effort setting article and the GPT-6 Sol and Luna article.