#!/usr/bin/env bash set -euo pipefail IMAGE="ghcr.io/symclaw/symclaw:latest" CONTAINER_NAME="symclaw" REPL=false while [[ $# -gt 0 ]]; do case "$1" in --repl) REPL=true; shift ;; *) echo "Usage: $0 [--repl]"; exit 1 ;; esac done # Build if image doesn't exist locally if ! docker image inspect "$IMAGE" &>/dev/null; then echo "Image not found locally, building…" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" "$SCRIPT_DIR/docker-build.sh" fi mkdir -p "${HOME}/.symclaw" if $REPL; then echo "Starting SymClaw interactive REPL…" exec docker run --rm -it \ --name "${CONTAINER_NAME}-repl" \ -v "${HOME}/.symclaw:/root/.symclaw" \ -e RUST_LOG=info \ "$IMAGE" \ /usr/local/bin/symclaw else echo "Starting SymClaw skill daemon…" exec docker run --rm -d \ --name "$CONTAINER_NAME" \ -p 18789:18789 \ -p 3000:3000 \ -v symclaw-data:/data \ -v "${HOME}/.symclaw:/root/.symclaw" \ -e RUST_LOG=info \ -e SYMCLAW_ENGINE=native \ "$IMAGE" fi