[BUG] Remote Control renames from the mobile app don't persist to the local CLI session (claude.ai web works)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When a Remote Control session is renamed from the Claude mobile app (the app's rename UI), the new title is not persisted to the local CLI session transcript. As a result, anything on the host that reads the session title from the transcript never sees the rename.
Renaming the same session from claude.ai/code (desktop web) works correctly — it writes a custom-title entry to the local transcript on the next bridge sync.
This looks like the mobile-app counterpart to the fix shipped in v2.1.110 ("Fixed Remote Control session renames from claude.ai not persisting the title to the local CLI session", referenced in #48868). That fix appears to cover claude.ai web but not the mobile app.
Concretely, in the session's transcript JSONL (~/.claude/projects/<cwd-slug>/<uuid>.jsonl):
- Each bridge sync writes a
{"type":"bridge-session",...}line followed by{"type":"ai-title","aiTitle":"..."}. - After a desktop web rename, the next bridge also writes
{"type":"custom-title","customTitle":"<new name>"}. ✅ - After a mobile app rename, no new
custom-titleis written; the bridge re-stamps the previous (web-set) custom title, or none at all. ❌
The rename is stored cloud-side — it shows correctly in both the mobile app and claude.ai/code session lists, and is visible across devices. It simply never reaches the local transcript when initiated from mobile.
Related: /rename typed from the mobile app over Remote Control is also ineffective — it is delivered to the running session as a plain prompt rather than executed as a CLI slash command, so it writes no custom-title either.
What Should Happen?
A Remote Control session rename performed from the mobile app should persist to the local CLI session the same way a claude.ai/code (desktop web) rename does — i.e. a custom-title entry is written to the local transcript on the next bridge sync — so host-side tooling and the local CLI title stay in sync with the cloud title.
Error Messages/Logs
# After mobile rename — no custom-title written; bridges keep writing ai-title:
$ grep -c '"type":"custom-title"' <uuid>.jsonl
0
$ grep -c '"type":"ai-title"' <uuid>.jsonl
9
# After desktop-web rename "Fix remote claude UI (updated)" — custom-title appears
# on the next bridge:
{"type":"bridge-session","sessionId":"<uuid>","bridgeSessionId":"cse_...","lastSequenceNum":0}
{"type":"custom-title","customTitle":"Fix remote claude UI (updated)","sessionId":"<uuid>"}
{"type":"ai-title","aiTitle":"...","sessionId":"<uuid>"}
Steps to Reproduce
- Enable Remote Control (e.g. "Enable Remote Control for all sessions" in
/config, or launch with--remote-control). - Start a session on a host and connect to it from the Claude mobile app.
- From the mobile app, rename the session (the app's rename UI) to
mobile-name. - Send any message so a bridge sync occurs.
- On the host, inspect the transcript:
grep '"type":"custom-title"' ~/.claude/projects/<cwd-slug>/<uuid>.jsonl
→ no entry for mobile-name. ❌
- Now rename the same session from claude.ai/code (desktop web) to
web-name, send a message, and re-check:
→ a {"type":"custom-title","customTitle":"web-name"} entry appears. ✅
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.168
Platform
Other
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
- Reproduces 100% of the time on the affected setup.
<uuid>,<cwd-slug>, and the bridge id are redacted placeholders; the real
transcript shows the literal custom-title values from the rename.
- Discovered because a host-side tool that derives the session title by reading
custom-title from the transcript could see desktop-web renames but never
mobile-app renames — so the impact is real for anything consuming the title
locally, not just cosmetic.
- Possibly related (different direction): #59960 — there the CLI holds the
renamed title but the Remote Control display falls back to the auto name;
here the cloud holds the title but it never reaches the local transcript.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗