[Feature Request] Add /restart command to quickly resume latest conversation

Status Open
Reported on v2.1.280
Maintainer reply None cached
Activity 5 comments · opened Sep 22, 2026

Bug Description
We need a restart command, which basically is /exit + /resume to the latest conversation.
One command would fix the problem I have right now that I need to quit the Claude Code and then reopen it with resume.

Environment Info

  • Platform: darwin
  • Terminal: iTerm.app
  • Version: 2.1.280
  • Feedback ID: d879b5a8-f6a3-4818-917a-20f518271599

Errors

[]

View original on GitHub ↗

3 Comments

akalongman · 19 days ago

Adding a data point, because this command already exists in the shipped binary and is only switched off.

In 2.1.282 the command table contains:

{ type: "local", name: "update", aliases: ["restart"],
  description: "Switch to the latest version (conversation continues)",
  supportsNonInteractive: false, isEnabled: () => false, isHidden: true, ... }

So /restart is registered as an alias of /update, but isEnabled is a constant false and the entry is hidden, which is why it never shows in the command list. The handler behind it does exactly what this issue asks for with "continue conversation" semantics:

  • flushes the transcript to disk,
  • spawns a new claude process through the same launcher (respawn for background sessions, an in-place relaunch for the foreground one),
  • carries the permission context, additional working directories, and the Remote Control bridge across,
  • resumes the same conversation in the new process.

It also has the safety checks a restart needs: it refuses while background tasks are running ("wait for it to finish, or stop it via /tasks") and when the session has CLI-only restrictions the relaunch cannot carry over. The changelog references /update fixes in 2.1.232 and 2.1.275, so the code path is maintained, and the same relaunch machinery is already public through /tui and the model-switch restart.

Given that, the ask reduces to: enable /update (and the /restart alias) for everyone, or expose a flag for it. Related open request: #88765. Earlier copies were closed as stale or duplicate without a maintainer decision: #17120, #21171, #29546, #34320, #46948.

fi-nberg · 9 days ago

After a background update, the footer shows "✔ Update installed · Restart to update", but nothing in the session acts on it. Restarting means /exit followed by claude --continue, which drops the scrollback. --continue also resumes the most recent conversation in the directory, which is not necessarily the one being restarted when several sessions are open there. A /restart that exits and resumes the current session by ID would make that notice actionable.

Claude Code 2.1.289, macOS, native install.

akalongman · 9 days ago

Correction to my earlier comment, which is out of date as of 2.1.288.

Comparing the builds installed here:

| Build | Command | Gate |
|---|---|---|
| 2.1.287 | /update, alias /restart | isEnabled: () => false, hidden |
| 2.1.288, 2.1.289 | /restart, alias /update | runtime check |

In 2.1.289 the description is "Restart Claude Code and keep this session" (or "Restart on <version> and keep this session" when a newer build is installed). It is no longer a constant false. It is enabled on macOS and Linux, in an interactive terminal, when a server-side rollout flag (tengu_fancy_wand) is on. That flag is off for my account, so the command does not show up for me yet.

@fi-nberg this covers both of your points:

  • With the flag on, the footer notice reads "/restart to apply" instead of "Restart to update".
  • The handler relaunches the current session from its own saved transcript, not "the most recent conversation in this directory". It refuses with an explanation when the transcript or its folder cannot be matched to the running session.

One more correction: I wrote that the Remote Control bridge is carried across. In 2.1.289 the command refuses while Remote Control is connected ("Can't restart while Remote Control is connected") and is not available when invoked over Remote Control.

So this looks like a staged rollout rather than a missing feature. A maintainer note on the rollout plan, or an opt-in setting for people who want it now, would let this issue and #88765 be closed out.

Showing cached comments. Read the full discussion on GitHub ↗