From a5fef9dbdc404832ff1611d671328a7f65956372 Mon Sep 17 00:00:00 2001 From: Kunthawat Greethong Date: Fri, 27 Mar 2026 17:16:14 +0700 Subject: [PATCH] Remove OpenClaw install script, add manual instructions to README --- README.md | 21 ++++ scripts/install-openclaw-skills.sh | 161 ----------------------------- 2 files changed, 21 insertions(+), 161 deletions(-) delete mode 100755 scripts/install-openclaw-skills.sh diff --git a/README.md b/README.md index ab5e80b..c5f323c 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,27 @@ mkdir -p .opencode/skills cp -r skills/* .opencode/skills/ ``` +## OpenClaw Installation + +For OpenClaw, you can install skills to SSH-mounted folders or local `.openclaw/skills`: + +```bash +# Option 1: SSH-mounted folder (dynamic detection) +# OpenClaw uses any folder ending with .openclaw/skills +mkdir -p ~/.openclaw/skills +cp -r skills/* ~/.openclaw/skills/ + +# Option 2: Remote server SSH folder +# For example if your SSH mount is at ~/openclaw-vps/ +mkdir -p ~/openclaw-vps/.openclaw/skills +cp -r skills/* ~/openclaw-vps/.openclaw/skills/ + +# Option 3: rsync for faster sync over SSH +rsync -av skills/ user@remote-server:.openclaw/skills/ +``` + +**Note:** OpenClaw searches for skills in `~/.openclaw/skills` or any `*/.openclaw/skills` folder. + ## Creating New Skills Use the skill-creator to scaffold new skills: diff --git a/scripts/install-openclaw-skills.sh b/scripts/install-openclaw-skills.sh deleted file mode 100755 index 617ed60..0000000 --- a/scripts/install-openclaw-skills.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -set -e - -REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" -SKILLS_DIR="${REPO_ROOT}/skills" - -INFO='\033[0;34m' -SUCCESS='\033[0;32m' -WARNING='\033[1;33m' -ERROR='\033[0;31m' -NC='\033[0m' - -detect_os() { - case "$(uname -s)" in - Linux*) echo "linux" ;; - Darwin*) echo "mac" ;; - CYGWIN*|MINGW*|MSYS*) echo "windows" ;; - *) echo "unknown" ;; - esac -} - -find_openclaw_folders() { - local os="$1" - local folders=() - case "$os" in - linux|mac) - [ -d "$HOME/.openclaw/skills" ] && folders+=("$HOME/.openclaw/skills") - [ -d "$HOME/.local/share/openclaw/skills" ] && folders+=("$HOME/.local/share/openclaw/skills") - for ssh_folder in "$HOME"/*; do - [ -d "$ssh_folder" ] || continue - if [ -d "$ssh_folder/.openclaw/skills" ]; then - folders+=("$ssh_folder/.openclaw/skills") - fi - done - ;; - windows) - for user_dir in /c/Users/* /d/Users/* /e/Users/*; do - [ -d "$user_dir/.openclaw/skills" ] && folders+=("$user_dir/.openclaw/skills") - done - for profile_dir in /c/Users/* /d/Users/*; do - [ -d "$profile_dir" ] || continue - for ssh_folder in "$profile_dir"/*; do - [ -d "$ssh_folder" ] || continue - if [ -d "$ssh_folder/.openclaw/skills" ]; then - folders+=("$ssh_folder/.openclaw/skills") - fi - done - done - ;; - esac - printf '%s\n' "${folders[@]}" -} - -find_opencode_folders() { - local os="$1" - local folders=() - case "$os" in - linux|mac) - [ -d "$HOME/.config/opencode/skills" ] && folders+=("$HOME/.config/opencode/skills") - ;; - windows) - [ -d "C:/Users/${USERNAME}/.config/opencode/skills" ] && folders+=("C:/Users/${USERNAME}/.config/opencode/skills") - ;; - esac - printf '%s\n' "${folders[@]}" -} - -install_all_to_folder() { - local target_dir="$1" - mkdir -p "$target_dir" - if command -v rsync &> /dev/null; then - rsync -a --delete "$SKILLS_DIR/" "$target_dir/" - else - for skill_dir in "$SKILLS_DIR"/*/; do - [ -d "$skill_dir" ] || continue - skill_name=$(basename "$skill_dir") - if [ -f "$skill_dir/SKILL.md" ]; then - [ -d "${target_dir}/${skill_name}" ] && rm -rf "${target_dir}/${skill_name}" - cp -r "$skill_dir" "${target_dir}/${skill_name}" - fi - done - fi - local count=$(ls -d "$target_dir"/*/ 2>/dev/null | wc -l | tr -d ' ') - echo -e "${SUCCESS}[OK]${NC} Installed $count skills to ${target_dir}" -} - -get_skill_count() { - local count=0 - for dir in "$SKILLS_DIR"/*/; do - [ -d "$dir" ] && [ -f "$dir/SKILL.md" ] && count=$((count + 1)) - done - echo "$count" -} - -main() { - echo "==========================================" - echo "OpenClaw Skills Installer" - echo "==========================================" - - local os=$(detect_os) - echo -e "${INFO}[INFO]${NC} Detected OS: $os" - echo -e "${INFO}[INFO]${NC} Repository: $REPO_ROOT" - echo -e "${INFO}[INFO]${NC} Skills folder: $SKILLS_DIR" - - local skill_count=$(get_skill_count) - echo -e "${INFO}[INFO]${NC} Found $skill_count skills to install" - echo "" - - local openclaw_folders=() - while IFS= read -r folder; do - [ -n "$folder" ] && openclaw_folders+=("$folder") - done < <(find_openclaw_folders "$os") - - local opencode_folders=() - while IFS= read -r folder; do - [ -n "$folder" ] && opencode_folders+=("$folder") - done < <(find_opencode_folders "$os") - - if [ ${#openclaw_folders[@]} -eq 0 ] && [ ${#opencode_folders[@]} -eq 0 ]; then - echo -e "${WARNING}[WARN]${NC} No OpenClaw or OpenCode folders found." - echo -e "${INFO}[INFO]${NC} Creating: $HOME/.openclaw/skills" - mkdir -p "$HOME/.openclaw/skills" - openclaw_folders+=("$HOME/.openclaw/skills") - fi - - echo "" - if [ ${#openclaw_folders[@]} -gt 0 ]; then - echo -e "${INFO}[INFO]${NC} OpenClaw folders:" - for folder in "${openclaw_folders[@]}"; do echo " - $folder"; done - fi - - if [ ${#opencode_folders[@]} -gt 0 ]; then - echo -e "${INFO}[INFO]${NC} OpenCode folders:" - for folder in "${opencode_folders[@]}"; do echo " - $folder"; done - fi - - echo "" - echo "==========================================" - echo "Installation" - echo "==========================================" - - local total=0 - for folder in "${openclaw_folders[@]}"; do - echo -e "${INFO}[INFO]${NC} OpenClaw: $folder" - install_all_to_folder "$folder" - total=$((total + 1)) - done - - for folder in "${opencode_folders[@]}"; do - echo -e "${INFO}[INFO]${NC} OpenCode: $folder" - install_all_to_folder "$folder" - total=$((total + 1)) - done - - echo "" - echo "==========================================" - echo -e "${SUCCESS}[OK]${NC} Done! Installed to $total locations." - echo "==========================================" -} - -main "$@"