#!/bin/bash # OpenCode 启动脚本 # 支持通过快捷名指定模型 # # Provider ID: # zhipuai-coding-plan 智谱 GLM 系列(凭据在 opencode.json + auth.json 中配置) # deepseek DeepSeek 系列(凭据在 auth.json 中配置) # # 用法: # runoc.sh # 默认模型 (GLM 5.1) # runoc.sh 51 # GLM 5.1 # runoc.sh ds # DeepSeek V4 Pro # runoc.sh -p deepseek # DeepSeek Provider + 默认模型 # runoc.sh -p deepseek ds # DeepSeek Provider + DeepSeek V4 Pro # ── 参数解析 ────────────────────────────────────────────── MODEL_KEY="" PROVIDER_OVERRIDE="" while [ $# -gt 0 ]; do case "$1" in --provider|-p) [ $# -ge 2 ] || { echo "错误: --provider 需要参数" >&2; exit 1; } PROVIDER_OVERRIDE="$2"; shift 2 ;; -h|--help) echo "用法: runoc.sh [选项] [模型]" echo "" echo "选项:" echo " --provider, -p <名称> API 提供商 (glm / deepseek)" echo "" echo "GLM 模型: 45|45a|46|47|5|5t|51" echo "DeepSeek 模型: ds|dsf" echo "其他: 直接传入 provider/model 格式" echo "" echo "示例:" echo " runoc.sh # 默认 GLM 5.1" echo " runoc.sh 47 # GLM 4.7" echo " runoc.sh -p deepseek ds # DeepSeek V4 Pro" echo " runoc.sh zhipuai-coding-plan/glm-5.1 # 完整格式" exit 0 ;; *) MODEL_KEY="$1"; shift ;; esac done # ── Provider & 模型解析 ────────────────────────────────── MODEL_KEY="${MODEL_KEY:-51}" case "$MODEL_KEY" in 45) MODEL="zhipuai-coding-plan/glm-4.5" ;; 45a) MODEL="zhipuai-coding-plan/glm-4.5-air" ;; 46) MODEL="zhipuai-coding-plan/glm-4.6" ;; 47) MODEL="zhipuai-coding-plan/glm-4.7" ;; 5) MODEL="zhipuai-coding-plan/glm-5" ;; 5t) MODEL="zhipuai-coding-plan/glm-5-turbo" ;; 51) MODEL="zhipuai-coding-plan/glm-5.1" ;; ds) MODEL="deepseek/deepseek-v4-pro"; PROVIDER_OVERRIDE="deepseek" ;; dsf) MODEL="deepseek/deepseek-v4-flash"; PROVIDER_OVERRIDE="deepseek" ;; *) MODEL="$MODEL_KEY" ;; esac if [ -n "$PROVIDER_OVERRIDE" ]; then case "$MODEL" in */*) ;; *) MODEL="${PROVIDER_OVERRIDE}/${MODEL}" ;; esac fi # ── tmux 模型传播 ──────────────────────────────────────── if [ -n "${TMUX:-}" ]; then SESSION_ID="$(tmux display-message -p '#{session_id}')" tmux set-option -p @opencode_model "$MODEL" fi # ── 启动 OpenCode ──────────────────────────────────────── echo "启动 OpenCode (模型: $MODEL)" opencode -m "$MODEL"