Files
opencode-skill/scripts/install-openclaw-skills.sh
Kunthawat Greethong 17930e9650 Update alphaear skills to use MiniMax as default LLM
Changes:
- Added 'minimax' provider to LLM factory
- Changed default LLM_PROVIDER from 'ust' to 'minimax'
- Changed default LLM_MODEL from 'Qwen' to 'MiniMax-Text-01'
- Updated REASONING_MODEL_PROVIDER and TOOL_MODEL_PROVIDER to minimax
- Sentiment tools now prefer MINIMAX_API_KEY over UST_KEY_API
- .env.example updated with MiniMax defaults
2026-03-27 10:27:00 +07:00

162 lines
5.1 KiB
Bash
Executable File

#!/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 "$@"