diff --git a/claude-glm b/claude-glm new file mode 100755 index 0000000..3659c43 --- /dev/null +++ b/claude-glm @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +# claude-glm — Run Claude Code with GLM backend +# +# Usage: +# claude-glm [args...] +# +# Setup API key (reuse existing): +# macOS: +# security add-generic-password -a "$USER" -s GLM_API_KEY -w "YOUR_KEY" +# Linux: +# echo "YOUR_KEY" | secret-tool store --label "GLM API Key" service GLM_API_KEY + +KEY_NAME="GLM_API_KEY" + +get_token() { + if command -v security >/dev/null 2>&1; then + security find-generic-password -s "$KEY_NAME" -w 2>/dev/null && return + fi + if command -v secret-tool >/dev/null 2>&1; then + secret-tool lookup service "$KEY_NAME" 2>/dev/null && return + fi + return 1 +} + +TOKEN=$(get_token) + +if [ -z "$TOKEN" ]; then + echo "❌ Missing GLM token ($KEY_NAME)" + exit 1 +fi + +export ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic" +export ANTHROPIC_AUTH_TOKEN="$TOKEN" +export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-4.5-air" +export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.1" +export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-5.1" + +echo "→ Backend: GLM" + +exec claude "$@" diff --git a/claude-tk b/claude-tk new file mode 100755 index 0000000..3e4ac72 --- /dev/null +++ b/claude-tk @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +# claude-gpt — Run Claude Code with GPT backend +# +# Usage: +# claude-gpt [args...] +# +# Setup API key (reuse existing): +# macOS: +# security add-generic-password -a "$USER" -s TK_AI_API_TOKEN -w "YOUR_KEY" +# Linux: +# echo "YOUR_KEY" | secret-tool store --label "AI API Token" service TK_AI_API_TOKEN + +KEY_NAME="TK_AI_API_TOKEN" + +get_token() { + if command -v security >/dev/null 2>&1; then + security find-generic-password -s "$KEY_NAME" -w 2>/dev/null && return + fi + if command -v secret-tool >/dev/null 2>&1; then + secret-tool lookup service "$KEY_NAME" 2>/dev/null && return + fi + return 1 +} + +TOKEN=$(get_token) + +if [ -z "$TOKEN" ]; then + echo "❌ Missing GPT token ($KEY_NAME)" + exit 1 +fi + +export ANTHROPIC_BASE_URL="https://ai.acbpro.com" +export ANTHROPIC_AUTH_TOKEN="$TOKEN" +export ANTHROPIC_DEFAULT_OPUS_MODEL="gpt-5.3-codex(high)" +export ANTHROPIC_DEFAULT_SONNET_MODEL="gpt-5.3-codex(medium)" +export ANTHROPIC_DEFAULT_HAIKU_MODEL="gpt-5.3-codex(medium)" + +echo "→ Backend: GPT" + +exec claude "$@" diff --git a/cleanup.sh b/cleanup similarity index 89% rename from cleanup.sh rename to cleanup index 6edb082..3cb8a09 100755 --- a/cleanup.sh +++ b/cleanup @@ -640,6 +640,58 @@ cleanup_cache_dir() { # Interactive Menu System # ============================================================================= +print_welcome_banner() { + local use_color=0 + local reset="" + local i=0 + local line + local -a colors=() + local -a lines=( +' __ __ __ __ ________ __' +'| \ / \ | \ | \ | \| \' +'| $$\ / $$ ______ _______ _______ | $$ ______ ______ _______ __ __ ______ | $$____ __ __ \$$$$$$$$| $$' +'| $$$\ / $$$ | \ / \ / \| $$ / \ | \ | \ | \ | \ / \ | $$ \ | \ | \ | $$ | $$' +'| $$$$\ $$$$ \$$$$$$\| $$$$$$$ | $$$$$$$| $$| $$$$$$\ \$$$$$$\| $$$$$$$\| $$ | $$| $$$$$$\ | $$$$$$$\| $$ | $$ | $$ | $$' +'| $$\$$ $$ $$ / $$| $$ | $$ | $$| $$ $$ / $$| $$ | $$| $$ | $$| $$ | $$ | $$ | $$| $$ | $$ | $$ | $$' +'| $$ \$$$| $$| $$$$$$$| $$_____ | $$_____ | $$| $$$$$$$$| $$$$$$$| $$ | $$| $$__/ $$| $$__/ $$ | $$__/ $$| $$__/ $$ | $$ | $$_____' +'| $$ \$ | $$ \$$ $$ \$$ \ \$$ \| $$ \$$ \ \$$ $$| $$ | $$ \$$ $$| $$ $$ | $$ $$ \$$ $$ | $$ | $$ \' +' \$$ \$$ \$$$$$$$ \$$$$$$$ \$$$$$$$ \$$ \$$$$$$$ \$$$$$$$ \$$ \$$ \$$$$$$ | $$$$$$$ \$$$$$$$ _\$$$$$$$ \$$ \$$$$$$$$' +' | $$ | \__| $$' +' | $$ \$$ $$' +' \$$ \$$$$$$' + ) + + if [ -t 1 ]; then + use_color=1 + reset=$'\033[0m' + colors=( + $'\033[1;38;5;51m' + $'\033[1;38;5;87m' + $'\033[1;38;5;123m' + $'\033[1;38;5;159m' + $'\033[1;38;5;193m' + $'\033[1;38;5;220m' + $'\033[1;38;5;214m' + $'\033[1;38;5;209m' + $'\033[1;38;5;204m' + $'\033[1;38;5;198m' + $'\033[1;38;5;177m' + $'\033[1;38;5;141m' + ) + fi + + echo "" + for line in "${lines[@]}"; do + if [ "$use_color" -eq 1 ]; then + printf '%b%s%b\n' "${colors[$i]}" "$line" "$reset" + else + printf '%s\n' "$line" + fi + i=$((i + 1)) + done + echo "" +} + # Tên các nhóm cleanup MENU_ITEMS=( "All" @@ -712,6 +764,7 @@ sync_all() { # Chạy interactive menu run_menu() { + print_welcome_banner echo "" echo "===== 🧹 Cleanup macOS =====" echo "" @@ -856,4 +909,4 @@ for ((i = 1; i < MENU_COUNT; i++)); do fi done -echo "===== ✅ Cleanup hoàn tất =====" \ No newline at end of file +echo "===== ✅ Cleanup hoàn tất ====="