嘉陵江-code — 终端 AI 编程助手,支持 22+ 大模型厂商,默认本地 Ollama 零配置启动
Go to file
weiqianpu cf1707bbb0 feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持
- 重写 README.md:项目简介、快速开始、22+ 厂商列表、功能特性、架构说明、配置指南、FAQ、贡献指南
- 新增 MIT LICENSE
- 包含全部源码与文档
2026-04-02 02:34:24 +00:00
.githooks fix: 调优 Biome lint 规则,关闭 formatter 避免大规模代码变更 2026-04-01 07:34:29 +08:00
.github/workflows feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
docs feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
packages feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
scripts feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
src feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
.editorconfig feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
.gitignore feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
biome.json feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
build.ts feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
bun.lock feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
bunfig.toml feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
CLAUDE.md feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
jialing-code-1.3.3.tgz feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
jialing-code-1.3.4.tgz feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
knip.json feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
LICENSE feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
mint.json feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
package.json feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
README.md feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
SECURITY.md feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
TODO.md feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00
tsconfig.json feat: 开源发布 — 完整 README、MIT 许可证、22+ 大模型厂商支持 2026-04-02 02:34:24 +00:00

嘉陵江-code (Jialing Code)

🖥️ 终端 AI 编程助手 — 支持 22+ 大模型厂商,默认本地 Ollama 零配置启动

快速开始模型厂商功能特性架构配置FAQ


简介

嘉陵江-code 是一个基于终端的 AI 编程助手 CLI 工具fork 自 Anthropic Claude Code 并进行了深度改造,核心目标是:

  • 多模型支持:不再绑定 Anthropic 单一厂商,通过 OpenAI 兼容接口统一接入 22+ 大模型厂商
  • 本地优先:默认使用本地 Ollama无需 API Key、无需联网、零配置即可启动
  • 保留核心能力:完整的 REPL 交互、工具系统、权限管理、MCP 协议支持
  • 国内厂商友好:深度适配 DeepSeek、通义千问、智谱、月之暗面、豆包等国内主流大模型
$ jialing-code
╭──────────────────────────────────────╮
│  嘉陵江-code v1.3.14                 │
│  Provider: Ollama (qwen3.5:35b)      │
│  Type /help for commands             │
╰──────────────────────────────────────╯
>

快速开始

环境要求

  • Bun >= 1.3.11必须最新版本,旧版有兼容性问题,请先 bun upgrade
  • (可选)Ollama — 本地模型运行时
  • (可选)任意云端大模型的 API Key

安装与运行

# 1. 克隆仓库
git clone https://github.com/claude-code-best/claude-code.git
cd claude-code

# 2. 安装依赖
bun install

# 3. 开发模式运行(看到版本号 888 说明启动成功)
bun run dev

# 4. 构建
bun run build

# 5. 构建后运行Bun 或 Node.js 均可)
bun dist/cli.js
node dist/cli.js

全局安装(可选)

构建后可以发布到私有 npm 源,或直接全局链接:

bun run build
bun link    # 全局可用 jialing-code / jl 命令

首次运行

首次运行会进入 交互式配置向导,引导你选择模型厂商、填写 API Key、选择模型。也可以通过环境变量预先配置

# 方式一:使用本地 Ollama默认无需任何配置
jialing-code

# 方式二:通过环境变量指定厂商
export PROVIDER=deepseek
export DEEPSEEK_API_KEY=sk-xxx
jialing-code

# 方式三:使用 --setup 重新配置
jialing-code --setup

支持的模型厂商

嘉陵江-code 通过统一的 OpenAI 兼容适配器接入所有厂商,无需关心各家 API 差异。

国际厂商

厂商 环境变量 默认模型 代表模型
Anthropic ANTHROPIC_API_KEY claude-sonnet-4-20250514 Claude Opus/Sonnet/Haiku
OpenAI OPENAI_API_KEY gpt-4o GPT-4o, GPT-4.1, o3, o4-mini
Google Gemini GOOGLE_API_KEY gemini-2.5-flash Gemini 2.5 Pro/Flash
Mistral AI MISTRAL_API_KEY mistral-large-latest Mistral Large, Codestral
Groq GROQ_API_KEY llama-3.3-70b-versatile Llama 3.3, Mixtral
xAI XAI_API_KEY grok-3 Grok 3, Grok 3 Mini
Together AI TOGETHER_API_KEY meta-llama/Llama-3.3-70B Llama, Qwen, DeepSeek
Cohere COHERE_API_KEY command-a-03-2025 Command A/R+
Perplexity PERPLEXITY_API_KEY sonar-pro Sonar Pro/Reasoning

国内厂商

厂商 环境变量 默认模型 代表模型
DeepSeek DEEPSEEK_API_KEY deepseek-chat DeepSeek V3, R1
通义千问 (Qwen) QWEN_API_KEY qwen-max Qwen Max/Plus/Turbo, QwQ
智谱 (GLM) ZHIPU_API_KEY glm-4-plus GLM-4 Plus/Flash/Long
月之暗面 (Kimi) MOONSHOT_API_KEY moonshot-v1-auto Kimi 全系列
豆包 (Doubao) DOUBAO_API_KEY doubao-1.5-pro-256k 豆包 Pro/Lite
百度文心 (Ernie) BAIDU_API_KEY ernie-4.5-8k ERNIE 4.5/4.0/Speed
零一万物 (Yi) YI_API_KEY yi-lightning Yi Lightning/Large
阶跃星辰 (Step) STEPFUN_API_KEY step-2-16k Step 2/1 全系列
百川 (Baichuan) BAICHUAN_API_KEY Baichuan4 Baichuan 4/3
MiniMax MINIMAX_API_KEY MiniMax-Text-01 MiniMax Text/Abab
讯飞星火 (Spark) SPARK_API_KEY general-v3.5 Spark Max/Ultra/Pro
腾讯混元 HUNYUAN_API_KEY hunyuan-turbo 混元 Turbo/Pro/Lite

聚合平台 & 本地

平台 环境变量 说明
Ollama 无需 Key 本地运行,默认 qwen3.5:35b,零配置
SiliconFlow SILICONFLOW_API_KEY 国内聚合平台,支持多家模型
OpenRouter OPENROUTER_API_KEY 国际聚合平台,统一接入

企业级部署

平台 环境变量 说明
AWS Bedrock CLAUDE_CODE_USE_BEDROCK=1 需配置 AWS 凭证
Google Vertex CLAUDE_CODE_USE_VERTEX=1 需配置 GCP 凭证
Azure Foundry CLAUDE_CODE_USE_FOUNDRY=1 需配置 Azure AD

功能特性

核心能力

能力 状态 说明
REPL 交互界面 基于 Ink 的终端 UI完整交互体验
流式对话与工具调用 流式输出 + 自动工具调用循环
会话引擎 管理对话状态、上下文压缩、归因追踪
权限系统 plan/auto/manual 三种模式,细粒度控制
Hook 系统 pre/post tool use 钩子,通过 settings.json 配置
会话恢复 /resume 恢复历史会话
自动压缩 超长对话自动 compact节省 token
MCP 协议 支持 Model Context Protocol 扩展
多厂商适配 22+ 厂商统一 OpenAI 兼容接口
思考链支持 适配 DeepSeek R1、Qwen thinking 等推理模型

内置工具

工具 功能
BashTool Shell 命令执行,支持沙箱模式
FileReadTool 文件 / PDF / 图片 / Notebook 读取
FileEditTool 精确字符串替换编辑 + diff 追踪
FileWriteTool 文件创建与覆写
GlobTool 文件模式搜索
GrepTool 内容正则搜索
AgentTool 子代理fork / async / background
WebFetchTool URL 抓取 → Markdown 转换
WebSearchTool 网页搜索 + 域名过滤
NotebookEditTool Jupyter Notebook 编辑

斜杠命令 (90+)

常用命令:

命令 功能
/help 显示帮助信息
/model 切换模型
/config 查看/修改配置
/compact 手动压缩上下文
/diff 查看文件变更
/doctor 环境诊断
/resume 恢复历史会话
/memory 管理持久记忆
/mcp 管理 MCP 服务器
/plan 进入规划模式
/permissions 权限管理
/theme 切换主题
/export 导出对话
/vim Vim 模式

配置指南

配置文件位置

~/.jialing-code/
├── config.json          # 主配置厂商、模型、API Key
├── settings.json        # 行为设置hooks、权限规则
├── memory/              # 持久记忆存储
└── sessions/            # 会话历史

环境变量配置

# ── 厂商选择(二选一) ──

# 方式一:指定厂商名
export PROVIDER=deepseek                 # 厂商名(小写)
export DEEPSEEK_API_KEY=sk-xxx           # 对应 API Key

# 方式二:自动检测(根据已设置的 API Key 自动识别)
export OPENAI_API_KEY=sk-xxx             # 设了哪个就用哪个

# ── Anthropic 原生模式 ──
export ANTHROPIC_API_KEY=sk-ant-xxx      # Anthropic 直连
export ANTHROPIC_MODEL=claude-sonnet-4-20250514  # 可选,指定模型

# ── 自定义 API 端点 ──
export OPENAI_BASE_URL=https://your-proxy.com/v1  # 自定义兼容端点
export OPENAI_API_KEY=your-key

# ── 其他 ──
export CLAUDE_CODE_SIMPLE=1              # 简洁模式(去掉装饰)

交互式配置

# 首次启动自动进入,或手动触发
jialing-code --setup

配置向导会:

  1. 列出所有支持的厂商
  2. 验证 API Key 连通性
  3. 拉取可用模型列表供选择
  4. 保存到 ~/.jialing-code/config.json

项目架构

jialing-code/
├── src/
│   ├── entrypoints/
│   │   ├── cli.tsx                  # 入口polyfill + 快速路径分发
│   │   └── sdk/                     # SDK 导出
│   ├── main.tsx                     # Commander.js CLI 定义
│   ├── query.ts                     # API 查询核心(流式 + 工具循环)
│   ├── QueryEngine.ts               # 会话引擎(状态管理 + 压缩)
│   ├── services/
│   │   └── api/
│   │       ├── claude.ts            # Anthropic 原生 API 客户端
│   │       ├── openaiAdapter.ts     # OpenAI 兼容适配器(核心)
│   │       ├── providerRegistry.ts  # 22+ 厂商注册表
│   │       ├── client.ts            # 客户端工厂
│   │       └── setupWizard.ts       # 交互式配置向导
│   ├── tools/                       # 工具目录(每个工具独立文件夹)
│   │   ├── BashTool/
│   │   ├── FileEditTool/
│   │   ├── FileReadTool/
│   │   ├── GrepTool/
│   │   ├── AgentTool/
│   │   └── ...                      # 30+ 工具
│   ├── screens/
│   │   └── REPL.tsx                 # REPL 主界面5000+ 行)
│   ├── components/                  # Ink 终端 UI 组件
│   ├── commands/                    # 斜杠命令实现
│   ├── state/                       # 状态管理Zustand
│   ├── context.ts                   # 系统提示词构建
│   └── utils/
│       └── model/
│           └── providers.ts         # 厂商检测与路由
├── packages/                        # Monorepo workspace 包
│   ├── @ant/                        # Computer Use stub 包
│   ├── color-diff-napi/             # 颜色 diff完整实现
│   └── *-napi/                      # 其他 NAPI stub 包
├── build.ts                         # 构建脚本code splitting
├── package.json                     # Bun workspaces monorepo
├── tsconfig.json                    # TypeScript 配置
└── CLAUDE.md                        # Claude Code 项目指导

关键设计

多厂商适配层

用户请求 → 厂商检测 → OpenAI 兼容适配器 → 各厂商 API
                ↓                    ↓
         Anthropic 直连      统一消息格式转换
         Bedrock/Vertex       工具调用翻译
         Azure Foundry        思考链处理
  • providerRegistry.ts22+ 厂商的 baseURL、模型列表、API Key 映射
  • openaiAdapter.ts:将 OpenAI 格式的流式响应实时转换为 Anthropic 内部格式
  • providers.ts:厂商检测优先级链(显式 > 环境变量 > 自动检测 > Ollama 兜底)

工具分层

针对非 Anthropic 模型,工具按能力分层:

  • Tier 1始终可用Bash、Read、Write、Edit、Glob、Grep
  • Tier 2中等模型WebFetch、WebSearch、NotebookEdit、Agent
  • 跳过Anthropic 专属工具EnterWorktree、TodoWrite 等)
  • MCP 工具:始终透传

构建流程

bun run build
  1. 清理 dist/ 目录
  2. Bun bundler + code splitting → 入口 dist/cli.js + ~450 chunk 文件
  3. 后处理:import.meta.require 替换Node.js 兼容)
  4. Shebang 修正:#!/usr/bin/env node
  5. 注入 globalThis.Bun polyfill

构建产物 Bun 和 Node.js 均可运行

与原版 Claude Code 的区别

方面 原版 Claude Code 嘉陵江-code
模型支持 仅 Anthropic Claude 22+ 厂商 + 本地 Ollama
默认配置 需要 API Key 本地 Ollama 零配置启动
国内厂商 不支持 深度适配 12 家国内厂商
思考链 Claude 原生 适配 DeepSeek R1、Qwen thinking 等
功能裁剪 全功能 移除 Computer Use、Voice、Magic Docs 等
Feature Flags 内部功能开关 全部 false(禁用未实现分支)
运行时 Bun Bun 开发 / Bun+Node 运行
配置体验 需手动配置 交互式向导 + 自动检测

已移除/Stub 的模块

模块 状态 说明
Computer Use (@ant/*) Stub 保留包结构,无实际功能
NAPI 包 (audio/image/url/modifiers) Stub color-diff-napi 外均为空实现
Analytics / GrowthBook / Sentry 空实现 移除遥测
Magic Docs / Voice Mode / LSP Server 移除 不影响核心功能
Plugins / Marketplace 移除 不影响核心功能

开发指南

项目特殊说明

  • ~1341 个 tsc 错误:来自反编译,类型多为 unknown/never/{}不影响 Bun 运行时,请勿尝试修复
  • feature() 始终返回 false:所有 feature flag 后的代码是死代码
  • React Compiler 产物:组件中大量 const $ = _c(N) 是编译器输出的记忆化模板,属正常现象
  • bun:bundle 导入:构建时 API开发时由 cli.tsx 顶部 polyfill 提供

常用命令

# 开发运行
bun run dev

# 构建
bun run build

# Lint需先安装 biome
bun run lint
bun run lint:fix

# 格式化
bun run format

# 依赖检查
bun run check:unused

# 健康检查
bun run health

添加新厂商

src/services/api/providerRegistry.ts 中添加条目即可:

export const PROVIDER_REGISTRY = {
  // ...
  your_provider: {
    name: 'Your Provider',
    baseURL: 'https://api.your-provider.com/v1',
    defaultModel: 'your-default-model',
    apiKeyEnvVars: ['YOUR_PROVIDER_API_KEY'],
    models: [
      { id: 'model-1', name: 'Model 1', description: '描述' },
    ],
  },
}

只要厂商支持 OpenAI 兼容接口,即可无缝接入。

常见问题

Q: 安装依赖失败?

确保 Bun 为最新版本:

bun upgrade
bun install

Q: 如何切换模型?

运行中使用 /model 命令,或设置环境变量:

export PROVIDER=openai
export OPENAI_API_KEY=sk-xxx
export ANTHROPIC_MODEL=gpt-4o    # 指定具体模型

Q: 本地 Ollama 如何使用?

  1. 安装 Ollama
  2. 拉取模型:ollama pull qwen3.5:35b
  3. 启动嘉陵江-code默认自动连接本地 Ollama

Q: 能否用 Node.js 运行?

可以。bun run build 后,node dist/cli.js 即可运行(构建时已注入 Node.js 兼容 shim

Q: tsc 报大量错误?

正常现象,来自反编译。不影响运行,请忽略。

Q: 工具调用不工作?

部分本地模型(尤其小参数量模型)不支持 function calling。建议使用 7B+ 参数的模型,推荐 qwen3.5:35bdeepseek-r1:32b

贡献指南

欢迎贡献!请遵循以下流程:

  1. Fork 本仓库
  2. 创建特性分支:git checkout -b feature/your-feature
  3. 提交变更:git commit -m 'Add your feature'
  4. 推送分支:git push origin feature/your-feature
  5. 创建 Pull Request

贡献方向

  • 新增模型厂商适配
  • Bug 修复
  • 文档改进
  • 工具增强
  • 国际化 (i18n)

许可证

本项目采用 MIT 许可证

致谢

  • 本项目基于 Anthropic Claude Code 反编译与改造
  • 感谢所有大模型厂商提供的 OpenAI 兼容接口
  • 感谢 Ollama 提供的本地模型运行时
  • 感谢 Bun 提供的高性能 JavaScript 运行时

Star 这个项目如果对你有帮助!