dstalk

基于 DeepSeek V4 大模型、兼容 OpenAI / Anthropic API 的 AI 编程 CLI

官网: dstalk.top


这是什么?

dstalk 是一款 AI 编程助手命令行工具。通过调用 DeepSeek V4 大模型(兼容 OpenAI 和 Anthropic API在终端里用自然语言完成代码编写、重构、调试和文件操作。功能对标 Claude Code、OpenCode、KiloCode。

核心设计为 CDLL + 多前端解耦

┌───────────────────────────────────────────────────────────┐
│                    前端层 (Frontends)                       │
│  ┌──────────────────┐      ┌──────────────────────────┐   │
│  │  dstalk-cli      │      │  dstalk-gui               │   │
│  │  ANSI 终端 UI    │      │  SDL3 图形化 UI            │   │
│  │  exe → dstalk.dll│      │  exe → dstalk.dll          │   │
│  └────────┬─────────┘      └─────────────┬─────────────┘   │
│           │                              │                 │
│           └──────────────┬───────────────┘                 │
│                          │ C ABI                           │
└──────────────────────────┼─────────────────────────────────┘
                           │
┌──────────────────────────▼─────────────────────────────────┐
│                 核心层 (dstalk-core.dll)                     │
│  ┌────────────┐  ┌────────────┐  ┌──────────────────────┐  │
│  │ 网络通讯    │  │ 文件读写    │  │ AI 接口适配           │  │
│  │ Boost.Asio │  │ C++ 标准库  │  │ DeepSeek / OpenAI    │  │
│  │ + OpenSSL  │  │            │  │ / Anthropic          │  │
│  └────────────┘  └────────────┘  └──────────────────────┘  │
└─────────────────────────────────────────────────────────────┘
  • dstalk-core —— C11/C++20 高性能核心 DLL负责网络通信、AI 接口调用、文件 I/O。
  • dstalk-cli —— 命令行前端ANSI 转义码实现,调用 dstalk.dll
  • dstalk-gui —— 图形化前端SDL3 跨平台窗口,调用 dstalk.dll

核心与界面完全解耦,可以轻松编写自己的前端,或把 AI 能力嵌入到现有工具中。


为什么用 C/C++ 实现?

维度 dstalk (C/C++) 典型竞品 (TypeScript/Node.js)
启动速度 毫秒级 秒级
内存占用 数十 MB 数百 MB 起
运行时依赖 零(单文件 DLL 需要 Node.js 运行时
嵌入能力 任意语言通过 C ABI 调用 困难
GC 影响 无 GC 停顿 可能内存膨胀

AI 编程助手需要长期驻留、频繁交互,性能特征值得用系统级语言重新思考。


与竞品的差异化

特性 dstalk Claude Code OpenCode KiloCode
实现语言 C11 / C++20 TypeScript TypeScript TypeScript
运行时 零依赖 CDLL Node.js Node.js Node.js
前端形态 CLI + GUI 双前端 终端集成 VS Code 插件 VS Code 插件
模型 DeepSeek / OpenAI / Anthropic Claude 多模型 多模型
嵌入第三方 C ABI极易 困难 困难 困难

DLL 架构优势

  • 语言无关 —— C ABI 意味着 C/C++、Python、Rust、C#、Go 都能直接调用
  • 进程内集成 —— 无需 HTTP 通信、零 IPC 开销,直接函数调用
  • 前端零状态 —— CLI 和 GUI 不持有业务逻辑,只负责渲染和输入

快速开始

1. 安装工具链(全自动,存入 tools\,不依赖系统环境)

cd tools
setup.bat       # 下载 CMake + Ninja + LLVM/Clang + Conan2 到当前目录

网络不畅时可手动下载放入对应目录:Conan2 | Ninja | CMake | LLVM

目录结构要求: tools/cmake/bin/cmake.exe / tools/ninja/ninja.exe / tools/llvm/bin/clang.exe / tools/conan2/conan.exe

2. 编译

build.bat       # 一键: Conan拉依赖 → CMake配置 → Ninja编译

3. 运行

build/dstalk-cli/dstalk-cli.exe    # 命令行模式
build/dstalk-gui/dstalk-gui.exe    # 图形模式

使用示例

$ dstalk-cli

  dstalk v0.1.0  |  模型: deepseek-v4  |  /help 查看帮助

> 帮我写一个读取 CSV 并计算平均值的 C 程序

  [dstalk] 正在思考...

  #include <stdio.h>
  #include <stdlib.h>

  int main(int argc, char *argv[]) {
      if (argc < 2) {
          fprintf(stderr, "用法: %s <csv文件>\n", argv[0]);
          return 1;
      }
      FILE *fp = fopen(argv[1], "r");
      if (!fp) { perror("fopen"); return 1; }

      double sum = 0.0;
      int count = 0;
      char line[1024];
      while (fgets(line, sizeof(line), fp)) {
          sum += atof(line);
          count++;
      }
      fclose(fp);

      printf("平均值: %.2f (共 %d 行)\n", sum / count, count);
      return 0;
  }

  已写入 csv_avg.c。需要我帮你编译测试吗

> 把这段代码改成支持表头的

  [dstalk] 已更新 csv_avg.c——跳过第一行表头增加列选择功能。

> /edit csv_avg.c:15 把 atof 改成 strtod

  [dstalk] 已应用修改。

常用命令

命令 说明
/file list 列出当前会话关联的文件
/file show <path> 查看文件内容(语法高亮)
/edit <path>:<line> <描述> 让 AI 修改指定位置
/model 切换 AI 模型
/clear 清空会话上下文
/help 显示帮助

工程结构

dstalk2026/
├── deps/
│   └── conanfile.txt               # Conan2 依赖声明
├── dstalk-core/                    # 核心 DLL
│   ├── include/dstalk/
│   │   └── dstalk_api.h            # 公开 C API 头文件
│   ├── src/
│   │   ├── api.cpp                 # API 实现
│   │   ├── net/                    # 网络通信 (HTTP/HTTPS)
│   │   ├── ai/                     # AI 接口适配
│   │   └── file/                   # 文件读写
│   └── CMakeLists.txt
├── dstalk-cli/                     # 命令行前端 (ANSI)
│   ├── src/main.cpp
│   └── CMakeLists.txt
├── dstalk-gui/                     # 图形化前端 (SDL3)
│   ├── src/main.cpp
│   └── CMakeLists.txt
├── tests/                          # 单元测试
│   └── CMakeLists.txt
├── CMakeLists.txt                  # 根 CMake
└── README.md

公开 API

头文件: dstalk-core/include/dstalk/dstalk_api.h

/* 初始化与销毁 */
int  dstalk_init(const char* config_path);
void dstalk_destroy(void);

/* AI 对话 */
int  dstalk_chat(const char* input, char** output);
void dstalk_free_string(char* str);

/* 文件操作 */
int  dstalk_file_read(const char* path, char** content);
int  dstalk_file_write(const char* path, const char* content);

调用约定:

  • 所有字符串均为 UTF-8 编码
  • dstalk_chat / dstalk_file_read 分配的内存由调用方通过 dstalk_free_string 释放
  • 返回 0 成功,负数表示错误码

跨语言调用示例:

#include "dstalk/dstalk_api.h"
#include <stdio.h>

int main(void) {
    if (dstalk_init("config.json") != 0) {
        fprintf(stderr, "初始化失败\n");
        return 1;
    }

    char* reply = NULL;
    if (dstalk_chat("解释这段代码", &reply) == 0) {
        printf("AI: %s\n", reply);
        dstalk_free_string(reply);
    }

    dstalk_destroy();
    return 0;
}

FAQ

Q: 为什么不用 Rust A: 团队对 C/C++ 生态更熟悉C++20 的现代特性已能让我们写出安全高效的代码。且 CDLL 需要稳定的 C ABIC/C++ 最直接。

Q: 支持哪些模型? A: 主要支持 DeepSeek V4同时兼容 OpenAI GPT 系列和 Anthropic Claude 系列的 API。通过配置文件切换 API 基地址和密钥即可。

Q: 为什么同时做 CLI 和 GUI A: CLI 适合终端/SSH/CI 环境GUI 适合需要富文本和鼠标交互的场景。两者共享同一核心 DLL功能一致。

Q: 如何配置 API Key A: 首次运行提示输入,或手动创建 ~/.config/dstalk/config.toml

[api]
provider = "deepseek"
base_url = "https://api.deepseek.com/v1"
api_key = "sk-xxxxxxxx"
model = "deepseek-v4"

路线图

阶段 内容
Phase 1 (当前) 项目骨架、CMake 构建、DLL 导出、前端主循环
Phase 2 HTTPS 网络层、DeepSeek API 对接、基本对话
Phase 3 流式输出、多轮会话、文件读写工具、CLI 体验对齐
Phase 4 SDL3 GUI 完善、插件系统、LSP 集成

贡献指南

  1. Fork 仓库并克隆到本地
  2. 创建分支: git checkout -b feature/功能名
  3. 编码: C 代码 K&R 风格C++ 代码 LLVM 风格
  4. 确保 cmake --build build 通过
  5. 提交 PR描述改动内容和动机

代码规范

  • C: C11 标准,头文件 #pragma once
  • C++: C++20 标准,优先标准库,必要时引入 Boost
  • 内存: C++ 优先 RAIIC 代码显式管理
  • 对外接口: extern "C" 纯 C 函数,不抛异常

技术风险与对策

风险 对策
C++ 开发效率低于脚本语言 Boost 库弥补;核心 API 稳定后开发速度不会慢于竞品
OpenSSL 跨版本兼容性 Conan2 锁定版本,消除环境差异
SDL3 仍在迭代 锁定具体版本 (3.2.10),升级前充分测试
AI API 协议变更 适配层独立模块,变更时只改一处

许可证

GNU General Public License v3. Copyright (c) 2026 dstalk contributors.


dstalk.top | GitHub | Issue 反馈

Description
DeepSeek V4 powered AI programming CLI
Readme GPL-3.0 1.8 MiB
Languages
C++ 85%
Python 4.5%
C 3.6%
CMake 3.1%
Batchfile 2.1%
Other 1.7%