Remove OpenClaw install script, add manual instructions to README
This commit is contained in:
21
README.md
21
README.md
@@ -56,6 +56,27 @@ mkdir -p .opencode/skills
|
|||||||
cp -r skills/* .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
|
## Creating New Skills
|
||||||
|
|
||||||
Use the skill-creator to scaffold new skills:
|
Use the skill-creator to scaffold new skills:
|
||||||
|
|||||||
@@ -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 "$@"
|
|
||||||
Reference in New Issue
Block a user