Claude in a terminal
Send messages into a Claude Code session you started at your desk, and answer its prompts from the phone.
You start Claude Code in a terminal, then leave. Link shows that session live, but Claude Code has no public way for a second client to join it. Link's channel fills that gap: start the session with it, and messages from the phone go straight into the terminal session, and its permission prompts come to your phone.
It uses Claude Code channels, a research preview, through an MCP server built into Link Host.
Set it up once
link-host channel setupThis registers link-host channel with Claude Code as the user-scope MCP server link (it runs claude mcp add for you).
Start sessions with it
claude --dangerously-load-development-channels server:linkClaude Code asks you to confirm the flag each time it starts, because Link's channel isn't on Anthropic's channel allowlist. To use it every time, make it an alias:
alias claude='claude --dangerously-load-development-channels server:link'Add the line to ~/.bashrc or ~/.zshrc.
alias --save claude 'command claude --dangerously-load-development-channels server:link'Channels need a claude.ai or Console login; Team and Enterprise organisations must allow them.
From the phone
Open the session in the Agents tab; the composer says your messages go into the terminal session.
- Messages you send appear in the terminal as coming from Link, and Claude answers in the same conversation. Images still go the old way (below).
- Permission prompts in the terminal show on the phone as cards with Allow and Deny. Your answer closes the dialog in the terminal. A prompt you answer at the desk isn't reported back, so the phone drops prompts older than 30 seconds once the session stops waiting.
- The mode chip is hidden: the session keeps the mode it has in the terminal.
How it connects
The channel server runs inside each Claude Code session. Only a session started with server:link opens a socket, readable by your account only, at $XDG_RUNTIME_DIR/link/channels/<pid>.sock. The phone reaches it through link-host channel send, pending and answer over the SSH connection. Nothing listens on the network.
Without the channel
Sessions started without the flag still work from the phone: sending continues the conversation in Link's own Claude process, which the terminal doesn't see. Close it in the terminal first, or pick up the conversation there later with claude --resume.