# claude.sh

> Source: <https://gist.github.com/nerdalert/b323769d669e16a447163502faf84e35>
> Published: 2026-09-15 16:19:33+00:00

|  | #!/usr/bin/env bash | 
|  | # claude launcher — route to either Vertex or the dogfood gateway. | 
|  | # Usage: | 
|  | # ./claude <route> [shortcuts...] [extra claude args...] | 
|  | # | 
|  | # Routes: | 
|  | # vertex route via Google Vertex | 
|  | # dogfood route via dogfood AI gateway (default) | 
|  | # | 
|  | # Shortcuts (expand to claude flags; combine freely, any order): | 
|  | # -c \| continue \| --continue -> --continue | 
|  | # -r \| resume \| --resume -> --resume | 
|  | # -y \| yolo \| dangerous -> --dangerously-skip-permissions | 
|  | # | 
|  | # Anything else is passed straight through to claude. | 
|  | # | 
|  | # Examples: | 
|  | # ./claude dogfood -c -y # gateway, continue last, skip permissions | 
|  | # ./claude vertex resume # vertex, pick a session to resume | 
|  | # ./claude -c # default route (dogfood), continue | 
|  | set -euo pipefail | 
|  | DEFAULT_ROUTE="dogfood" | 
|  | # --- Vertex settings --- | 
|  | VERTEX_PROJECT_ID="<INSERT_ME>" | 
|  | VERTEX_REGION="global" | 
|  | VERTEX_MODEL="claude-sonnet-4@20250514" | 
|  | # --- Dogfood gateway settings --- | 
|  | GW_BASE_URL="<INSERT_HERE>" | 
|  | GW_API_KEY="<INSERT_HERE>" | 
|  | # --- Route: first arg if it names one, else default --- | 
|  | route="$DEFAULT_ROUTE" | 
|  | case "${1:-}" in | 
|  | vertex\|dogfood) route="$1"; shift ;; | 
|  | esac | 
|  | # --- Expand shortcuts, pass everything else through --- | 
|  | claude_args=() | 
|  | for arg in "$@"; do | 
|  | case "$arg" in | 
|  | -c\|continue\|--continue) claude_args+=(--continue) ;; | 
|  | -r\|resume\|--resume) claude_args+=(--resume) ;; | 
|  | -y\|yolo\|dangerous\|--dangerously-skip-permissions) | 
|  | claude_args+=(--dangerously-skip-permissions) ;; | 
|  | *) claude_args+=("$arg") ;; | 
|  | esac | 
|  | done | 
|  | case "$route" in | 
|  | vertex) | 
|  | export CLAUDE_CODE_USE_VERTEX=1 | 
|  | export ANTHROPIC_VERTEX_PROJECT_ID="$VERTEX_PROJECT_ID" | 
|  | export CLOUD_ML_REGION="$VERTEX_REGION" | 
|  | export ANTHROPIC_MODEL="$VERTEX_MODEL" | 
|  | export ANTHROPIC_SMALL_FAST_MODEL="$VERTEX_MODEL" | 
|  | unset ANTHROPIC_BASE_URL ANTHROPIC_API_KEY | 
|  | echo ">> route: VERTEX (project=$VERTEX_PROJECT_ID region=$VERTEX_REGION)" >&2 | 
|  | ;; | 
|  | dogfood) | 
|  | # unset (not ""), so Claude Code doesn't treat Vertex as enabled | 
|  | unset CLAUDE_CODE_USE_VERTEX ANTHROPIC_VERTEX_PROJECT_ID CLOUD_ML_REGION | 
|  | unset ANTHROPIC_MODEL ANTHROPIC_SMALL_FAST_MODEL | 
|  | export ANTHROPIC_BASE_URL="$GW_BASE_URL" | 
|  | export ANTHROPIC_API_KEY="$GW_API_KEY" | 
|  | echo ">> route: DOGFOOD gateway" >&2 | 
|  | ;; | 
|  | esac | 
|  | exec claude "${claude_args[@]}" |
