[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3289":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":12,"stars7d":12,"stars30d":14,"stars90d":13,"forks30d":13,"starsTrendScore":15,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":13,"starSnapshotCount":13,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},3289,"claude-code-java","vincentchen2026\u002Fclaude-code-java","vincentchen2026",null,"Java",120,19,1,0,6,3,41,false,"main",true,[],"2026-06-12 04:00:17","# Claude Code Java\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJava-21+-ED8B00?style=flat-square&logo=openjdk&logoColor=white\" alt=\"Java\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMaven-3.9+-C71A36?style=flat-square&logo=apache-maven&logoColor=white\" alt=\"Maven\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-green?style=flat-square\" alt=\"License\">\n\u003C\u002Fp>\n\n> Claude Code 的 Java 版本实现，一比一复刻自 TypeScript\u002FBun 技术栈\n\n## 项目概述\n\nClaude Code Java 是 [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fzh-CN\u002Fdocs\u002Fclaude-code) 的纯 Java 实现，保持与原版功能完整性和行为一致性。该项目采用 Java 21 开发，充分利用现代 Java 特性（Virtual Threads、Records、Sealed Classes 等），通过 JLine3 构建终端 UI 层。\n\n### 核心特性\n\n- **完整的 AI 对话能力** — 与 Claude AI 进行多轮交互，支持工具调用、消息压缩、会话恢复\n- **54 个内置工具** — 文件操作、Shell 命令、代码搜索、Web 访问、MCP 集成等\n- **102 个斜杠命令** — 快速执行常用操作（commit、diff、review、compact 等）\n- **MCP 协议支持** — 连接 MCP 服务器扩展 AI 能力\n- **IDE 桥接** — 支持 VSCode、Neovim、JetBrains 等主流 IDE\n- **LSP 集成** — Language Server Protocol 协议支持\n- **终端 UI** — 完整的 Vim 模式、Markdown 渲染、代码高亮\n- **会话持久化** — JSONL 格式，与 TypeScript 版本兼容\n\n## 技术架构\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    claude-code-cli (Picocli)                │\n│                      应用入口与 CLI 解析                      │\n├─────────────────────────────────────────────────────────────┤\n│                    claude-code-ui (JLine3)                  │\n│           终端 UI：REPL、消息渲染、输入、Markdown              │\n├──────────────────┬──────────────────┬───────────────────────┤\n│  claude-code-    │  claude-code-    │  claude-code-         │\n│  commands        │  tools           │  services             │\n│  斜杠命令系统     │  工具系统         │  服务层                │\n├──────────────────┴──────────────────┴───────────────────────┤\n│                    claude-code-core                         │\n│  QueryEngine │ Store │ Message │ Task │ Permission │ Config │\n├──────────────────┬──────────────────┬───────────────────────┤\n│  claude-code-api │  claude-code-mcp │  claude-code-bridge   │\n│  Anthropic API   │  MCP 客户端       │  IDE 桥接             │\n├──────────────────┴──────────────────┴───────────────────────┤\n│  claude-code-session │ claude-code-permissions              │\n│  会话持久化           │ 权限引擎                              │\n├─────────────────────────────────────────────────────────────┤\n│                    claude-code-utils                        │\n│           通用工具：文件、Shell、Git、加密、格式化等            │\n└─────────────────────────────────────────────────────────────┘\n```\n\n## 模块结构\n\n| 模块 | 描述 | 文件数 |\n|------|------|--------|\n| `claude-code-utils` | 通用工具类：文件操作、Shell、Git、加密等 | ~50 |\n| `claude-code-core` | 核心模型、QueryEngine、消息系统、状态管理 | ~80 |\n| `claude-code-api` | Anthropic API 客户端（多 SDK 适配） | ~30 |\n| `claude-code-permissions` | 权限系统（allow\u002Fdeny\u002Fask） | ~20 |\n| `claude-code-tools` | 54 个内置工具实现 | ~150 |\n| `claude-code-commands` | 102 个斜杠命令 | ~120 |\n| `claude-code-mcp` | Model Context Protocol 集成 | ~50 |\n| `claude-code-bridge` | IDE 桥接（VSCode、Neovim、JetBrains） | ~80 |\n| `claude-code-session` | 会话管理（JSONL 持久化） | ~20 |\n| `claude-code-services` | 服务层：compact、hooks、memory 等 | ~100 |\n| `claude-code-ui` | 终端 UI：渲染器、对话框、菜单、Vim 模式 | ~200 |\n| `claude-code-lsp` | Language Server Protocol 集成 | ~30 |\n| `claude-code-cli` | CLI 入口（Picocli） | ~20 |\n| `claude-code-app` | 应用打包与分发 | ~10 |\n\n## 技术栈\n\n| 类别 | 技术 |\n|------|------|\n| 语言 | Java 21+ (Records, Sealed Classes, Pattern Matching, Virtual Threads) |\n| 构建 | Maven 3.9+ |\n| JSON | Jackson 2.17.2 |\n| 终端 UI | JLine3 3.26.3 |\n| CLI | Picocli 4.7.6 |\n| Markdown | commonmark-java 0.22.0 |\n| 日志 | SLF4J 2.0.13 + Logback 1.5.8 |\n| 工具库 | Guava 33.2.1, Commons Lang3 3.14.0, Commons IO 2.16.1 |\n| LSP | Eclipse LSP4J 0.24.0 |\n| 测试 | JUnit 5.10.3, jqwik 1.9.0 (属性测试) |\n\n## 快速开始\n\n### 环境要求\n\n- **Java**: 21 或更高版本\n- **Maven**: 3.9 或更高版本\n- **API Key**: Anthropic API Key（设置 `ANTHROPIC_API_KEY` 环境变量）\n\n### 安装 Java 21（如果需要）\n\n```bash\n# macOS with SDKMAN\nsdk install java 21.0.2-tem\n\n# Ubuntu\u002FDebian\nsudo apt install openjdk-21-jdk\n\n# Windows (Chocolatey)\nchoco install openjdk21\n```\n\n### 构建项目\n\n```bash\n# 克隆项目\ngit clone https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fclaude-code-java.git\ncd claude-code-java\n\n# 全量构建\nmvn clean install\n\n# 跳过测试快速构建\nmvn clean install -DskipTests\n\n# 单模块构建\nmvn -pl claude-code-core clean install\n```\n\n### 运行应用\n\n```bash\n# 使用 Maven 运行\nmvn -pl claude-code-cli exec:java\n\n# 或者运行打包后的 JAR\njava -jar claude-code-app\u002Ftarget\u002Fclaude-code-java-*-jar-with-dependencies.jar\n```\n\n### Docker 运行\n\n```bash\n# 构建镜像\ndocker build -t claude-code-java .\n\n# 运行容器\ndocker run -it \\\n  -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \\\n  -v $(pwd):\u002Fworkspace \\\n  claude-code-java\n```\n\n## 配置\n\n### 环境变量\n\n| 变量 | 描述 | 必需 |\n|------|------|------|\n| `ANTHROPIC_API_KEY` | Anthropic API 密钥 | 是 |\n| `ANTHROPIC_BASE_URL` | API 基础 URL（可选，用于代理） | 否 |\n| `CLAUDE_CONFIG_DIR` | 配置目录（默认 `~\u002F.claude`） | 否 |\n\n### 配置文件\n\n```json\n\u002F\u002F ~\u002F.claude\u002Fsettings.json\n{\n  \"model\": \"claude-sonnet-4\",\n  \"maxTokens\": 8192,\n  \"permissionMode\": \"ask\",\n  \"disableBrowserTools\": false\n}\n```\n\n### 项目级配置\n\n在项目根目录创建 `CLAUDE.md` 文件，定义项目级指令：\n\n```markdown\n# CLAUDE.md\n\n- 你是一个 Java 专家\n- 使用 Maven 作为构建工具\n- 遵循 Google Java Style Guide\n- 每次提交前运行测试\n```\n\n## 使用指南\n\n### 基本命令\n\n| 命令 | 描述 |\n|------|------|\n| `\u002Fhelp` | 显示帮助信息 |\n| `\u002Fexit` | 退出程序 |\n| `\u002Fclear` | 清屏 |\n| `\u002Fmodel` | 切换模型 |\n| `\u002Fcompact` | 压缩会话上下文 |\n| `\u002Fcost` | 显示会话费用统计 |\n\n### Git 命令\n\n| 命令 | 描述 |\n|------|------|\n| `\u002Fcommit` | 创建 Git 提交 |\n| `\u002Fdiff` | 显示工作区变更 |\n| `\u002Freview` | 代码审查 |\n| `\u002Fbranch` | 管理分支 |\n\n### 开发命令\n\n| 命令 | 描述 |\n|------|------|\n| `\u002Fdoctor` | 检查环境配置 |\n| `\u002Fstatus` | 显示当前状态 |\n| `\u002Fconfig` | 编辑配置 |\n| `\u002Fmcp` | 管理 MCP 服务器 |\n\n### 内置工具\n\n#### 文件操作\n- `BashTool` — 执行 Shell 命令\n- `FileReadTool` — 读取文件内容\n- `FileWriteTool` — 写入文件\n- `FileEditTool` — 编辑文件\n- `GlobTool` — 文件模式搜索\n- `GrepTool` — 代码内容搜索\n\n#### Web 工具\n- `WebFetchTool` — 获取网页内容\n- `WebSearchTool` — 网络搜索\n- `WebBrowserTool` — 浏览器自动化\n\n#### AI 工具\n- `AgentTool` — 创建子代理\n- `MCPTool` — 调用 MCP 工具\n- `SkillTool` — 执行技能\n\n### Vim 模式\n\n终端 UI 支持完整的 Vim 输入模式：\n\n| 模式 | 快捷键 | 描述 |\n|------|--------|------|\n| INSERT | `i` | 插入模式 |\n| NORMAL | `Esc` | 普通模式 |\n| VISUAL | `v` | 可视模式 |\n| COMMAND | `:` | 命令模式 |\n\n**常用命令：**\n\n```\n:w              保存\n:q              退出\n:wq             保存并退出\ndd              删除行\nyy              复制行\np               粘贴\nu               撤销\nCtrl+r          重做\n3j              向下移动3行\n\u002Fwidget         搜索 \"widget\"\nn               下一个搜索结果\n```\n\n## 项目结构\n\n```\nclaude-code-java\u002F\n├── CLAUDE.md                 # 开发指南\n├── design.md                 # 技术设计文档\n├── requirements.md           # 需求规格书\n├── PERFORMANCE.md            # 性能优化文档\n├── pom.xml                   # 父 POM\n│\n├── claude-code-utils\u002F        # 通用工具\n│   └── src\u002Fmain\u002Fjava\u002F\n│       └── com\u002Fclaudecode\u002Futils\u002F\n│\n├── claude-code-core\u002F         # 核心模块\n│   └── src\u002Fmain\u002Fjava\u002F\n│       └── com\u002Fclaudecode\u002Fcore\u002F\n│           ├── engine\u002F        # QueryEngine、流式客户端\n│           ├── message\u002F       # 消息类型体系\n│           ├── state\u002F        # 状态管理\n│           └── task\u002F         # 任务系统\n│\n├── claude-code-api\u002F          # API 客户端\n├── claude-code-permissions\u002F  # 权限系统\n├── claude-code-tools\u002F       # 工具系统\n│   └── src\u002Fmain\u002Fjava\u002F\n│       └── com\u002Fclaudecode\u002Ftools\u002F\n│           └── impl\u002F         # 工具实现\n│\n├── claude-code-commands\u002F     # 命令系统\n│   └── src\u002Fmain\u002Fjava\u002F\n│       └── com\u002Fclaudecode\u002Fcommands\u002F\n│           └── impl\u002F         # 命令实现\n│\n├── claude-code-mcp\u002F          # MCP 集成\n├── claude-code-bridge\u002F       # IDE 桥接\n├── claude-code-session\u002F      # 会话管理\n├── claude-code-services\u002F     # 服务层\n├── claude-code-ui\u002F           # 终端 UI\n│   └── src\u002Fmain\u002Fjava\u002F\n│       └── com\u002Fclaudecode\u002Fui\u002F\n│           ├── renderer\u002F     # 渲染器\n│           ├── dialog\u002F       # 对话框\n│           ├── vim\u002F          # Vim 模式\n│           └── mcp\u002F           # MCP 菜单\n│\n├── claude-code-lsp\u002F          # LSP 集成\n├── claude-code-cli\u002F          # CLI 入口\n└── claude-code-app\u002F          # 打包配置\n    └── src\u002Fmain\u002Fresources\u002F\n        └── META-INF\u002Fnative-image\u002F  # GraalVM 配置\n```\n\n## 测试\n\n### 运行所有测试\n\n```bash\nmvn test\n```\n\n### 运行特定模块测试\n\n```bash\nmvn -pl claude-code-core test\nmvn -pl claude-code-session test\n```\n\n### 属性测试（Property-Based Testing）\n\n项目使用 jqwik 进行属性测试，验证核心属性的正确性：\n\n| ID | 属性 | 描述 |\n|----|------|------|\n| CP-1 | API 协议正确性 | 消息序列化\u002F反序列化一致性 |\n| CP-2 | 工具执行确定性 | 相同输入产生相同输出 |\n| CP-3 | 权限决策一致性 | 相同上下文产生相同决策 |\n| CP-4 | 消息兼容性 | 与 TypeScript 版本兼容 |\n| CP-5 | 状态管理不变性 | 状态更新保持有效 |\n| CP-6 | 任务生命周期正确性 | 任务状态转换正确 |\n| CP-7 | 会话压缩安全性 | 压缩后信息完整 |\n\n## 性能优化\n\n### 目标\n\n| 指标 | 目标值 |\n|------|--------|\n| JVM 启动时间 | \u003C 2 秒 |\n| GraalVM 启动时间 | \u003C 500ms |\n| 稳定状态内存 | \u003C 256MB |\n| 长会话（1000+ 轮） | 无内存增长 |\n\n### 优化策略\n\n- 使用 **AppCDS** 加速 JVM 启动\n- 延迟加载服务模块（MCP、Voice、VCR）\n- 使用 `WeakReference` 缓存工具结果\n- 实现会话压缩防止内存泄漏\n- 使用 `record` 类型减少开销\n- GraalVM native-image 支持\n\n### 构建 native-image\n\n```bash\n# 需要 GraalVM\nmvn package -Pnative -DskipTests\n```\n\n## 开发指南\n\n### 添加新工具\n\n1. 创建工具类：`claude-code-tools\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fclaudecode\u002Ftools\u002Fimpl\u002FYourTool.java`\n2. 继承 `Tool\u003CI, O>` 抽象类\n3. 实现核心方法：\n\n```java\npublic class YourTool extends Tool\u003CYourInput, YourOutput> {\n\n    @Override\n    public String name() {\n        return \"your_tool\";\n    }\n\n    @Override\n    public String description() {\n        return \"描述工具功能\";\n    }\n\n    @Override\n    public JsonNode inputSchema() {\n        \u002F\u002F 返回 JSON Schema\n    }\n\n    @Override\n    public ToolResult\u003CYourOutput> call(YourInput input, ToolContext context) {\n        \u002F\u002F 实现工具逻辑\n    }\n\n    @Override\n    public PermissionDecision checkPermissions(YourInput input, ToolPermissionContext ctx) {\n        \u002F\u002F 权限检查\n    }\n}\n```\n\n4. 在 `ToolRegistry` 中注册\n5. 添加单元测试\n\n### 添加新命令\n\n1. 创建命令类：`claude-code-commands\u002Fsrc\u002Fmain\u002Fjava\u002Fcom\u002Fclaudecode\u002Fcommands\u002Fimpl\u002FYourCommand.java`\n2. 实现 `Command` 接口\n3. 在 `CommandFactory` 中注册\n\n### 代码风格\n\n- 包级别私有（`package-private`）优先\n- 数据类使用 `record`\n- 联合类型使用 `sealed interface`\n- 复杂对象使用 Builder 模式\n- 使用 try-with-resources 管理资源\n\n## TypeScript 到 Java 的类型映射\n\n| TypeScript | Java |\n|------------|------|\n| `async function*` | `Iterator\u003CT>` + Virtual Thread |\n| `union type` | `sealed interface` + `permits` |\n| `interface` | `record` 或 `class` |\n| `Partial\u003CT>` | `Optional\u003CT>` 或 Builder |\n| `Record\u003CK,V>` | `Map\u003CK,V>` |\n| `Array\u003CT>` | `List\u003CT>` 或 `T[]` |\n| `Promise\u003CT>` | `CompletableFuture\u003CT>` |\n| `EventEmitter` | `Store\u003CT>` + listeners |\n| `Zod` schema | JSON Schema + Jackson |\n| `AsyncGenerator` | `Iterator\u003CT>` via `BlockingQueue` |\n\n## 与 TypeScript 版本差异\n\n| 特性 | TypeScript 版本 | Java 版本 |\n|------|----------------|-----------|\n| 运行时 | Bun | JVM \u002F GraalVM |\n| UI 框架 | React + Ink | JLine3 + ANSI |\n| 包管理 | npm | Maven |\n| 类型系统 | 原生 TypeScript | Java 强类型 |\n\n## 贡献\n\n欢迎提交 Issue 和 Pull Request！\n\n### 开发环境设置\n\n```bash\n# 1. Fork 项目\n# 2. 克隆你的 Fork\ngit clone https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fclaude-code-java.git\n\n# 3. 创建特性分支\ngit checkout -b feature\u002Fyour-feature\n\n# 4. 进行开发\n# ... 修改代码 ...\n\n# 5. 运行测试\nmvn test\n\n# 6. 提交\ngit commit -m \"feat: 添加新特性\"\n\n# 7. 推送并创建 PR\ngit push origin feature\u002Fyour-feature\n```\n\n### 代码规范\n\n- 遵循 [Google Java Style Guide](https:\u002F\u002Fgoogle.github.io\u002Fstyleguide\u002Fjavaguide.html)\n- 所有新代码必须包含单元测试\n- 运行 `mvn spotless:apply` 格式化代码\n\n## 路线图\n\n- [ ] Phase 6: 完成测试覆盖率（核心模块 80%+）\n- [ ] 端到端集成测试\n- [ ] 跨平台兼容性测试\n- [ ] GraalVM native-image 优化\n- [ ] 终端 UI 增强（Phase 6.1-6.6）\n\n## 许可证\n\nMIT License - 详见 [LICENSE](LICENSE) 文件\n\n## 参考\n\n- [Claude Code 文档](https:\u002F\u002Fdocs.anthropic.com\u002Fzh-CN\u002Fdocs\u002Fclaude-code)\n- [Anthropic API 文档](https:\u002F\u002Fdocs.anthropic.com\u002Fzh-CN\u002Fdocs\u002Fapi-reference)\n- [Model Context Protocol](https:\u002F\u002Fmodelcontextprotocol.io\u002F)\n- [Java 21 新特性](https:\u002F\u002Fopenjdk.org\u002Fprojects\u002Fjdk\u002F21\u002F)\n\n## 致谢\n\n- [Anthropic](https:\u002F\u002Fwww.anthropic.com\u002F) — Claude AI 与 Claude Code\n- [JLine3](https:\u002F\u002Fgithub.com\u002Fjline\u002Fjline3) — 终端库\n- [Picocli](https:\u002F\u002Fpicocli.info\u002F) — CLI 框架\n- [Eclipse LSP4J](https:\u002F\u002Fgithub.com\u002Feclipse\u002Flsp4j) — LSP 客户端\n\n---\n\n\u003Cp align=\"center\">\n  用 ❤️ 和 ☕ 由 Claude Code Java 团队构建\n\u003C\u002Fp>\n","Claude Code Java 是 Claude Code 的纯 Java 实现，保持与原版 TypeScript\u002FBun 技术栈的功能完整性和行为一致性。项目采用 Java 21 开发，充分利用了现代 Java 特性如 Virtual Threads、Records 和 Sealed Classes，并通过 JLine3 构建终端 UI 层。其核心功能包括完整的 AI 对话能力、54 个内置工具（文件操作、Shell 命令等）、102 个斜杠命令、MCP 协议支持、IDE 桥接（VSCode、Neovim、JetBrains 等）以及 LSP 集成。此外，还提供了会话持久化和终端 UI 功能。该工具适合需要在开发环境中集成高级 AI 辅助功能的场景，如代码搜索、Web 访问、MCP 扩展等，能够显著提升开发效率和用户体验。",2,"2026-06-11 02:53:23","CREATED_QUERY"]