[FEATURE] External interfaces for the app code/chat sessions.
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Claude Code sessions are desktop-only. There is no way to continue an active session from a mobile device or remote location without a terminal. Users who step away mid-session must either stay at their desk or lose continuity entirely.
Proposed Solution
Background
A user working on long-running development sessions in Claude Code (the desktop app, not the CLI) needed the ability to continue those sessions remotely from a mobile device — viewing recent conversation history, sending instructions, and receiving responses — then return to the desktop app and pick up seamlessly where the remote interaction left off.
The initial response to this request was that it was not achievable because Claude Code is an interactive terminal application with no remote access capability. The user pushed back, and further exploration revealed that the necessary primitives already exist in the CLI.
What was built
A lightweight Discord bot running on the same machine as Claude Code serves as a mobile bridge. When the user sends a message in a designated Discord channel, the bot invokes:
claude --print --dangerously-skip-permissions --resume SESSION_ID "user message"
This resumes the target session non-interactively, inheriting the full conversation history from the session's JSONL file. Claude responds with complete context of everything that happened in the desktop session. The response is returned to Discord. The JSONL file is updated with both the new user message and Claude's reply.
When the user returns to their desktop and opens that session in the Claude Code application, the Discord exchange is already present in the session history. No commands, no syncing, no manual steps — the sidebar shows the session, they click it, everything is there.
Session selection
The bot automatically selects the most recently modified session JSONL across all projects, so the default behavior requires no configuration from the user. A /sessions command lists recent sessions with titles and timestamps. A /use <n> command switches to a specific session. When a session is selected or auto-detected, the bot displays the last three conversation exchanges so the user can orient themselves before sending their first message.
Key technical facts
The --print (-p) flag enables non-interactive single-shot invocation
The --resume SESSION_ID flag targets a specific session by UUID regardless of working directory
Session JSONL files under ~/.claude/projects/ serve as the shared state between the desktop app and the remote bot
No API credits are consumed — the bot uses the same Claude Pro subscription as the desktop application
The bot runs as a Windows service (via NSSM), starts at boot, requires no user interaction
What this feature request asks for
This workflow was constructed entirely from workarounds. The underlying need — continuing a Claude Code session from a mobile or remote context — is common and should be a first-class feature. A native remote session bridge, a companion mobile interface, or an officially supported non-interactive resume API would make this seamless without requiring users to build and maintain their own Discord bots.
Alternative Solutions
_No response_
Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
I am developing an in-house LLM for my own usage. this is a planning heavy enterprise, and i keep my docs in a github repo. I have an idea while out and about, and want to be able to tell it to claude code, and have the system integrate my idea into my 'crazy ideas' document. if i do that in chat, it just looses the thread and its hard to bring those together again. Claude Code in the Desktop app is an excellent development tool and i use it a lot. i need to be able to toss little bits in while i am away during the day.
Additional Context
_No response_
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗