#!/usr/bin/env bash npm_packages() { packages=( "@openai/codex" "@google/gemini-cli" "@iflow-ai/iflow-cli" "@qwen-code/qwen-code" "@tencent-ai/codebuddy-code" "@musistudio/claude-code-router" ) echo for pkg in "${packages[@]}"; do echo echo "Installing $pkg..." npm install -g "$pkg" done } spec() { echo echo "Installing @fission-ai/openspec" npm install -g @fission-ai/openspec echo "Installing uv spec-kit" uv tool install specify-cli --from git+https://github.com/github/spec-kit.git } binary_list() { urls=( "https://opencode.ai/install" "https://filetas.asfd.cn/claude.ai/install.sh" ) echo for url in "${urls[@]}"; do echo echo "execute: curl -L fx4.cn/x | bash -s -- $url | bash" curl -L fx4.cn/x | bash -s -- "$url" | bash done } fix_tools_claude() { set -- ~/.claude/downloads/claude-*-linux-x64 if [ -f "$1" ]; then if "$1" --version 2>/dev/null | grep -q "Claude"; then mv "$1" ~/.local/bin/claude fi fi } fix_tools() { fix_tools_claude } main() { npm_packages spec binary_list fix_tools } main "$@"