coding-agent-cli 是一个 Java-first、Spring AI 驱动的 Coding Agent CLI,也是一个以 clean-room 方式实现的 Claude Code 核心运行时参考项目。
它的目标不是宣称“完整替代 Claude Code”,而是让 Java/Spring 团队可以直接研究这些关键问题如何在 JVM 生态落地:
- REPL-first 的会话入口如何组织
- tool-first 的 Agent Loop 如何闭环
- transcript 持久化、会话续跑、上下文压缩如何实现
这个仓库所有“已对齐”的结论都要求能被代码直接核验;未实现的部分会明确写成未对齐,而不是拿规划冒充能力。
对齐判断只基于两类信息:
- 可独立核验的公开资料
- 本仓库里真实存在、可运行或可测试的代码
可核验公开来源:
- MarcelLeon/claude-code
- Axios: Anthropic leaked 500,000 lines of its own source code
- 每日经济新闻 / 新浪财经:51 万行 Claude Code 源代码泄露
- 爱范儿 / 新浪财经:Claude Code 源码泄露,50 万行代码被扒光
对齐状态说明:
- 已对齐:仓库中已有可运行或可测试的实际实现
- 未对齐:当前版本明确不声称具备该能力
这个项目的差异化,不是“喊口号说像 Claude Code”,而是把已完成和未完成的边界说清楚。
当前仍未对齐的重点能力包括:
- 更完整的流式终端 UI 与 richer TUI 渲染
- MCP、插件市场、skills 加载、daemon、bridge、remote control
- 超越当前 JSON 决策协议的完整结构化 tool-calling protocol
- 真实 provider token 计费、账号认证、策略治理
- 超出
mock和openai之外的多 provider 对齐
如果你要找的是一个“现成完整替代 Claude Code 的生产工具”,这个仓库还不是。
如果你要找的是一个“能跑、能读、能改、能继续演进的 Java/Spring Agent runtime 参考实现”,这个仓库就是为这个目标准备的。
最小验证:
sh ./mvnw test
printf '/exit\n' | sh ./mvnw -q -DskipTests spring-boot:run这两条命令分别用于验证测试闭环,以及验证默认 root 入口会直接进入 chat 会话。
如果你要接真实 OpenAI 兼容模型:
export OPENAI_API_KEY=your_key
sh ./mvnw -q -DskipTests spring-boot:run -Dspring-boot.run.arguments="run --provider openai --model gpt-4.1-mini --prompt '请分析当前工作区'"更多 CLI 示例、chat 示例、会话恢复示例和 OpenAI 兼容地址示例见 docs/examples.md。
也可以直接体验当前 /model 语义:
printf '/model help\n/model current\n/provider openai\n/model\n/quit\n' | sh ./mvnw -q -DskipTests spring-boot:run -Dspring-boot.run.arguments='chat --provider mock --session-id demo-chat-model'- 默认 root 入口直接进入交互式 chat
run、chat、doctor三类核心 CLI 命令/help、/status、/tools、/files、/cost、/doctor、/version、/clear、/resume、/rename、/model、/provider、/base-url、/exit、/quit/model已支持 Claude Code 风格的help、current参数;空命令会打开 text-mode model selection menumock、openai两种 provider,以及配置文件、环境变量、命令行三级 base URL 覆盖- provider-aware 默认模型:
mock -> mock-coder,openai -> gpt-4.1-mini - 当前 JSON 决策协议已兼容
toolCall.argument和结构化toolCall.arguments - 每个工具现在都声明自己的参数契约,prompt 和
/tools会展示plain_text/json_object、字段和示例 list_files、read_file、grep_text、bash_exec、write_file、patch_file六类本地工具.agent/sessions下的 JSONL transcript 持久化、同session-id历史续跑、会话标题和上下文文件索引/status、/cost、/doctor、/version这类会话内运行时视图- transcript 压缩、工作区路径护栏、
bash_exec危险命令拦截
当前默认配置见 src/main/resources/application.yml。
其中 transcript 相关默认值为:
agent.runtime.transcript.recent-entries=8agent.runtime.transcript.summary-entries=4agent.runtime.transcript.max-entry-chars=160agent.model.provider-defaults.*可为不同 provider 指定默认模型agent.model.provider-presets.*可配置/modeltext-mode menu 中展示的推荐模型agent.model.prompt.system-lines可覆写 OpenAI 决策器的 system prompt 文案
建议继续阅读: