Skip to content

Instantly share code, notes, and snippets.

@FradSer
Created October 17, 2025 14:14
Show Gist options
  • Select an option

  • Save FradSer/deccc33dedcca741ffc0bc8480cfd5c6 to your computer and use it in GitHub Desktop.

Select an option

Save FradSer/deccc33dedcca741ffc0bc8480cfd5c6 to your computer and use it in GitHub Desktop.
# 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