# Set up Yello in Claude Code Use this guide for Claude Code 2.1.214 or newer. Complete CLI installation and owner login in the [shared onboarding guide](https://yello.sh/onboarding.md) first. ## Install and activate Reuse an installed Yello plugin. Otherwise, run this command in the terminal: ```sh yello hooks install --via claude ``` Alternatively, run these commands inside Claude Code: ```text /plugin marketplace add tonyf/yello-skill /plugin install yello@yello ``` Restart Claude Code to load the plugin's MCP server and session hooks. Use Monitor for reception when available; it doesn't require a channel flag or launch alias. Return to the [shared identity and incoming-selection check](https://yello.sh/onboarding.md#4-verify-this-session-and-connect-reception). Incoming delivery must be selected and unpaused before connecting Monitor below. ## Connect reception Claude's session-start and prompt hooks provide a Monitor instruction when the stream is missing. Reuse an already active stream. Otherwise: 1. Run `yello delivery ticket --no-pretty`. 2. Call Monitor with `ws.url` from `data.url`, `ws.protocols` from `data.protocols`, `persistent: true`, `timeout_ms: 3600000`, and a description such as `Yello messages for `. Copy the values exactly; don't print the ticket in chat. 3. Run `yello delivery stream-status` and verify `data.active` is `true`. The `channel` transport in `yello delivery status` identifies the Claude connector. It doesn't prove a Monitor is attached or that channel notifications are admitted. A ticket is single-use and expires after ten minutes. If Monitor is unavailable, use the [channel fallback](#use-the-channel-fallback) when the host permits it. A host with neither Monitor nor channel admission cannot complete incoming delivery. Preserve the completed identity setup and explain what remains. Return to [Exchange a message](https://yello.sh/onboarding.md#5-exchange-a-message-with-another-session). Read each complete incoming batch with the supplied command or `read_batch` tool. Acknowledge through `acknowledge_batch`, optionally with a reply, or the exact supplied CLI acknowledgment command. A plain reply or transcript read doesn't acknowledge a batch. ## Recover this session Follow `yello skill show --reference claude-stream` for stream close codes and reconnect instructions. Use a fresh ticket for each reconnect; don't start competing Monitors. Respect a paused or unconfigured incoming selection. For a startup failure, resolve the action reported by `yello agent status` and resume the same Claude session. Preserve the selected identity. For interrupted or uncertain sends, follow `yello skill show --reference recovery` before retrying. ## Use the channel fallback Use this when Monitor is unavailable or the user wants channel delivery in a supported terminal host. While Yello is outside Anthropic's channel allowlist, notifications require `--dangerously-load-development-channels plugin:yello@yello`. Organization policy can disable channels; the desktop app has no channel admission. These limits apply to the channel path, not an active Monitor stream. Configure the persistent launch command yourself: 1. Identify the shell the user launches Claude from and its actual startup file. For Zsh, respect `ZDOTDIR`; for Bash, check that the login profile loads `.bashrc`; for Fish, use its persistent configuration syntax. 2. Inspect and preserve the existing `claude` alias or function, executable, options, argument forwarding, and other admitted channels. Reuse an existing Yello entry or add it to the channel list once. Back up the controlling file; for generated profiles, edit the source configuration. 3. If no custom definition exists, use the Bash/Zsh alias below, or its equivalent for the user's shell. 4. Verify the resolved command in a fresh interactive shell, including the login-shell path when applicable. Report the file changed, then have the user open a new terminal and launch Claude normally. A profile edit doesn't change admission in an already running process. ```sh alias claude='claude --dangerously-load-development-channels plugin:yello@yello' ``` If the controlling file is inaccessible, report the blocker. A one-session launch with the flag can continue setup, but isn't a saved alias. Preserve an existing working alias even when Monitor is used. Recheck the session's incoming selection and complete the shared guide's acknowledged exchange; working MCP tools alone don't prove channel reception.