#!/bin/bash # Claude Code with your full ~/.claude setup, but every model (main, subagents, # background) is the free-best chain on the local OmniRoute gateway. Free providers log # prompts, so it refuses to start outside public repos unless --force. set -euo pipefail readonly GW="http://127.0.0.1:20128" readonly MODEL="${CLAUDE_FREE_MODEL:-free-best}" KEY="$(cat "${HOME}/.config/omniroute/api_key")" readonly KEY if [[ "${1:-}" == --force ]]; then shift else free-llm-check-dir . || { echo "claude-free: only public repos, /tmp, /var/log (or --force)" >&2; exit 2; } fi curl -fsS -m 3 -o /dev/null "${GW}/v1/models" -H "Authorization: Bearer ${KEY}" || { echo "claude-free: gateway down; run ~/src/omniroute-tetris-test/start.sh" >&2; exit 3; } export ANTHROPIC_BASE_URL="${GW}" ANTHROPIC_AUTH_TOKEN="${KEY}" ANTHROPIC_MODEL="${MODEL}" \ ANTHROPIC_SMALL_FAST_MODEL="${MODEL}" ANTHROPIC_DEFAULT_OPUS_MODEL="${MODEL}" \ ANTHROPIC_DEFAULT_SONNET_MODEL="${MODEL}" ANTHROPIC_DEFAULT_HAIKU_MODEL="${MODEL}" \ CLAUDE_CODE_SUBAGENT_MODEL="${MODEL}" exec claude --model "${MODEL}" "$@"