di-code 是一个以终端为主的 TypeScript AI Coding Agent。它提供持续对话、文件和命令工具、会话恢复、插件、MCP、JSON 输出、RPC,以及本地 WebUI。
支持内建 openai、anthropic、deepseek、kimi、zhipu 和离线 faux Provider,也可以在 settings 中配置自定义 Provider。模型请求、工具循环和会话在 CLI、TUI、WebUI 与 RPC 入口之间共享。运行时按 workspace 管理多个独立会话;每个会话使用显式 sessionId,运行控制使用 runId。不同会话可以并行执行,同一会话的第二个 primary prompt 会返回 BUSY。
需要 Node.js >=22.19.0 和 npm。
npm install -g @di-code/coding-agent
di-code首次在真实终端运行时,向导会让你选择 Provider、模型并输入 API key。选择 Faux (offline) 可以不联网体验。
npm install --ignore-scripts
npm run dev不访问网络时,可验证一次完整的 CLI 链路:
$env:DI_CODE_PROVIDER = "faux"
npm run dev -- --print "用一句话介绍这个项目"完成 Provider 配置后,可以发送一次真实请求:
npm run dev -- --print "检查当前项目的主要模块"Provider、模型、环境变量、settings 和 CLI 参数见 CLI 与配置。完整安装和第一次对话流程见 快速开始。
本地浏览器 WebUI:
di-code web命令会启动只绑定本机回环地址的 Web server,并输出浏览器地址。可用 --port 指定端口,或用 --workspace <path> 添加已信任的工作区:
di-code web --port 4312 --workspace D:\projects\another-workspace从仓库源码启动:
npm run build
npm run dev -- web打开页面后,在 Settings 中配置 Provider。浏览器只接收脱敏配置和不透明 ID,不会获得 API key。需要嵌入自定义客户端时,使用 di-code-webui HTTP/SSE 入口;它要求至少 32 个字符的 token:
$env:DI_CODE_PROVIDER = "faux"
$env:DI_CODE_WEBUI_TOKEN = "replace-with-a-random-token-of-at-least-32-characters"
di-code-webui完整路由、开发代理、工作区授权、SSE 恢复和安全限制见 WebUI 使用指南。需要替换前端时,参阅 自定义 WebUI 和 自定义前端开发。
安装后直接运行交互式终端:
di-code也可以显式指定交互模式,或从源码启动:
di-code --interactive
npm run dev -- --interactive交互模式支持持续对话、工具状态、取消、重试、模型和设置选择;输入 /plan 可启用 Plan Mode,/plan off 退出。首次配置可通过 /login 重新打开 Provider 向导。
如果要在其他 Node.js 程序中嵌入 ANSI 组件,安装 @di-code/tui:
npm install @di-code/tui组件生命周期、键位、虚拟终端测试和自定义 Host 见 TUI 使用指南。
交互 TUI 启动时,如果当前工作区存在尚未信任的项目插件、Skills 或 MCP 配置,会先询问是否信任;随后会显示插件、Skills、MCP 及成功/失败诊断摘要。WebUI 首次进入工作区也会用弹窗确认是否加载这些项目资源,设置页会列出托管插件和项目插件及其状态。详见插件使用指南。
| 入口 | 用途 |
|---|---|
di-code --print "..." |
单次请求,输出最终文本 |
di-code --mode json "..." |
输出版本化 JSONL 事件 |
di-code-rpc |
供其他 Node.js 宿主通过 JSONL RPC 管理 Agent |
di-code-webui |
供自定义客户端使用的 HTTP/SSE WebUI 传输层 |
npm run check
npm test
npm run build各 workspace 也可以单独构建或测试,例如:
npm run test --workspace @di-code/coding-agent
npm run build --workspace @di-code/coding-agent本项目采用 MIT License。