Skip to content

HELPMEEADICE/doge-code

Repository files navigation

Doge Code

Claude Code 的一个 Fork。不是官方正史,而是平行世界番外篇;不是萌豚整活仓库,而是“认真修、顺手发癫一点点”的工程分支。

免责声明:本项目仅供个人学习与技术研究,不得用于任何商业用途或非法用途。所有原始源码版权归 Anthropic 所有。

Fork Status Runtime Config License Issues

Preview

这是什么

Doge Code 基于一份还原后的 Claude Code 源码树继续修改而来。

可以把它理解为:

  • 基底仍然是“通过 source map 逆向还原 + 缺失模块补齐”得到的可运行代码树
  • 但在此之上,加入了这个 Fork 自己的目标和行为调整
  • 目标不是“100% 忠于上游”,而是“让它更适合折腾、适合代理转接、适合自定义模型接入”

如果用 ACG 比喻,大概属于:

  • 原作:Claude Code
  • 本作:Doge Code
  • 定位:不是官方 BD 修正集,而是高强度民间魔改但努力保持剧情逻辑自洽的外传 OVA

当前定位

这个仓库当前强调的是以下方向:

  • 支持自定义 Anthropic 兼容接口地址
  • 正在加入 OpenAI Chat Completions ↔ Anthropic Messages 转接能力
  • 支持自定义 API Key
  • 支持自定义模型与模型列表管理
  • 尽量把自定义接入数据收口到 ~/.doge 路径体系
  • 在保留 CLI/TUI 主体结构的前提下,降低对官方登录流的绑定

换句话说,它现在更像一个“可自托管 / 可代理 / 可转接”的 Claude Code 变体。

与原版 Claude Code 的数据隔离

Doge Code 默认不应与原版 Claude Code 共用配置和缓存目录。

当前 Fork 已明确把默认用户目录收口到:

这样做的目的,是避免以下问题:

  • 原版 Claude Code 的登录态污染 Doge Code
  • 原版保存的 endpoint / token / model 配置影响 Doge 的代理转接逻辑
  • 两边共用 .claude.json.claude/ 导致奇怪的网络、认证、模型或 UI 异常

如果用户以前装过原版 Claude Code,再运行 Doge Code 时出现“明明没这么配却读到了旧配置”的现象,通常就是历史数据混用导致的。

建议:

一句话总结:

原版走原版的窝,狗子住狗子的窝,别把缓存、认证和配置炖成一锅。

OpenAI 兼容接口说明

Doge Code 正在加入一个“中间转接层”模式,用来让内部仍按 Anthropic Messages 结构工作的主逻辑,转发到 OpenAI Chat Completions 接口。

目标行为是:

  • 内部程序仍按 Anthropic Messages 模式组织请求
  • 当选择 OpenAI API 格式时,由中间层把 Messages 请求改写成 Chat Completions 请求
  • 远端返回 Chat Completions 流后,再由中间层回转成内部可消费的 Messages 风格流事件

这意味着它不是简单改一个 Base URL,而是协议级别的输入输出流转接。

当前状态:

  • API 格式选择界面与配置持久化已加入
  • OpenAI 兼容转接模块正在迭代中
  • 目前仍属于开发中功能,可能出现流式事件不完整、消息映射异常、部分工具调用兼容不足等情况

如果你只是想稳定使用,建议优先走 Anthropic 兼容接口模式;如果你在测试 OpenAI 格式,请把它视为实验功能。

和原始还原仓库的关系

这个仓库不是上游官方源码仓库,也不是 pristine 状态的 Claude Code。

它有两层历史:

  1. 第一层:还原后的源码树
  2. 第二层:基于该源码树继续进行的 Fork 改造

因此你会看到两类差异同时存在:

  • 来自恢复过程的 shim、fallback、兼容层
  • 来自 Doge Code 的主动魔改

这两类改动都是真实存在的,不建议把当前代码误判成“官方上游源码镜像”。

当前状态

  • 该源码树已经可以在本地开发流程中恢复并运行
  • bun install 可用于安装依赖
  • bun run dev 可用于启动恢复后的 CLI/TUI
  • bun run version 可用于输出当前版本信息
  • 项目已被继续改造成 Doge Code 分支,部分行为和 UI 已不再与原始 Claude Code 一致
  • 部分区域仍保留恢复期 fallback,因此行为可能与上游实现不同
  • OpenAI API 格式转接功能仍在开发中,当前并非完全稳定

为什么会有这个仓库

因为 source map 并不能召唤完整原仓库,最多只能说“把灵魂碎片召回来一部分”。

常见缺口包括:

  • 类型专用文件缺失
  • 构建产物和中间文件缺失
  • 私有包包装层无法恢复
  • 原生绑定无法恢复
  • 动态导入资源不完整

因此这个仓库的目标从一开始就不是考古式供奉,而是:

  • 先恢复到可运行
  • 再恢复到可维护
  • 最后在能跑的基础上,按需求继续 Fork

简而言之:

先让它活,再让它能打,再让它变成狗。

运行方式

环境要求:

  • Bun 1.3.5 或更高版本
  • Node.js 24 或更高版本

安装依赖:

bun install

快速安装(推荐开发者直接源码使用)

如果你是直接拉这个仓库源码来用,最快的方式是用 bun link 把它注册成全局命令。

方式一:源码目录内直接注册

在仓库根目录执行:

bun install
bun link

注册成功后:

  • 全局包名是 @doge-code/cli
  • 命令名是 doge

此后可直接运行:

doge

方式二:在其他项目中引用 link 包

如果你要在别的工程里依赖它,可以使用:

bun link @doge-code/cli

或者在 package.json 中写:

{
  "dependencies": {
    "@doge-code/cli": "link:@doge-code/cli"
  }
}

使用 Git 直接源码级更新

这个 Fork 很适合直接通过 Git 拉取更新,而不是走传统已发布包升级。

典型更新流程:

git pull
bun install
bun link

含义分别是:

  • git pull:拉取最新源码改动
  • bun install:同步依赖变化
  • bun link:刷新全局 link 注册,确保命令入口与当前源码一致

如果你本地就是长期用源码目录跑 Doge Code,这基本就是“源码级更新”的标准姿势。

一个推荐工作流

首次安装:

git clone <your-fork-or-repo-url>
cd claude-code-rev
bun install
bun link
doge

后续更新:

git pull
bun install
bun link
doge

命令与包名

运行 Doge Code CLI:

bun run dev

安装为全局命令后,默认命令名为:

doge

也就是说,这个 Fork 现在的目标入口名是 doge,而不是 claude

如果你使用 bun link 进行全局注册链接,那么现在注册出来的包名也不再是原版名,而是:

@doge-code/cli

输出版本号:

bun run version

Buddy 宠物系统用法

这个 Fork 内置了一个名为 Buddy 的小企鹅宠物,会显示在输入框旁边,并在部分对话后冒泡吐槽或打气。

常用命令如下:

  • 启用 / 唤出 Buddy:
/buddy
  • 摸摸 Buddy(触发爱心动画):
/buddy pet
  • 临时关闭 Buddy(静音,不再显示冒泡):
/buddy mute
  • 重新打开 Buddy:
/buddy unmute
  • 查看命令帮助:
/buddy help

补充说明:

  • 当前这份 Fork 已默认带一个可用的 Buddy,通常启动后就是开启状态
  • /buddy mute 是“关闭显示和冒泡”,不是删除宠物数据
  • /buddy unmute 会恢复显示
  • 如果你在聊天里直接提到 Buddy,它有时会自己在气泡里回应

说明与免责声明

  • 本仓库是 Claude Code 的 Fork:Doge Code
  • 它包含恢复期代码与后续 Fork 改动,不代表官方立场
  • 如果某些行为看起来“很像官方,但又不完全像”,那通常不是你看错了,而是这确实是恢复版 + 魔改版的叠加态
  • 如果某些文案偶尔带一点 ACG 味,那是彩蛋,不是类型系统坏掉了(至少不全是)

About

Claude Code 的一个 Fork。不是官方正史,而是平行世界番外篇;不是萌豚整活仓库,而是“认真修、顺手发癫一点点”的工程分支。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages