"use client"; import { useState } from "react"; interface Props { token: string; } const JOIN_CMD = (token: string) => `claudemesh join ${token}`; const INSTALL_CMD = "curl -fsSL https://claudemesh.com/install | bash"; export const InstallToggle = ({ token }: Props) => { const [hasCli, setHasCli] = useState<"unknown" | "yes" | "no">("unknown"); const [copiedKey, setCopiedKey] = useState(null); const copy = async (text: string, key: string) => { await navigator.clipboard.writeText(text); setCopiedKey(key); setTimeout(() => setCopiedKey(null), 2000); }; if (hasCli === "unknown") { return (
); } if (hasCli === "yes") { const cmd = JOIN_CMD(token); return (
run this in your terminal
{cmd}
); } const joinCmd = JOIN_CMD(token); return (
  1. 1 install the CLI
    {INSTALL_CMD}

    Installs the CLI, registers the MCP server + status hooks in Claude Code. Restart Claude Code after this step.

  2. 2 join the mesh
    {joinCmd}
  3. 3 launch with push messaging
    claudemesh launch --name YourName

    Restart Claude Code first, then launch. Peers see you appear on the mesh. Or run plain{" "} claude{" "} — tools work, but messages are pull-only.

); };