- 禁用 runcc 每日自动更新检查 - 简化启动参数为 --verbose 模式 - 添加 runoc 可执行权限 - 记录 Claude Code v2.1.154 接口不兼容问题
81 lines
3.1 KiB
Bash
Executable File
81 lines
3.1 KiB
Bash
Executable File
#!/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"
|