#!/usr/bin/env bash set -euo pipefail LOG_FILE="/tmp/openclaw-uninstall-$(date +%Y%m%d-%H%M%S).log" exec > >(tee -a "$LOG_FILE") 2>&1 log() { printf '\n==> %s\n' "$1" } warn() { printf 'WARN: %s\n' "$1" >&2 } add_runtime_paths() { local base="$HOME/.openclaw/runtime/node" if [[ -d "$base" ]]; then while IFS= read -r dir; do PATH="$dir/bin:$PATH" done < <(find "$base" -mindepth 1 -maxdepth 1 -type d | sort) fi export PATH } get_openclaw_cmd() { add_runtime_paths command -v openclaw >/dev/null 2>&1 || return 1 command -v openclaw } log "Log file: $LOG_FILE" if OPENCLAW="$(get_openclaw_cmd)"; then log "Removing Gateway service, state, and workspace" "$OPENCLAW" uninstall --all --yes --non-interactive || warn "openclaw uninstall failed" else warn "openclaw not found, skipping built-in uninstall" fi if command -v npm >/dev/null 2>&1; then log "Removing global openclaw CLI" npm uninstall -g openclaw || warn "npm uninstall -g openclaw failed" else warn "npm not found, skipping CLI removal" fi log "Uninstall finished" printf 'OpenClaw uninstall steps are complete. Node was left installed.\n'