-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclaudex
More file actions
executable file
·50 lines (46 loc) · 2.3 KB
/
Copy pathclaudex
File metadata and controls
executable file
·50 lines (46 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env bash
# Run Claude Code through CLIProxyAPI with separate settings in ~/.claudex.
# Uses the current directory.
# Usage: claudex [claude args] Example: claudex --model opus --effort low
set -euo pipefail
# Resolve symlinks so the repo is found when invoked via ~/.local/bin/claudex
SOURCE="${BASH_SOURCE[0]}"
while [ -L "$SOURCE" ]; do
DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE == /* ]] || SOURCE="$DIR/$SOURCE"
done
SCRIPT_DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
CONFIG="$SCRIPT_DIR/cliproxy/config.yaml"
KEY="${CLIPROXY_LOCAL_API_KEY:-}"
if [ -z "$KEY" ] && [ -f "$CONFIG" ]; then
# `|| true` guards set -e/pipefail: grep exits 1 on no match and can take SIGPIPE from head.
KEY="$(grep -oE '[0-9a-f]{64}' "$CONFIG" | head -1 || true)"
fi
[ -z "$KEY" ] && { echo "No local API key. Set CLIPROXY_LOCAL_API_KEY or add it to $CONFIG"; exit 1; }
# T3 may not load the shell PATH, so use the standard install path as a fallback.
CLAUDE_BIN="${CLAUDE_BIN:-$(command -v claude || echo "$HOME/.local/bin/claude")}"
# Each *_MODEL value must exactly match an alias in the proxy config.
# Keep the spaces in "GPT 5.5" and "GPT 5.4 mini". *_MODEL_NAME only controls
# the displayed name. A mismatch causes a 502 error and repeated retries.
exec env -u ANTHROPIC_API_KEY \
CLAUDE_CONFIG_DIR="$HOME/.claudex" \
ANTHROPIC_BASE_URL=http://127.0.0.1:8317 \
ANTHROPIC_AUTH_TOKEN="$KEY" \
ANTHROPIC_MODEL=opus \
ANTHROPIC_DEFAULT_FABLE_MODEL='GPT-5.6 Sol' \
ANTHROPIC_DEFAULT_FABLE_MODEL_NAME='GPT-5.6 Sol' \
ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES=effort,xhigh_effort,max_effort \
ANTHROPIC_DEFAULT_OPUS_MODEL='GPT-5.6 Luna' \
ANTHROPIC_DEFAULT_OPUS_MODEL_NAME='GPT-5.6 Luna' \
ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES=effort,xhigh_effort,max_effort \
ANTHROPIC_DEFAULT_SONNET_MODEL='GPT 5.5' \
ANTHROPIC_DEFAULT_SONNET_MODEL_NAME='GPT-5.5' \
ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES=effort,xhigh_effort \
ANTHROPIC_DEFAULT_HAIKU_MODEL='GPT 5.4 mini' \
ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME='GPT-5.4 mini' \
ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES=effort,xhigh_effort \
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 \
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY=3 \
ENABLE_TOOL_SEARCH=false \
"$CLAUDE_BIN" "$@"