MarkShawn2020/lovcode-cli

GitHub: MarkShawn2020/lovcode-cli

基于 Claude Code 逆向工程并修复的全功能开源 AI 编程 CLI,让用户可以用自己的密钥和端点享受完整的 Claude Code 体验。

Stars: 10 | Forks: 9

Lovcode CLI — Running Opus 4.6

Lovcode CLI

我们破解了 Claude Code 的开源代码,从零开始调试,并让它真正运行了起来。
macOS / Linux / Windows (WSL) · Opus 4.6 / Sonnet / Haiku

背后的故事 · 快速开始 · 有何不同 · 功能特性 · 许可证

## 背后的故事 Claude Code 可以说是世界上最好的 AI 编程 CLI。但它是闭源的。 后来,[claude-code-best](https://github.com/claude-code-best/claude-code) 完成了疯狂的逆向工程,反编译了整个项目——43 个工具、100 多个命令、5000 行的 REPL、多提供商 API、MCP 协议、插件系统——所有这些都是从编译后的包中逆向工程出来的。 **我们拿过了这些代码,并真正让它运行了起来。** 这并不容易。反编译的代码布满了地雷: - **API 500 错误** — `prompt-caching-scope-2026-01-05` beta 请求头在系统提示词中发送了 `cache_control.scope:"global"`。服务器会拒绝来自非官方构建的请求。我们不得不禁用了所有实验性 beta 特性。 - **流式响应为空** — Opus 返回 200 状态码的响应头,但没有事件,触发了非流式回退机制,该机制会发送 `thinking: {"type":"adaptive"}`——而非流式模式并不支持此参数。我们修补了 `adjustParamsForNonStreaming`,将自适应 thinking 转换为基于预算的模式。 - **`USER_TYPE: undefined`** — 一个从未被设置的构建时常量,导致 `User-Agent: (undefined, cli)`。我们在运行时注入了 `"external"`。 - **`Gates is not defined`** — 一个被引用但从未导入的功能开关组件。即使包裹在 `false ? ... : []` 中,赋值操作依然会被执行并导致崩溃。 - **版本不匹配** — Attribution 请求头检查 `cc_version`,拒绝任何与官方发布版不匹配的请求。 每一个这样的问题都是一个死胡同,直到我们加入了基于文件的调试日志(`/tmp/lovstudio-debug.log`)来捕获准确的 HTTP 请求/响应周期——因为 TUI 会吞噬所有的 stderr 输出。 **当它终于成功运行的那一刻,我们由衷地发出了“哇”的惊叹。** 现在你可以运行完整的 Claude Code 体验——使用你自己的 API 密钥、你自己的 OAuth、你自己的品牌——完全开放。 ## 快速开始 ``` git clone https://github.com/MarkShawn2020/lovcode-cli.git cd lovcode-cli bun install bun run dev ``` 就是这样。你应该会看到 LOVCODE ASCII 艺术标志,并准备好开始编程了。 ### 全局安装 ``` bun run build chmod +x lovcode-cli ln -s "$(pwd)/lovcode-cli" ~/.bun/bin/lovcode-cli # 现在在任意位置使用它 lovcode-cli ``` ## 有何不同 | | 官方 Claude Code | Lovcode CLI | |---|---|---| | 源代码 | 闭源 | 开源 | | 品牌 | Anthropic | 你的(或我们的) | | API 兼容性 | 仅限官方 | 任何兼容 Anthropic 的端点 | | 实验性 beta 特性 | 全部启用 | 仅限稳定子集 | | 功能开关 | 服务器控制 | 全部为 `false`(干净,无死代码路径) | | 定制化 | 无 | 完整源代码访问——随意修改一切 | ### 我们所做的关键修补 ``` fix: disable experimental betas (prompt-caching-scope, redact-thinking, context-management) fix: set USER_TYPE="external" for correct User-Agent fix: convert adaptive thinking → budget-based for non-streaming fallback fix: remove Gates component reference crash fix: match version for attribution header compatibility ``` ## 功能特性 Claude Code 的所有功能,减去受功能开关控制的内部组件: - **交互式 REPL** — 基于 Ink 的富终端 UI,流式响应,支持 vim 模式 - **多提供商** — Anthropic Direct、AWS Bedrock、Google Vertex、Azure Foundry - **43 个工具** — 文件操作、bash、网络搜索/抓取、glob/grep、代理、MCP、LSP - **100+ 个命令** — `/model`、`/compact`、`/doctor`、`/resume`、`/mcp`、`/plugin`... - **MCP 协议** — 支持 stdio、SSE、HTTP 传输的完整客户端 - **插件与技能** — 可通过自定义命令和自动化进行扩展 - **智能上下文** — 自动 git status、CLAUDE.md、内存文件、响应式压缩 - **权限控制** — 细粒度的 plan/auto/manual 工具权限模式 - **Hooks** — 用于自定义工作流的工具调用前后钩子 - **会话管理** — 跨对话的恢复、导出和记忆 ## 系统架构 ``` lovcode-cli/ ├── src/ │ ├── entrypoints/cli.tsx # Bootstrap + runtime polyfills │ ├── screens/REPL.tsx # 5000+ line interactive UI │ ├── services/api/ # Multi-provider API (4 providers) │ ├── services/mcp/ # MCP client (24 files, 12000+ lines) │ ├── tools/ # 43 tool implementations │ ├── commands/ # 100+ slash commands │ └── components/ # 146 Ink UI components ├── packages/ # Internal workspace packages ├── build.ts # Code-splitting build (→ ~450 chunks) └── lovcode-cli # Launcher script ``` ## 致谢 站在巨人的肩膀上: - [claude-code-best/claude-code](https://github.com/claude-code-best/claude-code) — 开启这一切的疯狂反编译工程 - [Anthropic](https://www.anthropic.com/) — 首先构建了 Claude Code - [Lovstudio](https://github.com/MarkShawn2020) — 由我们倾心打造 ## 许可证 [Apache-2.0](LICENSE)

由 Lovstudio 提供支持。特别感谢 Claude Code。

标签:AI代码助手, API集成, Claude Code, DLL 劫持, DNS 反向解析, DNS解析, GNU通用公共许可证, Haiku, IP 地址批量处理, JSON 请求, Linux工具, MacOS开发工具, MCP协议, MITM代理, Node.js, Opus模型, REPL环境, Sonnet, Windows WSL, 云资产清单, 人工智能编程, 代码生成, 可观测性, 多平台支持, 大语言模型, 威胁情报, 开发者工具, 开源项目, 渗透测试工具, 源码调试, 破解分析, 端口探测, 网络流处理, 自动化攻击, 自动化编程, 逆向工程