#!/usr/bin/env bash # clawmates-node installer — served at https:///install.sh # # curl -fsSL /install.sh | bash -s -- --server --token # # Downloads the daemon for your platform and runs it against your ClawMates # gateway with the pairing token from the "Connect a host" wizard. set -euo pipefail SERVER="" TOKEN="" TSKEY="" while [[ $# -gt 0 ]]; do case "$1" in --server) SERVER="$2"; shift 2 ;; --token) TOKEN="$2"; shift 2 ;; --tailscale-authkey) TSKEY="$2"; shift 2 ;; *) shift ;; esac done if [[ -z "$SERVER" || -z "$TOKEN" ]]; then echo "usage: install.sh --server --token [--tailscale-authkey ]" >&2 exit 2 fi OS="$(uname -s | tr '[:upper:]' '[:lower:]')" case "$(uname -m)" in x86_64|amd64) ARCH=amd64 ;; aarch64|arm64) ARCH=arm64 ;; *) ARCH="$(uname -m)" ;; esac TARGET="$OS-$ARCH" BIN_DIR="${CLAWMATES_BIN_DIR:-$HOME/.clawmates/bin}" BIN="$BIN_DIR/clawmates-node" mkdir -p "$BIN_DIR" URL="${CLAWMATES_NODE_URL:-$SERVER/dl/clawmates-node-$TARGET}" echo "downloading clawmates-node ($TARGET)…" if ! curl -fsSL "$URL" -o "$BIN"; then echo "" >&2 echo "No prebuilt binary for $TARGET yet. Build from source (clawmates repo):" >&2 echo " cargo build --release -p clawmates-node" >&2 echo " ./target/release/clawmates-node --server $SERVER --token $TOKEN" >&2 exit 1 fi chmod +x "$BIN" echo "starting clawmates-node → $SERVER" ARGS=(--server "$SERVER" --token "$TOKEN") [[ -n "$TSKEY" ]] && ARGS+=(--tailscale-authkey "$TSKEY") exec "$BIN" "${ARGS[@]}"