Claude Code는 Anthropic 모델만 써야할것 같지만, 그렇지 않다. 아주 간단하게 다른 LLM을 쓸 수 있다.
다음과 같이 claude code에 명령하면 claude code를 다른 LLM에서 쓸 수 있도록 할 수 있다
"나는 ollama 서버를 xxx.xxx.xxx.xxx IP에 설치해서 가지고 있는데, 여기있는 gemma4:26b 를 사용해서 claude code를 쓸 수 있도록 환경변수를 정의하고, claude code를 실행하는 claude_w.sh 라는 쉘스크립트를 짜줘. 이를 위해서 ccr을 설치하고 설정해줘."
"claude_w.sh를 검증하고 부족한 점을 보완해줘"
아래는 이를 위한 사전 지식 정보이다.
1) Claude Code를 실행할때 적절한 환경변수를 선언하면, LLM API 서버를 바꾸어서 작동하게 할 수 있다
그리고 연관 환경변수는 아래와 같다
$ export ANTHROPIC_BASE_URL="$CCR_URL"
$ export ANTHROPIC_AUTH_TOKEN="ccr"
$ export ANTHROPIC_MODEL="$MAIN_MODEL"
$ export ANTHROPIC_SMALL_FAST_MODEL="$SMALL_MODEL"
$ claude
하면 claude가 위 URL의 LLM 서버를 사용하도록 구동된다.
2) Claude Code LLM 서버 스펙을 지원하면서 ollama 서버와 붙일 수 있는 중간 G/W역할을 하는 Claude Code Router(CCR)가 존재한다.
따라서 CCR에 ollama 서버를 등록한 후 실행하면, Claude Code가 접속하여 사용가능한 local LLM API 서버가 구동된다.
3) 결과적으로
a) CCR을 실행하고
b) 환경변수를 적절히 선언한 후
c) Claude Code가 실행되면, 해당 Claude Code는 해당 ollama 서버로 붙게 된다.
하지만 Web Search같은 기능들이 작동하지 않거나(Anthropic API 서버에서 제공) 기존보다 품질이 떨어지는 경우가 있기 때문에(gemma4, qwen 3.6등 테스트해보았다) claude code에 대안을 제시해줘야 하며, 각 모델별 다양한 장단점 파악하에 사용하면 된다.
4) 아래 첨부는 claude code가 만들어준 macos용 쉘 스크립트이다.
참고하도록 하자.
$ claude_w.sh gemma4 <-- ollama에서 gemma4를 사용하도록 claude code를 실행한다.
#!/usr/bin/env bash
# Launch Claude Code against a chosen Ollama model on 192.168.0.96,
# routed through the local claude-code-router proxy.
#
# Usage:
# claude_w.sh <model-key> [claude args...]
# claude_w.sh list
set -euo pipefail
CCR_URL="http://127.0.0.1:3456"
OLLAMA_HOST="http://192.168.0.96:11434"
SMALL_DEFAULT="ollama,gemma4_e4b_justin:latest"
# Model key → main ollama model. Kept as a case for bash 3.2 (macOS default) compat.
resolve_model() {
case "$1" in
qwen36) echo "ollama,qwen3.6:27b" ;;
gemma4) echo "ollama,gemma4:26b" ;;
gemma4-e4b) echo "ollama,gemma4_e4b_justin:latest" ;;
*) return 1 ;;
esac
}
print_models() {
cat <<'EOF'
Supported model keys:
qwen36 ollama,qwen3.6:27b Qwen3.6 27B - main reasoning, tool calling supported
gemma4 ollama,gemma4:26b Gemma4 26B - limited tool calling
gemma4-e4b ollama,gemma4_e4b_justin:latest Gemma4 E4B 7.5B - small/fast, limited tool calling
EOF
}
usage() {
cat <<'EOF'
Usage:
claude_w.sh <model-key> [claude args...]
claude_w.sh list
EOF
print_models
}
[[ $# -ge 1 ]] || { usage >&2; exit 2; }
KEY="$1"; shift
case "$KEY" in
list|-l|--list) print_models; exit 0 ;;
-h|--help|help) usage; exit 0 ;;
esac
if ! MAIN_MODEL="$(resolve_model "$KEY")"; then
echo "[claude_w] unknown model key: $KEY" >&2
print_models >&2
exit 2
fi
# When the small/fast e4b model is the chosen main, reuse it; otherwise default.
if [[ "$KEY" == "gemma4-e4b" ]]; then
SMALL_MODEL="$MAIN_MODEL"
else
SMALL_MODEL="$SMALL_DEFAULT"
fi
# 1) Ensure ccr proxy is running. Surface errors instead of swallowing them.
if ! ccr status >/dev/null 2>&1; then
ccr start || { echo "[claude_w] ccr start failed" >&2; exit 1; }
fi
# 2) Wait up to ~5s for ccr to bind 127.0.0.1:3456 (avoids ECONNREFUSED race).
for _ in $(seq 1 25); do
(exec 3<>/dev/tcp/127.0.0.1/3456) >/dev/null 2>&1 && { exec 3<&-; exec 3>&-; break; }
sleep 0.2
done
(exec 3<>/dev/tcp/127.0.0.1/3456) >/dev/null 2>&1 \
|| { echo "[claude_w] ccr proxy not responding at $CCR_URL" >&2; exit 1; }
exec 3<&- 3>&- 2>/dev/null || true
# 3) Verify remote ollama is reachable and has the requested model.
TAGS="$(curl -sf --max-time 3 "$OLLAMA_HOST/api/tags" || true)"
[[ -n "$TAGS" ]] \
|| { echo "[claude_w] remote ollama unreachable: $OLLAMA_HOST" >&2; exit 1; }
MODEL_NAME="${MAIN_MODEL#ollama,}"
grep -q "\"name\":\"$MODEL_NAME\"" <<<"$TAGS" \
|| { echo "[claude_w] model not present on remote ollama: $MODEL_NAME" >&2; exit 1; }
export ANTHROPIC_BASE_URL="$CCR_URL"
export ANTHROPIC_AUTH_TOKEN="ccr"
export ANTHROPIC_MODEL="$MAIN_MODEL"
export ANTHROPIC_SMALL_FAST_MODEL="$SMALL_MODEL"
echo "[claude] main=$MAIN_MODEL small=$SMALL_MODEL via $ANTHROPIC_BASE_URL"
[[ "$MAIN_MODEL" == *gemma* ]] \
&& echo "[warn] gemma tool-calling support is limited; expect reduced reliability"
exec claude "$@"
5) 완전히 다른 방법으로, ollama가 설치된 서버에서 claude를 바로 실행할 수 있다면 아래 방법도 시도해볼만한다.
(ollama의 공식 제안 방법이다)
$ ollama launch claude
그러면 ollama가 환경설정을 알아서 해주고 claude가 실행된다.

'머신러닝AI' 카테고리의 다른 글
| 왜 Agent Team으로 구성된 AI가 더 잘되는가? (0) | 2026.05.23 |
|---|---|
| Claude Code를 Agent로 제대로 쓰기 위한 툴 가이드 (MacOS 중심) (0) | 2026.04.27 |
| Claude Code + revfactory harness 플러그인으로, 비지니스 업무 처리하기(조사/보고 자료 확보 및 보고서 작성) (0) | 2026.04.26 |
| 맥미니 없이도 윈도우에서 OpenClaw 설치해서 해보기 (WSL2 - 윈도우내 리눅스) (0) | 2026.03.22 |
| 맥미니 없이도 윈도우에서 OpenClaw 설치해서 해보기 (Native Windows) (0) | 2026.03.21 |