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
- 8. Update: permission modes change in bulk too (October 2026)
- 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 runs (a trial on September 24, 2026 that I then reverted, and a real switch of all my sessions the next day, September 25), 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 tests on September 24–25, 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 next day, I switched every session for real
On September 25, 2026, I used this method to move every session in the Code tab on my machine to Opus 5.5 at medium effort. Leaving out archived sessions, there were 58 besides the one I made the request from. Before the change, 20 were still on Opus 5 and 11 on Opus 4.8, and most were set to high effort.
The assistant first read the current settings of all 58 and saved them to a file as a record of the old values. It then left alone the 13 that were already on Opus 5.5 at medium, plus 1 used for a scheduled task that has no effort value, and changed the remaining 44 (both model and effort on 34, effort only on 10). Finally, it re-read all 44 and confirmed they were on Opus 5.5 at medium. All I did was ask it to "set every session to Opus 5.5 at medium."
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.
A note on sort order, too. When I changed 2 sessions on September 24, each session's "last active" time was set to the current time the moment it changed, so if you sorted the sidebar by most recent, the order shifted. But when I changed 44 sessions on September 25, with the same version of the app, that time didn't move for a single one. I don't know what decides whether it gets updated, so assume the order may change, and if that bothers you, organize your sessions 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, then changed 44 the next day) | 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 may change (last-active time was updated one day, not the next) | 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.
8. Update: permission modes change in bulk too (October 2026)
Like the model and effort, Claude Code Desktop remembers the permission mode (how far Claude goes without asking; see the permission modes article for how the modes differ) per session. On October 15, 2026, I asked the assistant to "change Bypass permissions to Auto in every project" and actually switched them on two Windows 11 machines of my own. The first machine had 135 sessions, not counting archived ones; the second had 55. On both, all I did was make the request; I never opened the sessions one by one.
What bulk-changing permission modes showed
Source: my own test (October 15, 2026, Claude Code Desktop on two Windows 11 machines) and the official docs, Choose a permission mode
Lowering needs no confirmation
Going from Bypass permissions to Auto changed right away, with no approval card. Idle sessions used the new mode from their next turn; running sessions switched during the turn in progress.
Asking from Auto stalls
When the requesting session was in Auto, changes to other sessions stopped going through partway (on both machines). With the requesting session in Bypass permissions, everything went through.
The folder default stays
New sessions start in the mode you last picked in that folder's selector. Having the assistant change sessions didn't touch this value.
The direction of the change matters
In the description of the tool the app gives the assistant, permission modes get stronger in the order Plan → Manual → Accept edits → Auto → Bypass permissions. It says that changing toward a stronger mode (for example, Auto to Bypass permissions) always shows the user an approval card, whatever mode the request comes from. Changing toward a weaker mode, it says, goes through without confirmation, and in my Bypass permissions → Auto change, not a single card appeared. I didn't test the stronger direction this time.
There's also a difference from changing the model. For models, the rule was "the session making the request can't change itself," but the permission mode tool is described as able to target its own session too. This time, I switched only the requesting session myself, using the mode selector on screen.
Asking from an Auto session stalls partway
On the first machine, it stopped after changing 17 of the 135 sessions. Partway through, the requesting session had gone into Auto, and Auto's checker (the background classifier) stopped letting through actions that change other sessions' settings. One was rejected as "couldn't be evaluated," and the next 3 as "the user doesn't want this action right now." Once I put the requesting session back in Bypass permissions, the remaining 118 went through without a single stop. The same thing happened on the second machine. When changing in bulk, keep just the requesting session in Bypass permissions (or Manual, where you can approve things yourself) to be sure.
The default for new sessions is stored separately
The official docs, Choose a permission mode, say you can set the default mode for new local sessions with permissions.defaultMode in your settings file, but that the mode you pick in the mode selector is remembered per folder and takes precedence over defaultMode in that folder (except Plan, which lasts only for the current session).
In other words, if you once picked Bypass permissions in a folder, new sessions you start in that folder begin in Bypass permissions. When I checked on the second machine, this per-folder memory was still Bypass permissions even after the assistant had changed every existing session to Auto. If you want new sessions to start in Auto too, you need to pick Auto again in the mode selector once per folder. Writing defaultMode in the settings file loses to a folder that remembers Bypass permissions. I don't recommend editing the app's saved files directly, since they can be overwritten or corrupted while the app is running.
What it can't reach
- Sessions in another account: even on the same machine, sessions from an account you aren't currently signed in to weren't listed and couldn't be changed (confirmed on the second machine).
- Archived sessions: I left them out this time. Switch them yourself when you restore them.
- Cloud sessions: according to the official docs, cloud sessions don't have Bypass permissions at all (only Accept edits, Plan, and Auto are available).
Here's an example of how to ask:
Set the permission mode of every session except archived ones to Auto.
Don't stop at 20; list them all, then tell me how many you changed and list any sessions that were refused.
Note that Auto isn't available on every account. The official docs say Auto mode requires a supported model (Opus 4.6 or later, Sonnet 4.6 or later, Haiku 5.5, or Fable), and that organization admins can turn it off (as of October 15, 2026).
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.
In October 2026, I confirmed that permission modes also change in bulk with the same kind of request, across two machines and 190 sessions in total. You do need to keep the requesting session out of Auto, though, and pick the default for new sessions again on screen for each folder.
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. I set every permission mode to Auto, but new sessions still start in Bypass permissions.
A. New sessions default to the mode you last picked from the mode selector in that folder (see Choose a permission mode in the official docs). Changing existing sessions doesn't change this memory. Pick Auto again in the mode selector once for each folder. See section 8 for details.
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.