Contents
- 1. Why you'd want to change them all at once
- 2. Claude Code Desktop: just ask the assistant
- 3. What Claude Code Desktop can and can't reach
- 4. Codex: defaults in the config file, existing chats one by one on request
- 5. What happened when Codex changed 115 chats
- 6. The two side by side
- 7. Example prompts and 4 checks to avoid mistakes
- FAQ
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,
/modeland/reasoningboth 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 type | Can it be changed on request? | Notes |
|---|---|---|
| Local sessions in the Code tab | Yes | What I tested |
| SSH and WSL sessions in the Code tab | Visible to the assistant | Listed, but I didn't try changing the model |
| Cloud sessions | Not visible | Stated in the official docs (switch them in the cloud session itself) |
| Sessions started from the terminal CLI or the VS Code extension | Not visible | Not visible even in the same project folder |
| The session making the request | No | Not even listed (switch it yourself from the model menu) |
| Archived sessions | Can be included if you ask | Left 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
| Aspect | Claude Code Desktop | Codex |
|---|---|---|
| Bulk-change existing sessions on request? | Yes (tested on 2 sessions) | Yes (done on 115 chats) |
| Mechanism used | Tools the app gives the assistant (no documented procedure) | The app's internal machinery (not an official method) |
| Is a message sent? | No | Usually not (open chats got one message each) |
| When it takes effect | From the next turn | From the next turn |
| The chat making the request | Can't be changed (switch it yourself) | Changed by sending a message |
| Sessions visible by default | 20 most recent (all if you ask) | All, by paging through the list |
| Out of scope | Cloud, and sessions started from the CLI or VS Code | Cloud chats, archived chats, sub-agents, scheduled runs |
| Defaults for new sessions | Not covered in this article | model and model_reasoning_effort in config.toml (official) |
| Side effects | Sort 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
- 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.
- 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."
- 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.
- 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.