CodingCLI 是一款从底层手写的命令行智能编程助手。ReAct 智能体、多 Agent 协作、 代码语义检索、分层记忆、MCP 协议扩展——全部独立实现,拒绝黑盒框架。
七大核心模块独立实现,零依赖第三方 Agent 框架,每一行代码都清晰可控
JRE 17+ 即可运行,无需安装其他依赖
# 创建工作目录
mkdir coding-cli && cd coding-cli
# 把下载的 cli.jar 放进来
ls
cli.jar
需要 JRE 17+,可通过 java -version 确认
.env 配置文件# 在 cli.jar 同一目录下创建 .env
touch .env
# 填入以下内容
GLM_KEY=你的智谱API密钥
# 可选:高危工具自动审批开关
# true=自动批准(开发环境) false=手动确认(默认)
AUTO_APPROVE=false
GLM API Key 在 open.bigmodel.cn 注册后获取
# 在包含 .env 和 cli.jar 的目录下运行
java -jar cli.jar
# 看到如下输出则表示成功
[启动] 正在连接 MCP 服务器...
[McpManager] 未发现任何 MCP 服务器配置
> 你好,帮我分析一下这个项目的结构
[GLM]: 好的,我来帮您分析...▌
coding-cli/
├── cli.jar # 主程序
├── .env # 必需:API 密钥配置
├── mcp.json # 可选:MCP 服务器配置
├── history.txt # 自动生成:命令历史
└── memory/
└── long_term_memory.json # 自动生成:长期记忆
| 配置项 | 必填 | 默认值 | 说明 |
|---|---|---|---|
GLM_KEY |
必填 | — | 智谱 AI 开放平台 API Key,用于调用 GLM-5.1 和 embedding-3 模型 |
AUTO_APPROVE |
可选 | false | true = 自动批准所有高危工具(write_file / execute_command),适合开发环境;false = 每次弹出确认框 |
无需记复杂语法,输入 /help 随时查看帮助
纯原生 Java 实现 JSON-RPC 2.0,零额外 Maven 依赖,支持 stdio 子进程与 HTTP 两种传输模式
在 cli.jar 同目录下创建 mcp.json,启动时自动加载并注册所有工具。
MCP 工具以 mcp_<服务器名>_<工具名> 格式注册到工具表,模型可直接调用,与内置工具完全透明互通。
{
"mcpServers": {
// stdio 模式:启动本地子进程
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
"disabled": false
},
// HTTP 模式:连接远端 MCP 服务
"my-api": {
"url": "http://localhost:9000/mcp",
"disabled": false
},
// 携带环境变量
"my-tool": {
"command": "python",
"args": ["server.py"],
"env": { "API_KEY": "xxx" }
}
}
}
工作目录 mcp.json中加载的同名服务器覆盖先加载的
执行写文件、运行命令等高危操作前,系统强制等待你的确认,AI 感知拒绝后自主调整策略
write_file 或 execute_command 时:╔══════════════════════════════════════════════════════╗
║ ⚠️ 高危操作确认 ║
╠══════════════════════════════════════════════════════╣
║ 工具名称: write_file ║
║ 危险等级: HIGH — 此操作可能不可逆 ║
║ 操作参数: ║
║ {"path":"src/Main.java","content":"..."} ║
╚══════════════════════════════════════════════════════╝
是否允许执行此操作?[y/n] >
# 输入 y → ✅ 已批准,继续执行
# 输入 n → ❌ 操作已取消,AI 自动调整后续策略
# AUTO_APPROVE=true → 自动放行,不弹确认框
每一个组件都有明确的职责,没有"魔法",没有框架锁定
下载 JAR,配置 GLM Key,三分钟内启动你的智能编程助手。JRE 17+ 即可运行,无需安装任何其他依赖。