Files
bin-scripts/claude-glm
T
thuanleandClaude Opus 4.7 062597252a Default Claude wrappers to auto permission mode when unset.
Preserve user-provided --permission-mode flags while injecting --permission-mode auto as the fallback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 09:30:33 +07:00

54 lines
1.3 KiB
Bash
Executable File

#!/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"
has_permission_mode=false
for arg in "$@"; do
if [ "$arg" = "--permission-mode" ] || [[ "$arg" == --permission-mode=* ]]; then
has_permission_mode=true
break
fi
done
if [ "$has_permission_mode" = true ]; then
exec claude "$@"
else
exec claude --permission-mode auto "$@"
fi