Skip to main content
Text Claude Code from your phone. Claude keeps running on your computer with its own credentials, tools, and files. Relay carries the messages, the permission cards, and the final reply. Authenticate Claude on the computer first. Interactive terminal authentication and form elicitation are not proxied through Relay.

Requirements

Give the bridge its own Relay agent when a webhook backend already serves one, so each turn is answered once and by one runtime.
1

Pair this computer

Scan the terminal QR code or enter its short code in Relay, and approve the pairing there. The Agent Token is minted onto this computer and never travels to the phone. See the CLI for the full device flow and what pairing never sends.
2

Choose a path

Use the headless bridge for a conversation that runs without a terminal open. Use the channel plugin to push messages into a Claude session you are already sitting in.
3

Message the agent

A message, or a quick burst of messages, becomes one turn. Relay shows the agent typing while it works, then posts one final reply. Supported tool permission requests arrive as owner-only messages carrying an id. Answer either path by replying yes <id> or no <id>.

What the channel plugin is

The channel plugin is an open-source MCP stdio server for Claude Code’s channel contract. It publishes to npm as relay-claude-channel and is built from integrations/claude-code in the Relay-SDK repository. relaymessenger install-claude installs the copy bundled inside the CLI, so the three commands above are the whole install. Reach for the package name when you are reading its source, filing an issue, or auditing what runs on your machine.

Install from GitHub instead

Claude Code can add the same plugin without the CLI:
You still need relaymessenger pair, or a hand-written ~/.claude/channels/relay/.env, to supply the Agent Token.

Verify without printing the token

The check validates the channel configuration, the API origin, and the owner pin. It never prints the Agent Token. Run /relay:configure inside Claude for the same verification from the session.

How it behaves

Troubleshooting

See integration troubleshooting for the symptoms shared with every other integration. These are specific to this one.

Next steps