claudish
Claudish 是一款命令行工具,旨在让开发者能够使用任意 AI 模型来运行强大的 Claude Code 编程助手。它通过在本机搭建一个兼容 Anthropic API 的代理服务,巧妙地将用户已有的 AI 订阅(如 Gemini Advanced、ChatGPT Plus、Kimi、GLM 等)或本地部署的开源模型(如 Ollama、LM Studio)接入 Claude Code 的工作流中。
这一工具主要解决了用户无需为特定模型重复付费的问题,实现了“自带密钥”(BYOK)的灵活模式。用户不仅可以统一管理多个平台的订阅以降低成本,还能在完全离线的环境下利用本地模型处理敏感代码,确保数据隐私安全。
Claudish 特别适合希望提升编码效率且对成本敏感的软件开发者、技术研究人员以及注重数据隐私的企业团队。其技术亮点包括支持超过 580 种模型的智能路由、自动识别主流模型名称、实时流式输出以及与原生 Claude Code 协议的高度兼容。无论是云端大模型还是本地轻量级模型,Claudish 都能让用户在熟悉的终端环境中自由切换,享受无缝的 AI 编程体验。
使用场景
某全栈开发者需要在本地重构一个遗留的 Python 数据处理模块,希望利用 Claude Code 强大的多文件编辑能力,但受限于团队预算无法额外购买 Anthropic 订阅,且部分代码涉及敏感数据严禁上传云端。
没有 claudish 时
- 工具割裂:必须在终端手动切换不同的 AI 客户端,无法享受 Claude Code 统一的命令行交互体验和多文件自动编排能力。
- 成本高昂:为了使用高级编码代理功能,被迫单独开通昂贵的 Anthropic Max 订阅,导致现有 Gemini Advanced 或 ChatGPT Plus 会员权益闲置浪费。
- 隐私风险:处理敏感业务逻辑时,只能选择功能较弱的本地脚本或完全断网开发,难以在保障数据不出域的前提下获得高质量的代码建议。
- 配置繁琐:每次尝试不同模型(如从 GPT-4o 切换到 Qwen)都需要重写复杂的 API 调用脚本,无法在同一会话中灵活热切换。
使用 claudish 后
- 体验统一:直接通过
claudish --model oai@gpt-4o命令,即可让现有的 ChatGPT Plus 账号在原生 Claude Code 界面中运行,无缝获得多文件重构能力。 - 降本增效:复用团队已购买的 Google Vertex AI 或 OpenRouter 额度,无需新增任何订阅费用,真正实现“一份投入,多端通用”。
- 安全合规:针对敏感模块,一键切换至本地 Ollama 模型(
claudish --model ollama@qwen2.5-coder),确保代码全程在本地运行,彻底杜绝泄露风险。 - 灵活调度:在单次开发会话中,可根据任务难度动态切换模型,简单任务用轻量模型省钱,复杂架构用高端模型提质,全程无需重启或重新配置。
claudish 的核心价值在于打破了模型供应商与顶级编码交互界面之间的壁垒,让开发者能自由组合现有资源,以最低成本和最高安全性释放 AI 编程潜力。
运行环境要求
- Linux
- macOS
- Windows
- 非必需
- 仅在使用本地模型(如 Ollama, LM Studio, vLLM, MLX)时取决于所选模型的需求
- 云端模型无需本地 GPU
未说明(取决于是否运行本地模型及模型大小)

快速开始
🔮 Claudish
Claude 代码。任何模型。
使用你现有的 AI 订阅与 Claude Code 配合使用。 支持 Anthropic Max、Gemini Advanced、ChatGPT Plus/Codex、Kimi、GLM、OllamaCloud — 以及通过 OpenRouter 的 580 多种模型和本地模型,确保完全的隐私。
Claudish(类似于 Claude)是一个命令行工具,它允许你通过本地 Anthropic API 兼容服务器代理请求,从而使用任何 AI 模型运行 Claude Code。
支持的提供商:
- 云端: OpenRouter(580+ 模型)、Google Gemini、OpenAI、MiniMax、Kimi、GLM、Z.AI、OllamaCloud、OpenCode Zen
- 本地: Ollama、LM Studio、vLLM、MLX
- 企业级: Vertex AI(Google Cloud)
使用你现有的 AI 订阅
停止为多个 AI 订阅付费。 Claudish 让你可以用已有的订阅配合 Claude Code 强大的界面:
| 你的订阅 | 命令 |
|---|---|
| Anthropic Max | 原生支持(直接使用 claude) |
| Gemini Advanced | claudish --model g@gemini-3-pro-preview |
| ChatGPT Plus/Codex | claudish --model oai@gpt-5.3 或 oai@gpt-5.3-codex |
| Kimi | claudish --model kimi@kimi-k2.5 |
| GLM | claudish --model glm@GLM-4.7 |
| MiniMax | claudish --model mm@minimax-m2.1 |
| OllamaCloud | claudish --model oc@qwen3-next |
| OpenCode Zen Go | claudish --model zgo@glm-5 |
100% 离线选项——你的代码永远不会离开你的设备:
claudish --model ollama@qwen3-coder:latest "your task"
自带密钥(BYOK)
Claudish 是一个 自带密钥的 AI 编码助手:
- ✅ 使用你已经拥有的 API 密钥
- ✅ 无需额外订阅费用
- ✅ 完全掌控成本——只为你使用的部分付费
- ✅ 适用于任何提供商
- ✅ 会话中可随时切换模型
特性
- ✅ 多提供商支持 - OpenRouter、Gemini、Vertex AI、OpenAI、OllamaCloud 和本地模型
- ✅ 新的路由语法 - 使用
provider@model[:concurrency]进行显式路由(例如google@gemini-2.0-flash) - ✅ 原生自动检测 - 像
gpt-4o、gemini-2.0-flash、llama-3.1-70b这样的模型会自动路由到它们的原生 API - ✅ 直接 API 访问 - Google、OpenAI、MiniMax、Kimi、GLM、Z.AI、OllamaCloud、Poe 可直接计费
- ✅ Vertex AI Model Garden - 访问 Google 及合作伙伴的模型(MiniMax、Mistral、DeepSeek、Qwen、OpenAI OSS)
- ✅ 本地模型支持 - Ollama、LM Studio、vLLM、MLX 支持
ollama@、lmstudio@语法及并发控制 - ✅ 跨平台 - 适用于 Node.js 和 Bun(v1.3.0+)
- ✅ 通用兼容性 - 可以用
npx或bunx使用,无需安装 - ✅ 交互式设置 - 如果未提供 API 密钥和模型,会提示输入(零配置!)
- ✅ 监控模式 - 代理到真实的 Anthropic API 并记录所有流量(用于调试)
- ✅ 协议兼容性 - 与 Claude Code 通信协议 1:1 兼容
- ✅ 无头模式 - 非交互式执行时自动打印模式
- ✅ 静默模式 - 默认输出整洁(无日志污染)
- ✅ JSON 输出 - 结构化数据便于工具集成
- ✅ 实时流式传输 - 实时查看 Claude Code 的输出
- ✅ 并行运行 - 每个实例都有独立的代理
- ✅ 自主模式 - 通过标志绕过所有提示
- ✅ 上下文继承 - 在当前目录下运行,并使用相同的
.claude设置 - ✅ Claude Code 标志传递 - 以任意顺序转发任何 Claude Code 标志(
--agent、--effort、--permission-mode等) - ✅ 视觉代理 - 非视觉模型会自动通过 Claude 获取图像描述,使每个模型都能“看见”
安装
快速安装
# Shell 脚本(Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/MadAppGang/claudish/main/install.sh | bash
# Homebrew(macOS)
brew tap MadAppGang/tap && brew install claudish
# npm
npm install -g claudish
# Bun
bun install -g claudish
先决条件
- Claude Code - 必须安装 Claude CLI
- 至少一个 API 密钥:
- OpenRouter API 密钥 - 可访问 100 多种模型(有免费层级)
- Google Gemini API 密钥 - 用于直接访问 Gemini
- OpenAI API 密钥 - 用于直接访问 OpenAI
- OllamaCloud API 密钥 - 用于云托管的 Ollama 模型(
oc/前缀) - 或本地模型(Ollama、LM Studio)无需 API 密钥
其他安装选项
无需安装即可使用:
npx claudish@latest --model x-ai/grok-code-fast-1 "your prompt"
bunx claudish@latest --model x-ai/grok-code-fast-1 "your prompt"
从源代码安装:
git clone https://github.com/MadAppGang/claudish.git
cd claudish
bun install && bun run build && bun link
快速入门
步骤 0:初始化 Claudish 技能(仅首次)
# 导航到你的项目目录
cd /path/to/your/project
# 安装 Claudish 技能以实现自动最佳实践
claudish --init
# 重新加载 Claude Code 以发现该技能
作用:
- ✅ 将 Claudish 使用技能安装在
.claude/skills/claudish-usage/ - ✅ 启用自动子代理委派
- ✅ 强制执行基于文件的指令模式
- ✅ 防止上下文窗口污染
运行 --init 后,Claude 会自动:
- 当你提到外部模型(Grok、GPT-5 等)时使用子代理
- 遵循 Claudish 使用的最佳实践
- 为不同任务建议专业代理
选项 1:交互模式(最简单)
# 直接运行——会提示输入 API 密钥和模型
claudish
# 按提示输入你的 OpenRouter API 密钥
# 从列表中选择一个模型
# 开始编码!
选项 2:使用环境变量
# 设置环境
export OPENROUTER_API_KEY=sk-or-v1-... # 用于 OpenRouter 模型
export GEMINI_API_KEY=... # 用于直接 Google API
export OPENAI_API_KEY=sk-... # 用于直接 OpenAI API
export ANTHROPIC_API_KEY=sk-ant-api03-placeholder # 必需的占位符
# 使用自动检测的模型运行
claudish --model gpt-4o "implement user authentication" # → OpenAI
claudish --model gemini-2.0-flash "add tests" # → Google
# 或者使用显式提供者
claudish --model openrouter@anthropic/claude-3.5-sonnet "review code"
注意: 在交互模式下,如果未设置 OPENROUTER_API_KEY 环境变量,系统会提示您输入。这使得首次使用变得非常简单!
AI 代理使用
对于在 Claude Code 中运行的 AI 代理: 请使用专门的 AI 代理指南,以获取关于基于文件的模式和子代理委派的全面说明。
# 打印完整的 AI 代理使用指南
claudish --help-ai
# 将指南保存到文件以供参考
claudish --help-ai > claudish-agent-guide.md
AI 代理快速参考:
AI 代理的主要工作流程
获取可用模型:
# 列出所有模型或搜索 claudish --models claudish --models gemini # 获取顶级推荐模型(JSON 格式) claudish --top-models --json通过子代理运行 Claudish(推荐模式):
// 不要在主对话中直接运行 Claudish // 使用 Task 工具委派给子代理 const result = await Task({ subagent_type: "general-purpose", description: "使用 Grok 实现功能", prompt: ` 使用 Claudish 通过 Grok 模型实现功能。 步骤: 1. 创建指令文件:/tmp/claudish-task-${Date.now()}.md 2. 将功能需求写入文件 3. 运行:claudish --model x-ai/grok-code-fast-1 --stdin < /tmp/claudish-task-*.md 4. 阅读结果并仅返回摘要(2-3 句) 不要返回完整实现。回复内容不超过 300 个 token。 ` });基于文件的指令模式(避免上下文污染):
// 将指令写入文件 const instructionFile = `/tmp/claudish-task-${Date.now()}.md`; const resultFile = `/tmp/claudish-result-${Date.now()}.md`; await Write({ file_path: instructionFile, content: ` # 任务 您的任务描述在此 # 输出 将结果写入:${resultFile} ` }); // 使用 stdin 运行 Claudish await Bash(`claudish --model x-ai/grok-code-fast-1 --stdin < ${instructionFile}`); // 读取结果 const result = await Read({ file_path: resultFile }); // 仅返回摘要 return extractSummary(result);
关键原则:
- ✅ 使用基于文件的模式以避免上下文窗口污染
- ✅ 委派给子代理而不是直接运行
- ✅ 仅返回摘要(而非完整对话记录)
- ✅ 根据任务选择合适的模型(参见
--models或--top-models)
资源:
- 完整的 AI 代理指南:
claudish --help-ai - 技能文档:
skills/claudish-usage/SKILL.md(位于仓库根目录) - 模型集成:
skills/claudish-integration/SKILL.md(位于仓库根目录)
使用方法
基本语法
claudish [选项] <claude-args...>
选项
有关所有详细信息的完整参考,请参阅 设置参考。
| 标志 | 缩写 | 描述 | 默认值 |
|---|---|---|---|
--model <model> |
-m |
要使用的模型(provider@model 语法) |
交互式选择器 |
--model-opus <model> |
用于 Opus 角色的模型(规划、复杂任务) | ||
--model-sonnet <model> |
用于 Sonnet 角色的模型(默认编码) | ||
--model-haiku <model> |
用于 Haiku 角色的模型(快速任务) | ||
--model-subagent <model> |
用于子代理的模型(Task 工具) | ||
--profile <name> |
-p |
用于模型映射的命名配置文件 | 默认配置文件 |
--interactive |
-i |
交互模式(持久会话) | 当无提示时自动启用 |
--auto-approve |
-y |
跳过权限提示 | false |
--no-auto-approve |
显式启用权限提示 | ||
--dangerous |
传递 --dangerouslyDisableSandbox |
false |
|
--port <port> |
代理服务器端口 | 随机(3000-9000) | |
--debug |
-d |
启用调试日志记录至 logs/ |
false |
--log-level <level> |
日志详细程度:debug、info、minimal |
info |
|
--quiet |
-q |
屈服 [claudish] 消息 |
单次执行时默认开启 |
--verbose |
-v |
显示 [claudish] 消息 |
交互式时默认开启 |
--json |
用于工具集成的 JSON 输出(隐含 --quiet) |
false |
|
--stdin |
从标准输入读取提示 | false |
|
--free |
在选择器中仅显示免费模型 | false |
|
--monitor |
代理真实的 Anthropic API 并记录流量 | false |
|
--summarize-tools |
总结工具描述(适用于本地模型) | false |
|
--cost-tracker |
启用成本跟踪(同时启用监控模式) | false |
|
--audit-costs |
显示成本分析报告 | ||
--reset-costs |
重置累计成本统计 | ||
--models [query] |
-s |
列出所有模型或模糊搜索 | |
--top-models |
显示精选推荐模型 | ||
--force-update |
强制刷新模型缓存 | ||
--init |
在当前项目中安装 Claudish 技能 | ||
--mcp |
作为 MCP 服务器运行 | ||
--gemini-login |
通过 OAuth 登录 Gemini Code Assist | ||
--gemini-logout |
清除 Gemini 的 OAuth 凭证 | ||
--kimi-login |
通过 OAuth 登录 Kimi | ||
--kimi-logout |
清除 Kimi 的 OAuth 凭证 | ||
--help-ai |
显示 AI 代理使用指南 | ||
--version |
显示版本信息 | ||
--help |
-h |
显示帮助信息 | |
-- |
所有后续参数将传递给 Claude Code |
标志透传:任何未识别的标志都会自动转发给 Claude Code(例如 --agent、--effort、--permission-mode)。
環境変数
Claudish は起動時に現在のディレクトリから .env ファイルを自動的に読み込みます。詳細なリストについては、設定リファレンスをご参照ください。
API キー(クラウドモデルには少なくとも 1 つが必要)
| 変数 | プロバイダー | 別名 |
|---|---|---|
OPENROUTER_API_KEY |
OpenRouter(デフォルトバックエンド、580+ モデル) | |
GEMINI_API_KEY |
Google Gemini (g@, google@) |
|
OPENAI_API_KEY |
OpenAI (oai@) |
|
MINIMAX_API_KEY |
MiniMax (mm@, mmax@) |
|
MINIMAX_CODING_API_KEY |
MiniMax コーディングプラン (mmc@) |
|
MOONSHOT_API_KEY |
Kimi/Moonshot (kimi@) |
KIMI_API_KEY |
KIMI_CODING_API_KEY |
Kimi コーディングプラン (kc@) |
または --kimi-login による OAuth |
ZHIPU_API_KEY |
GLM/Zhipu (glm@) |
GLM_API_KEY |
GLM_CODING_API_KEY |
GLM コーディングプラン (gc@) |
ZAI_CODING_API_KEY |
ZAI_API_KEY |
Z.AI (zai@) |
|
OLLAMA_API_KEY |
OllamaCloud (oc@) |
|
OPENCODE_API_KEY |
OpenCode Zen (zen@) — 無料モデルの場合にはオプション |
|
LITELLM_API_KEY |
LiteLLM (ll@) — LITELLM_BASE_URL が必要 |
|
POE_API_KEY |
Poe (poe@) |
|
VERTEX_API_KEY |
Vertex AI Express (v@) |
|
VERTEX_PROJECT |
Vertex AI OAuth モード (v@) |
GOOGLE_CLOUD_PROJECT |
ANTHROPIC_API_KEY |
プレースホルダー(Claude Code のダイアログを抑制) |
Claudish 設定
| 変数 | 説明 | デフォルト値 |
|---|---|---|
CLAUDISH_MODEL |
デフォルトモデル(ANTHROPIC_MODEL を上書き) |
対話型セレクター |
CLAUDISH_PORT |
デフォルトのプロキシポート | ランダム(3000–9000) |
CLAUDISH_CONTEXT_WINDOW |
コンテキストウィンドウサイズの上書き(ローカルモデル) | 自動検出 |
CLAUDISH_MODEL_OPUS |
Opus ロール用モデル | |
CLAUDISH_MODEL_SONNET |
Sonnet ロール用モデル | |
CLAUDISH_MODEL_HAIKU |
Haiku ロール用モデル | |
CLAUDISH_MODEL_SUBAGENT |
サブエージェント用モデル | |
CLAUDISH_SUMMARIZE_TOOLS |
ツール説明の要約(true/1) |
false |
CLAUDISH_TELEMETRY |
テレメトリの上書き(0/false/off で無効化) |
設定ファイルから |
CLAUDISH_LOCAL_MAX_PARALLEL |
最大同時ローカルモデルリクエスト数(1–8) | 1 |
CLAUDISH_LOCAL_QUEUE_ENABLED |
ローカルモデルキューの有無 | true |
CLAUDISH_QWEN_NO_THINK |
Qwen モデルの思考機能を無効化(1) |
Claude Code 互換性
| 変数 | 説明 |
|---|---|
ANTHROPIC_MODEL |
CLAUDISH_MODEL のフォールバック |
ANTHROPIC_DEFAULT_OPUS_MODEL |
CLAUDISH_MODEL_OPUS のフォールバック |
ANTHROPIC_DEFAULT_SONNET_MODEL |
CLAUDISH_MODEL_SONNET のフォールバック |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
CLAUDISH_MODEL_HAIKU のフォールバック |
CLAUDE_CODE_SUBAGENT_MODEL |
CLAUDISH_MODEL_SUBAGENT のフォールバック |
CLAUDE_PATH |
Claude Code バイナリのカスタムパス |
カスタムエンドポイント
| 変数 | プロバイダー | デフォルト値 |
|---|---|---|
GEMINI_BASE_URL |
Gemini API | https://generativelanguage.googleapis.com |
OPENAI_BASE_URL |
OpenAI/Azure | https://api.openai.com |
MINIMAX_BASE_URL |
MiniMax | https://api.minimax.io |
MOONSHOT_BASE_URL |
Kimi/Moonshot | https://api.moonshot.ai |
ZHIPU_BASE_URL |
GLM/Zhipu | https://open.bigmodel.cn |
ZAI_BASE_URL |
Z.AI | https://api.z.ai |
OLLAMACLOUD_BASE_URL |
OllamaCloud | https://ollama.com |
OPENCODE_BASE_URL |
OpenCode Zen | https://opencode.ai/zen |
LITELLM_BASE_URL |
LiteLLM プロキシサーバー | (LITELLM_API_KEY 使用時に必須) |
OLLAMA_BASE_URL |
Ollama(ローカル) | http://localhost:11434 |
OLLAMA_HOST |
OLLAMA_BASE_URL の別名 |
|
LMSTUDIO_BASE_URL |
LM Studio(ローカル) | http://localhost:1234 |
VLLM_BASE_URL |
vLLM(ローカル) | http://localhost:8000 |
MLX_BASE_URL |
MLX(ローカル) | http://127.0.0.1:8080 |
優先順位: CLI フラグ > CLAUDISH_* 環境変数 > ANTHROPIC_* 環境変数 > プロファイル設定 > 対話型セレクター。
重要なお知らせ:
ANTHROPIC_API_KEY=sk-ant-api03-placeholder(または任意の値)を設定すると、Claude Code のログインダイアログが表示されなくなります。- 対話モードでは、API キーが設定されていない場合、入力を求められます。
設定ファイル
Claudish は 2 スコープの設定システムを使用しています:
| ファイル | スコープ | 目的 |
|---|---|---|
~/.claudish/config.json |
グローバル | プロファイル、テレメトリ、ルーティングルール(プロジェクト間で共有) |
.claudish.json |
ローカル | プロジェクト固有のプロファイルとルーティングルール(グローバルを上書き) |
.env |
ローカル | 環境変数(起動時に自動読み込み) |
プロファイル設定(~/.claudish/config.json):
{
"version": "1.0.0",
"defaultProfile": "default",
"profiles": {
"default": {
"name": "default",
"models": {
"opus": "oai@gpt-5.3",
"sonnet": "google@gemini-3-pro",
"haiku": "mm@MiniMax-M2.1",
"subagent": "google@gemini-2.0-flash"
}
}
},
"routing": {
"kimi-*": ["kc", "kimi", "openrouter"],
"glm-*": ["gc", "glm"],
"*": ["litellm", "openrouter"]
}
}
カスタムルーティングルールは、モデル名のパターンを優先順位付きのプロバイダーのフォールバックチェーンにマッピングします。パターンには正確な名前、ワイルドカード(kimi-*)、および万能記号(*)が対応可能です。ローカルの .claudish.json ルーティングルールは、グローバルルールを完全に置き換えます。
プロファイルの管理には以下を使用します:
claudish init [--local|--global] # セットアップウィザード
claudish profile list [--local|--global] # プロファイルの一覧表示
claudish profile add [--local|--global] # プロファイルの追加
claudish profile use <name> # デフォルト設定
claudish profile edit <name> # プロファイルの編集
完全な設定リファレンスについては、設定リファレンスをご参照ください。
モデルルーティング(v4.0.0+)
Claudish は明示的なルーティングのために provider@model[:concurrency] 構文を使用し、ネイティブプロバイダーに対しては スマートな自動検出を行います。
新しい構文: provider@model[:concurrency]
# 明示的なプロバイダールーティング
claudish --model google@gemini-2.0-flash "迅速なタスク"
claudish --model openrouter@deepseek/deepseek-r1 "分析"
claudish --model oai@gpt-4o "機能の実装"
claudish --model ollama@llama3.2:3 "コードレビュー" # 3 件の同時リクエスト
提供商快捷方式
| 快捷方式 | 提供商 | API 密钥 | 示例 |
|---|---|---|---|
g@, google@ |
Google Gemini | GEMINI_API_KEY |
g@gemini-2.0-flash |
oai@ |
OpenAI Direct | OPENAI_API_KEY |
oai@gpt-4o |
or@, openrouter@ |
OpenRouter | OPENROUTER_API_KEY |
or@deepseek/deepseek-r1 |
mm@, mmax@ |
MiniMax Direct | MINIMAX_API_KEY |
mm@MiniMax-M2.1 |
kimi@, moon@ |
Kimi Direct | MOONSHOT_API_KEY |
kimi@kimi-k2 |
glm@, zhipu@ |
GLM Direct | ZHIPU_API_KEY |
glm@glm-4 |
zai@ |
Z.AI Direct | ZAI_API_KEY |
zai@glm-4 |
llama@, lc@, meta@ |
OllamaCloud | OLLAMA_API_KEY |
llama@llama-3.1-70b |
oc@ |
OllamaCloud | OLLAMA_API_KEY |
oc@llama-3.1-70b |
zen@ |
OpenCode Zen (免费/付费) | OPENCODE_API_KEY (可选) |
zen@gpt-5-nano |
zgo@, zengo@ |
OpenCode Zen Go 方案 | OPENCODE_API_KEY |
zgo@glm-5 |
v@, vertex@ |
Vertex AI | VERTEX_API_KEY |
v@gemini-2.5-flash |
go@ |
Gemini CodeAssist | (OAuth) | go@gemini-2.5-flash |
poe@ |
Poe | POE_API_KEY |
poe@GPT-4o |
ollama@ |
Ollama (本地) | (无) | ollama@llama3.2 |
lms@, lmstudio@ |
LM Studio (本地) | (无) | lms@qwen2.5-coder |
vllm@ |
vLLM (本地) | (无) | vllm@mistral-7b |
mlx@ |
MLX (本地) | (无) | mlx@llama-3.2-3b |
原生模型自动检测
当未指定提供商时,Claudish 会根据模型名称自动检测:
| 模型模式 | 路由至 | 示例 |
|---|---|---|
gemini-*, google/* |
Google Gemini | gemini-2.0-flash |
gpt-*, o1-*, o3-* |
OpenAI Direct | gpt-4o |
llama-*, meta-llama/* |
OllamaCloud | llama-3.1-70b |
abab-*, minimax/* |
MiniMax Direct | abab-6.5 |
kimi-*, moonshot-* |
Kimi Direct | kimi-k2 |
glm-*, zhipu/* |
GLM Direct | glm-4 |
poe:* |
Poe | poe:GPT-4o |
claude-*, anthropic/* |
Native Anthropic | claude-sonnet-4 |
未知 vendor/model |
错误 | 使用 openrouter@vendor/model |
示例
# 自动检测原生路由(无需前缀!)
claudish --model gemini-2.0-flash "快速任务" # → Google API
claudish --model gpt-4o "实现功能" # → OpenAI API
claudish --model llama-3.1-70b "代码审查" # → OllamaCloud
# 显式指定提供商路由
claudish --model google@gemini-2.5-pro "复杂分析"
claudish --model oai@o1 "复杂推理"
claudish --model openrouter@deepseek/deepseek-r1 "深度分析"
# OllamaCloud - 云端托管的 Llama 模型
claudish --model llama@llama-3.1-70b "代码审查"
claudish --model oc@llama-3.2-vision "分析图片"
# Vertex AI - Google Cloud
VERTEX_API_KEY=... claudish --model v@gemini-2.5-flash "任务"
VERTEX_PROJECT=my-project claudish --model vertex@gemini-2.5-flash "OAuth 模式"
# 本地模型并发控制
claudish --model ollama@llama3.2:3 "审查" # 3 个并发请求
claudish --model ollama@llama3.2:0 "快速" # 无限制(绕过队列)
# 未知厂商需显式使用 OpenRouter
claudish --model openrouter@qwen/qwen-2.5 "任务"
claudish --model or@mistralai/mistral-large "分析"
旧版语法(已弃用)
旧的 前缀/模型 语法仍然可用,但会显示弃用警告:
# 旧版(已弃用) → 新版(推荐)
claudish --model g/gemini-pro → claudish --model g@gemini-pro
claudish --model oai/gpt-4o → claudish --model oai@gpt-4o
claudish --model ollama/llama3.2 → claudish --model ollama@llama3.2
精选模型
开发推荐顶级模型(v3.1.1):
| 模型 | 提供商 | 最佳用途 |
|---|---|---|
openai/gpt-5.3 |
OpenAI | 默认 - 最先进的推理能力 |
minimax/minimax-m2.1 |
MiniMax | 经济实惠,速度快 |
z-ai/glm-4.7 |
Z.AI | 性能均衡 |
google/gemini-3-pro-preview |
100万上下文窗口 | |
moonshotai/kimi-k2-thinking |
MoonShot | 扩展推理能力 |
deepseek/deepseek-v3.2 |
DeepSeek | 代码专家 |
qwen/qwen3-vl-235b-a22b-thinking |
Alibaba | 视觉 + 推理 |
Vertex AI 合作伙伴模型(MaaS - Google Cloud 计费):
| 模型 | 提供商 | 最佳用途 |
|---|---|---|
vertex/minimax/minimax-m2-maas |
MiniMax | 快速、经济 |
vertex/mistralai/codestral-2 |
Mistral | 代码专家 |
vertex/deepseek/deepseek-v3-2-maas |
DeepSeek | 深度推理 |
vertex/qwen/qwen3-coder-480b-a35b-instruct-maas |
Qwen | 代理式编码 |
vertex/openai/gpt-oss-120b-maas |
OpenAI | 开放权重推理 |
列出所有模型:
claudish --models # 列出所有 OpenRouter 模型
claudish --models gemini # 搜索特定模型
claudish --top-models # 显示精选推荐
Claude Code 标志透传(v5.3.0 新增)
Claudish 会将所有未识别的标志直接传递给 Claude Code。这意味着任何 Claude Code 标志都可以与 Claudish 一起使用——无需包装器:
# 使用 Claude Code 代理
claudish --model grok --agent code-review "审查认证系统"
# 控制工作量和权限
claudish --model grok --effort high --permission-mode plan "设计 API"
# 设置预算上限
claudish --model grok --max-budget-usd 0.50 "快速修复"
# 自定义系统提示
claudish --model grok --append-system-prompt "始终以 JSON 格式回复" "列出文件"
# 限制可用工具
claudish --model grok --allowedTools "Read,Grep" "搜索认证漏洞"
Claudish 标志(--model、--stdin、--quiet、-y 等)可以按 任意顺序 出现——无论位置如何,它们都会被识别。
当 Claude Code 标志值以 - 开头时,请使用 --:
claudish --model grok -- --system-prompt "-verbose logging" "任务"
视觉代理(v5.1.0 新功能)
现在所有模型都能“看”图像——即使是那些本身不支持视觉输入的模型。
当你向一个不具备视觉处理能力的模型(比如本地 Ollama 模型)发送图像时,Claudish 会自动执行以下操作:
- 检测到该模型无法处理图像
- 将每张图像发送至 Anthropic API(Claude Sonnet),生成详细的描述文本
- 用
[Image Description: ...]文本替换图像块 - 将补充了描述信息的消息转发给目标模型
Claude Code → 图像 + “这是什么?” → Claudish
↓
┌──────────────────────────────┐
│ 模型是否支持视觉? │
│ 是 → 直接传递图像 │
│ 否 → 使用 Claude 描述图像 → │
│ 替换为文本 │
└──────────────────────────────┘
↓
目标模型
工作原理:
- 使用你现有的 Claude Code
x-api-key(无需额外配置) - 每张图像会并行进行描述(即使有多张图像也能快速完成)
- 每张图像有 30 秒超时时间,超时后会优雅地回退到移除图像
- 描述内容包括文本、布局、颜色、代码、图表和 UI 元素等信息
示例:
# 本地 Ollama 模型(无视觉能力)——图像会被自动描述
claudish --model ollama@llama3.2 “这张截图里有什么?”
# 支持视觉的模型——图像会原样传递
claudish --model g@gemini-2.5-flash “这张截图里有什么?”
回退行为: 如果视觉代理失败(网络错误、超时或 API 问题),Claudish 会回退到移除图像——请求仍然会继续,只是没有图像上下文信息。
状态栏显示
Claudish 会自动在 Claude Code 的状态栏中显示关键信息——无需任何设置!
超紧凑格式: 目录 • 模型ID • $成本 • 上下文%
视觉设计:
- 🔵 目录(亮青色,加粗)——当前所在目录
- 🟡 模型ID(亮黄色)——实际的 OpenRouter 模型 ID
- 🟢 成本(亮绿色)——来自 OpenRouter 的实时会话费用
- 🟣 上下文(亮品红色)——剩余上下文窗口的百分比
- ⚪ 分隔符(浅色)——视觉分隔线
示例:
claudish • x-ai/grok-code-fast-1 • $0.003 • 95%— 使用 Grok 模型,已花费 $0.003,还剩 95% 的上下文空间my-project • openai/gpt-5-codex • $0.12 • 67%— 使用 GPT-5 模型,已花费 $0.12,还剩 67% 的上下文空间backend • minimax/minimax-m2 • $0.05 • 82%— 使用 MiniMax M2 模型,已花费 $0.05,还剩 82% 的上下文空间test • openrouter/auto • $0.01 • 90%— 使用任意自定义模型,已花费 $0.01,还剩 90% 的上下文空间
关键跟踪(实时更新):
- 💰 成本跟踪——基于 Claude Code 会话数据的实时美元费用
- 📊 上下文监控——模型剩余上下文窗口的百分比
- ⚡ 性能优化——超紧凑设计,适合与思考模式界面完美融合
针对思考模式优化:
- ✅ 超紧凑——目录限制在 15 个字符内,为其他信息留出空间
- ✅ 重要信息优先——最重要的信息(目录、模型)放在最前面
- ✅ 智能截断——长目录用“…”缩短
- ✅ 预留空间——为 Claude 的思考模式界面预留约 40 个字符的空间
- ✅ 颜色编码——便于快速目视扫描
- ✅ 不会溢出——即使启用思考模式也能完美适配
自定义模型支持:
- ✅ 任何 OpenRouter 模型——不限于推荐列表(例如
openrouter/auto或自定义模型) - ✅ 实际模型ID——显示确切的 OpenRouter 模型 ID,不做任何翻译
- ✅ 上下文回退——对于未知模型,使用 10 万 token 的上下文窗口作为安全默认值
- ✅ 短名单优化——我们推荐的模型都具有准确的上下文大小
- ✅ 面向未来——适用于未来添加到 OpenRouter 的新模型
工作原理:
- 每个 Claudish 实例都会创建一个临时设置文件,用于自定义状态栏
- 设置通过
--settings标志实现(不会修改全局的 Claude Code 配置) - 状态栏使用简单的 Bash 脚本结合 ANSI 颜色实现(无需外部依赖!)
- 显示来自
CLAUDISH_ACTIVE_MODEL_NAME环境变量的实际 OpenRouter 模型 ID - 上下文跟踪会根据我们推荐列表中的模型使用特定的上下文大小,对于其他模型则使用 10 万 token 作为默认值
- 临时文件会在 Claudish 退出时自动清理
- 每个实例完全隔离——可以并行运行多个实例!
实例间隔离:
- ✅ 不会修改
~/.claude/settings.json - ✅ 每个实例都有自己的配置
- ✅ 可以安全地并行运行多个 Claudish 实例
- ✅ 不会影响标准的 Claude Code
- ✅ 临时文件会在退出时自动清理
- ✅ 无外部依赖(仅使用 Bash,无需 jq!)
示例
基本用法
# 简单提示
claudish “修复 user.ts 中的 bug”
# 多词提示
claudish “使用 JWT 令牌实现用户认证”
指定模型
# 自动检测路由(模型名称决定提供商)
claudish --model gpt-4o “重构整个 API 层” # → OpenAI
claudish --model gemini-2.0-flash “快速修复” # → Google
claudish --model llama-3.1-70b “代码审查” # → OllamaCloud
# 显式指定提供商(新的 @ 语法)
claudish --model google@gemini-2.5-pro “复杂分析”
claudish --model oai@o1 “深度推理任务”
claudish --model openrouter@deepseek/deepseek-r1 “分析” # 对于未知厂商需要显式指定 OpenRouter
# 本地模型并发控制
claudish --model ollama@llama3.2 “代码审查”
claudish --model ollama@llama3.2:3 “并行处理” # 3 个并发任务
claudish --model lmstudio@qwen2.5-coder “实现仪表盘 UI”
自主模式
自动批准功能是默认开启的。如果需要完全自主模式,只需添加 --dangerous 参数:
# 基本用法(自动批准已开启)
claudish “删除未使用的文件”
# 完全自主模式(自动批准 + 危险沙盒关闭)
claudish --dangerous “安装依赖项”
# 如果需要手动确认,可关闭自动批准
claudish --no-auto-approve “进行重要更改”
自定义端口
# 使用特定端口
claudish --port 3000 “分析代码库”
# 或者设置默认端口
export CLAUDISH_PORT=3000
claudish “你的任务”
传递 Claude 标志
# 详细模式
claudish “调试问题” --verbose
# 自定义工作目录
claudish “分析代码” --cwd /path/to/project
# 多个标志
claudish --model openai/gpt-5.3-codex “任务” --verbose --debug
监控模式
新增! Claudish 现在提供监控模式,帮助你了解 Claude Code 内部的工作机制。
# 启用监控模式(需要真实的 Anthropic API 密钥)
claudish --monitor --debug "实现一个功能"
监控模式的作用:
- ✅ 代理至真实的 Anthropic API(非 OpenRouter) - 使用您实际的 Anthropic API 密钥
- ✅ 记录所有流量 - 捕获完整的请求和响应
- ✅ 支持流式传输和 JSON 格式 - 记录 SSE 流和 JSON 响应
- ✅ 将调试日志保存到文件 - 当使用
--debug时,会保存到logs/claudish_*.log - ✅ 直通代理 - 不进行任何翻译,原样转发给 Anthropic
何时使用监控模式:
- 🔍 理解 Claude Code 的 API 协议
- 🐛 调试集成问题
- 📊 分析 Claude Code 的行为
- 🔬 研究与开发
所需条件:
# 监控模式需要真实的 Anthropic API 密钥(而非占位符)
export ANTHROPIC_API_KEY='sk-ant-api03-...'
# 结合 `--debug` 使用以保存日志到文件
claudish --monitor --debug "您的任务"
# 日志将保存至:logs/claudish_TIMESTAMP.log
示例输出:
[Monitor] 服务器已在 http://127.0.0.1:8765 上启动
[Monitor] 模式:直通真实 Anthropic API
[Monitor] 所有流量都将被记录以便分析
=== [MONITOR] Claude Code → Anthropic API 请求 ===
{
"model": "claude-sonnet-4.5",
"messages": [...],
"max_tokens": 4096,
...
}
=== 请求结束 ===
=== [MONITOR] Anthropic API → Claude Code 响应(流式) ===
event: message_start
data: {"type":"message_start",...}
event: content_block_start
data: {"type":"content_block_start",...}
...
=== 流式响应结束 ===
注意: 监控模式会从您的 Anthropic 账户中扣费(而非 OpenRouter)。请使用 --debug 标志来保存日志以便分析。
输出模式
Claudish 支持三种输出模式,适用于不同的场景:
1. 静默模式(单次调用默认)
干净的输出,不含 [claudish] 日志信息,非常适合与其他工具配合使用:
# 单次调用默认为静默模式
claudish "2+2 是多少?"
# 输出:2 + 2 等于 4。
# 在管道中使用
claudish "列出 3 种颜色" | grep -i blue
# 重定向到文件
claudish "分析代码" > analysis.txt
2. 详细模式
显示所有 [claudish] 日志信息,便于调试:
# 详细模式
claudish --verbose "2+2 是多少?"
# 输出:
# [claudish] 正在启动 Claude Code,使用 openai/gpt-4o
# [claudish] 代理地址:http://127.0.0.1:8797
# [claudish] 状态行:dir • openai/gpt-4o • $成本 • 上下文%
# ...
# 2 + 2 等于 4。
# [claudish] 正在关闭代理服务器...
# [claudish] 完成
# 交互模式默认为详细模式
claudish --interactive
3. JSON 输出模式
结构化的输出,非常适合自动化和工具集成:
# JSON 输出(始终为静默模式)
claudish --json "2+2 是多少?"
# 输出:{"type":"result","result":"2 + 2 等于 4.","total_cost_usd":0.068,"usage":{...}}
# 使用 jq 提取结果
claudish --json "列出 3 种颜色" | jq -r '.result'
# 获取费用和 token 使用情况
claudish --json "分析代码" | jq '{result, cost: .total_cost_usd, tokens: .usage.input_tokens}'
# 在脚本中使用
RESULT=$(claudish --json "检查测试是否通过" | jq -r '.result')
echo "AI 说:$RESULT"
# 跟踪多次运行的费用
for task in task1 task2 task3; do
claudish --json "$task" | jq -r '"\(.total_cost_usd)"'
done | awk '{sum+=$1} END {print "总计:$"sum}'
JSON 输出字段:
result- AI 的回答文本total_cost_usd- 总费用(美元)usage.input_tokens- 输入 token 数量usage.output_tokens- 输出 token 数量duration_ms- 总耗时(毫秒)num_turns- 对话轮数modelUsage- 各模型的使用情况细分
工作原理
架构
claudish "您的提示"
↓
1. 解析参数(--model、--no-auto-approve、--dangerous 等)
2. 查找可用端口(随机或指定)
3. 在 http://127.0.0.1:PORT 上启动本地代理
4. 启动:claude --auto-approve --env ANTHROPIC_BASE_URL=http://127.0.0.1:PORT
5. 代理将 Anthropic API 转换为 OpenRouter API 格式
6. 实时流式输出
7. 退出时清理代理
请求流程
普通模式(OpenRouter):
Claude Code → Anthropic API 格式 → 本地代理 → OpenRouter API 格式 → OpenRouter
↓
Claude Code ← Anthropic API 格式 ← 本地代理 ← OpenRouter API 格式 ← OpenRouter
监控模式(Anthropic 直通):
Claude Code → Anthropic API 格式 → 本地代理(记录日志) → Anthropic API
↓
Claude Code ← Anthropic API 格式 ← 本地代理(记录日志) ← Anthropic API
并行运行
每次 claudish 调用:
- 获取一个唯一的随机端口
- 启动独立的代理服务器
- 运行独立的 Claude Code 实例
- 退出时进行清理
这使得可以同时运行多个实例:
# 终端 1
claudish --model x-ai/grok-code-fast-1 "任务 A"
# 终端 2
claudish --model openai/gpt-5.3-codex "任务 B"
# 终端 3
claudish --model minimax/minimax-m2 "任务 C"
扩展思考支持
v1.1.0 新增: Claudish 现在完全支持具有扩展思考/推理能力的模型(Grok、o1 等),并完全符合 Anthropic Messages API 协议。
思考转换模型(v1.5.0)
Claudish 包含一个复杂的 思考转换模型,能够将 Claude Code 的原生思考预算与各大 AI 提供商的独特需求相匹配。
当您在 Claude 中设置思考预算时(例如 budget: 16000),Claudish 会自动进行转换:
| 提供商 | 模型 | 转换逻辑 |
|---|---|---|
| OpenAI | o1、o3 | 将预算映射到 reasoning_effort(minimal/low/medium/high) |
| Gemini 3 | 映射到 thinking_level(low/high) |
|
| Gemini 2.x | 直接传递精确的 thinking_budget(上限为 24k) |
|
| xAI | Grok 3 Mini | 将预算映射到 reasoning_effort(low/high) |
| Qwen | Qwen 2.5 | 启用 enable_thinking + 精确预算 |
| MiniMax | M2 | 启用 reasoning_split(交错思考) |
| DeepSeek | R1 | 自动管理推理(为安全起见会剥离相关参数) |
这确保您可以使用标准的 Claude Code 思考控制功能,与 任何 支持的模型配合使用,而无需担心 API 的具体差异。
什么是扩展思考?
一些 AI 模型(如 Grok 和 OpenAI 的 o1)可以在给出最终答案之前展示其内部的推理过程。这些“思考”内容有助于您理解模型是如何得出结论的。
Claudish 如何处理思考
Claudish 实现了 Anthropic Messages API 的 interleaved-thinking 协议:
思考块(隐藏):
- 包含模型的推理过程
- 在 Claude Code 界面中自动折叠
- 显示“Claude 正在思考…”指示器
- 用户可以展开查看推理过程
文本块(可见):
- 包含最终回答
- 正常显示
- 逐步流式输出
支持思考模式的模型
- ✅ x-ai/grok-code-fast-1 - Grok 的推理模式
- ✅ openai/gpt-5-codex - o1 推理(启用时)
- ✅ openai/o1-preview - 完整推理支持
- ✅ openai/o1-mini - 紧凑型推理
- ⚠️ 其他模型未来可能支持推理
技术细节
流式协议(V2 - 协议合规):
1. message_start
2. content_block_start(文本,索引=0) ← 立即发送!(必需)
3. ping
4. [若推理到达]
- content_block_stop(索引=0) ← 关闭初始空块
- content_block_start(思考,索引=1) ← 推理内容
- thinking_delta 事件 × N 次
- content_block_stop(索引=1)
5. content_block_start(文本,索引=2) ← 响应内容
6. text_delta 事件 × M 次
7. content_block_stop(索引=2)
8. message_delta + message_stop
关键: content_block_start 必须在 message_start 之后、ping 之前立即发送。这是 Anthropic Messages API 协议的要求,以确保 UI 能够正确初始化。
主要特性:
- ✅ 思考与文本块分离(使用正确的索引)
- ✅
thinking_delta和text_delta事件类型 - ✅ 思考内容默认隐藏
- ✅ 各块之间平滑过渡
- ✅ 完全兼容 Claude Code UI
UX 优势
之前(v1.0.0 - 不支持思考):
- 推理内容以普通文本形式显示
- 内部思考与输出混杂,令人困惑
- 无进度指示
- 消息一次性全部更新
之后(v1.1.0 - 完全协议支持):
- ✅ 推理内容隐藏/折叠
- ✅ 输出整洁、专业
- ✅ 显示“Claude 正在思考…”提示
- ✅ 平滑的增量流式传输
- ✅ 消息头和结构清晰可见
- ✅ 符合 Anthropic Messages API 协议
文档
完整协议文档请参见:
- STREAMING_PROTOCOL.md - 完整 SSE 协议规范
- PROTOCOL_FIX_V2.md - 关键 V2 协议修复(事件顺序)
- COMPREHENSIVE_UX_ISSUE_ANALYSIS.md - 技术分析
- THINKING_BLOCKS_IMPLEMENTATION.md - 实现概要
动态推理支持(v1.4.0 新增)
Claudish 现在能够智能适配任何支持推理的模型!
不再需要硬编码列表或手动标记。Claudish 会动态查询 OpenRouter 元数据,为所有支持推理的模型启用相应功能。
🧠 动态思考功能
自动检测:
- 启动时自动检查模型能力
- 仅在支持时启用扩展思考 UI
- 具有前瞻性:可即时支持新模型(如
deepseek-r1或minimax-m2)
智能参数映射:
- Claude: 直接传递 token 预算(如 16k tokens)
- OpenAI (o1/o3): 将预算转换为
reasoning_effort- “ultrathink”(≥32k)→
high - “think hard”(16k-32k)→
medium - “think”(<16k)→
low
- “ultrathink”(≥32k)→
- Gemini & Grok: 自动保留思考签名和 XML 轨迹
通用兼容性:
- 可使用“ultrathink”或“think hard”提示词,适用于任何支持的模型
- Claudish 会为您处理翻译层
上下文缩放与自动压缩
v1.2.0 新增: Claudish 现在能够智能管理 token 计数,支持任意上下文窗口大小(从 128k 到 2M+),同时保留 Claude Code 原生的自动压缩行为。
挑战
Claude Code 默认假设一个固定的上下文窗口(通常为 Sonnet 的 200k tokens)。
- 小型模型(如 Grok 128k): Claude 可能过度消耗上下文而崩溃。
- 超大型模型(如 Gemini 2M): Claude 会在使用量仅为 10% 时就过早压缩,浪费模型潜力。
解决方案:Token 缩放
Claudish 实现了一种“双重计数”系统:
内部缩放(用于 Claude):
- 从 OpenRouter 获取真实的上下文限制(如 1M tokens)。
- 我们按比例调整报告的 token 使用量,使 Claude 认为 1M tokens 相当于 200k。
- 结果: 自动压缩将在正确的使用百分比(如 90%)触发,无论实际限制是多少。
准确报告(供您使用):
- 状态栏显示真实未缩放的使用量和真实上下文百分比。
- 您可以看到具体的成本和限制,而 Claude 仍然保持稳定运行。
好处:
- ✅ 适用于任何模型规模(128k、1M、2M 等)
- ✅ 解锁超大上下文窗口(Claude Code 在 Gemini 下性能提升 10 倍!)
- ✅ 防止小型模型崩溃(Grok)
- ✅ 原生行为(压缩功能正常运作)
开发
项目结构
mcp/claudish/
├── src/
│ ├── index.ts # 主入口文件
│ ├── cli.ts # CLI 参数解析器
│ ├── proxy-server.ts # 基于 Hono 的代理服务器
│ ├── transform.ts # API 格式转换(来自 claude-code-proxy)
│ ├── claude-runner.ts # Claude CLI 运行程序(创建临时设置)
│ ├── port-manager.ts # 端口管理工具
│ ├── config.ts # 常量和默认值
│ ├── types.ts # TypeScript 类型定义
│ └── services/
│ └── vision-proxy.ts # 非视觉模型的图像描述服务
├── tests/ # 测试文件
├── package.json
├── tsconfig.json
└── biome.json
代理实现
Claudish 使用基于 Hono 的代理服务器,灵感来源于 claude-code-proxy:
- 框架: Hono - 快速、轻量级的 Web 框架
- API 转换: 将 Anthropic API 格式 ↔ OpenAI 格式进行转换
- 流式传输: volle支持 Server-Sent Events (SSE)
- 工具调用: 处理 Claude 的 tool_use ↔ OpenAI 的 tool_calls
- 实战验证: 基于生产级的 claude-code-proxy 实现
为什么选择 Hono?
- 原生支持 Bun(无需适配器)
- 极其快速且轻量
- 支持中间件(CORS、日志等)
- 可跨 Node.js、Bun 和 Cloudflare Workers 使用
构建与测试
# 安装依赖
bun install
# 开发模式
bun run dev "测试提示"
# 构建
bun run build
# 代码检查
bun run lint
# 格式化
bun run format
# 类型检查
bun run typecheck
# 运行测试
bun test
协议合规性测试
Claudish 包含一套全面的快照测试系统,以确保与官方 Claude Code 协议的 1:1 兼容性:
# 运行快照测试(13/13 通过 ✅)
bun test tests/snapshot.test.ts
# 完整工作流程:捕获测试用例 + 运行测试
./tests/snapshot-workflow.sh --full
# 从监控模式捕获新的测试用例
./tests/snapshot-workflow.sh --capture
# 调试 SSE 事件
bun tests/debug-snapshot.ts
测试内容:
- ✅ 事件序列(message_start → content_block_start → deltas → stop → message_delta → message_stop)
- ✅ 内容块索引(按顺序:0、1、2、...)
- ✅ 工具输入流式传输(细粒度的 JSON 数据块)
- ✅ 使用量指标(在 message_start 和 message_delta 中存在)
- ✅ 停止原因(始终存在且有效)
- ✅ 缓存指标(创建和读取令牌)
文档:
全局安装
# 全局使用链接
bun run install:global
# 现在可以在任何地方使用
claudish "你的任务"
故障排除
“Claude Code CLI 未安装”
安装 Claude Code:
npm install -g claude-code
# 或访问:https://claude.com/claude-code
“需要 OPENROUTER_API_KEY 环境变量”
设置您的 API 密钥:
export OPENROUTER_API_KEY=sk-or-v1-...
或者将其添加到您的 shell 配置文件中(~/.zshrc、~/.bashrc):
echo 'export OPENROUTER_API_KEY=sk-or-v1-...' >> ~/.zshrc
source ~/.zshrc
“未找到可用端口”
指定自定义端口:
claudish --port 3000 "你的任务"
或者在 src/config.ts 中增加端口范围。
代理错误
检查 OpenRouter API 状态:
验证您的 API 密钥是否有效:
状态行未显示模型
如果状态行没有显示模型名称:
检查是否传递了 --settings 标志:
# 在 Claudish 输出中查找以下内容: # [claudish] 实例设置:/tmp/claudish-settings-{时间戳}.json验证环境变量是否已设置:
# 应该由 Claudish 自动设置 echo $CLAUDISH_ACTIVE_MODEL_NAME # 应输出类似:xAI/Grok-1 的内容手动测试状态行命令:
export CLAUDISH_ACTIVE_MODEL_NAME="xAI/Grok-1" cat > /dev/null && echo "[$CLAUDISH_ACTIVE_MODEL_NAME] 📁 $(basename "$(pwd)")" # 应输出:[xAI/Grok-1] 📁 你的目录名检查临时设置文件:
# 文件创建在 /tmp/claudish-settings-*.json 中 ls -la /tmp/claudish-settings-*.json 2>/dev/null | tail -1 cat /tmp/claudish-settings-*.json | head -1验证 bash 是否可用:
which bash # 应显示 bash 的路径(通常是 /bin/bash 或 /usr/bin/bash)
注意: 临时设置文件会在 Claudish 退出时自动清理。如果您看到多个文件,可能有实例崩溃——可以安全地手动删除它们。
与 Claude Code 的比较
| 特性 | Claude Code | Claudish |
|---|---|---|
| 模型 | 仅 Anthropic 模型 | 任意 OpenRouter 模型 |
| API | Anthropic API | OpenRouter API |
| 成本 | Anthropic 定价 | OpenRouter 定价 |
| 设置 | API 密钥 → 直接 | API 密钥 → 代理 → OpenRouter |
| 速度 | 直接连接 | ~相同(本地代理) |
| 功能 | 所有 Claude Code 功能 | 所有 Claude Code 功能 |
| 视觉功能 | 原生支持(Anthropic 模型) | 任意模型(通过 Claude 自动描述) |
何时使用 Claudish:
- ✅ 想尝试不同模型(Grok、GPT-5 等)
- ✅ 需要 OpenRouter 特定功能
- ✅ 更倾向于 OpenRouter 的定价
- ✅ 测试模型性能
何时使用 Claude Code:
- ✅ 只想使用最新的 Anthropic 模型
- ✅ 需要官方 Anthropic 支持
- ✅ 设置更简单(无需代理)
贡献
欢迎贡献!请:
- 分支仓库
- 创建功能分支:
git checkout -b feature/amazing - 提交更改:
git commit -m '添加惊人功能' - 推送到分支:
git push origin feature/amazing - 打开拉取请求
许可证
MIT © MadAppGang
致谢
Claudish 的代理实现基于 @kiyo-e 的 claude-code-proxy。我们对其优秀的基于 Hono 的 API 转换层进行了改造,以实现与 OpenRouter 的集成。
来自 claude-code-proxy 的关键贡献:
- Anthropic ↔ OpenAI API 格式转换(
transform.ts) - 使用服务器发送事件处理流式响应
- 工具调用兼容层
- 干净的 Hono 框架架构
感谢 claude-code-proxy 团队构建了如此强大且可用于生产的基础设施!🙏
链接
- GitHub:https://github.com/MadAppGang/claudish
- OpenRouter:https://openrouter.ai
- Claude Code:https://claude.com/claude-code
- Bun:https://bun.sh
- Hono:https://hono.dev
- claude-code-proxy:https://github.com/kiyo-e/claude-code-proxy
由 MadAppGang 用心打造
版本历史
v6.6.02026/04/01v6.5.32026/04/01v6.5.22026/04/01v6.5.12026/04/01v6.5.02026/04/01v6.4.62026/03/30v6.4.52026/03/28v6.4.22026/03/28v6.4.12026/03/28v6.4.02026/03/27v6.3.22026/03/25v6.3.12026/03/25v6.3.02026/03/25v6.2.22026/03/24v6.2.12026/03/24v6.2.02026/03/24v6.1.12026/03/24v6.1.02026/03/23v6.0.12026/03/23v6.0.02026/03/22常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。