Created
October 17, 2025 14:14
-
-
Save FradSer/deccc33dedcca741ffc0bc8480cfd5c6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # MARK: - Claude Code | |
| # Claude provider configurations - format: ["provider"]="url|token" | |
| declare -A CLAUDE_PROVIDERS=( | |
| ["provider"]="url|token" | |
| ["provider"]="url|token" | |
| ["provider"]="url|token" | |
| ) | |
| function claude() { | |
| unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN | |
| local provider="provider" # default to empty, use official method | |
| local extra_args=() | |
| local use_original=false | |
| local skip_permissions=false | |
| # Parse arguments dynamically based on CLAUDE_PROVIDERS keys | |
| while [[ $# -gt 0 ]]; do | |
| local arg="$1" | |
| local is_provider_flag=false | |
| # Check if argument matches any provider | |
| for provider_key in "${(@k)CLAUDE_PROVIDERS}"; do | |
| if [[ "$arg" == "--$provider_key" ]]; then | |
| provider="$provider_key" | |
| is_provider_flag=true | |
| break | |
| fi | |
| done | |
| if [[ "$arg" == "--original" ]]; then | |
| use_original=true | |
| is_provider_flag=true | |
| elif [[ "$is_provider_flag" == false ]]; then | |
| # Not a provider flag, stop parsing | |
| break | |
| fi | |
| shift | |
| done | |
| # Set provider configuration | |
| if [[ "$use_original" == false ]]; then | |
| # Use first provider by default if no specific provider specified | |
| if [[ -z "$provider" ]]; then | |
| # Get the first provider from CLAUDE_PROVIDERS | |
| for provider_key in "${(@k)CLAUDE_PROVIDERS}"; do | |
| provider="$provider_key" | |
| break | |
| done | |
| fi | |
| # Set provider configuration if we have a provider | |
| if [[ -n "$provider" ]] && [[ -n "${CLAUDE_PROVIDERS[$provider]}" ]]; then | |
| local provider_config="${CLAUDE_PROVIDERS[$provider]}" | |
| export ANTHROPIC_BASE_URL="${provider_config%%|*}" | |
| export ANTHROPIC_AUTH_TOKEN="${provider_config#*|}" | |
| # Always add --dangerously-skip-permissions for non-original mode | |
| extra_args+=(--dangerously-skip-permissions) | |
| fi | |
| fi | |
| # Run claude with remaining arguments | |
| ${HOME}/.claude/local/claude "${extra_args[@]}" "$@" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment