Sync site with current dstalk repo structure

Reflect the plugin-host architecture: dstalk-core.dll now hosts 9
functional plugins (deepseek, anthropic, network, lsp, session,
context, config, file-io, tools), with dstalk-cli + SDL3 dstalk-gui
both consuming the same C ABI. Update badges, hero stats, terminal
demo, features, architecture diagram, tech-stack table, roadmap, and
contributor section across index.html and en.html accordingly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-05-27 08:57:30 +08:00
parent 08ad1cbee0
commit ee56dbb753
2 changed files with 108 additions and 85 deletions

98
en.html
View File

@@ -3,10 +3,10 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="dstalk is a C/C++ AI coding CLI powered by DeepSeek V4 and compatible with OpenAI / Anthropic APIs, built around dstalk-core.dll and decoupled multi-frontends."> <meta name="description" content="dstalk is a C/C++ AI coding CLI powered by DeepSeek V4 and compatible with OpenAI / Anthropic APIs, built around a dstalk-core.dll plugin host and decoupled multi-frontends.">
<meta name="theme-color" content="#0b1020"> <meta name="theme-color" content="#0b1020">
<meta property="og:title" content="dstalk — C/C++ AI Coding CLI"> <meta property="og:title" content="dstalk — C/C++ AI Coding CLI">
<meta property="og:description" content="DeepSeek V4 powered, C ABI embeddable, CLI available today, with GUI, plugins, and LSP integration on the roadmap."> <meta property="og:description" content="DeepSeek V4 powered, C ABI embeddable. dstalk-core.dll is a plugin host with 9 functional plugins covering AI, networking, sessions, LSP, and tools.">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<link rel="alternate" hreflang="zh-CN" href="https://dstalk.top/"> <link rel="alternate" hreflang="zh-CN" href="https://dstalk.top/">
<link rel="alternate" hreflang="en" href="https://dstalk.top/en.html"> <link rel="alternate" hreflang="en" href="https://dstalk.top/en.html">
@@ -213,7 +213,7 @@
<div> <div>
<div class="eyebrow">dstalk.top is the official website for the dstalk project</div> <div class="eyebrow">dstalk.top is the official website for the dstalk project</div>
<h1><span>ds</span>talk</h1> <h1><span>ds</span>talk</h1>
<p class="lead">An AI coding CLI powered by DeepSeek V4 and compatible with OpenAI / Anthropic APIs. The core is written in C11 / C++20 and exposes a stable C ABI through dstalk-core.dll, so the CLI, GUI, and third-party tools can share the same local AI coding engine.</p> <p class="lead">An AI coding CLI powered by DeepSeek V4 and compatible with OpenAI / Anthropic APIs. The core is written in C11 / C++20 and ships dstalk-core.dll as a plugin host that exposes a stable C ABI. Nine functional plugins (AI, networking, LSP, sessions, files, tools, and more) compile to standalone DLLs and plug into the CLI, the SDL3 GUI, and any third-party host.</p>
<div class="actions"> <div class="actions">
<a class="btn btn-primary" href="#quickstart">Get Started</a> <a class="btn btn-primary" href="#quickstart">Get Started</a>
<a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">View Source</a> <a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">View Source</a>
@@ -221,13 +221,14 @@
<div class="badges" aria-label="Project tags"> <div class="badges" aria-label="Project tags">
<span class="badge">v0.1.0</span> <span class="badge">v0.1.0</span>
<span class="badge">C11 / C++20</span> <span class="badge">C11 / C++20</span>
<span class="badge">CDLL + C ABI</span> <span class="badge">Plugin host + C ABI</span>
<span class="badge">9 plugins</span>
<span class="badge">GPL v3.0</span> <span class="badge">GPL v3.0</span>
</div> </div>
<div class="stats" aria-label="Project status"> <div class="stats" aria-label="Project status">
<span class="stat"><strong>Current</strong>Phase 1</span> <span class="stat"><strong>Core</strong>dstalk-core.dll (plugin host)</span>
<span class="stat"><strong>Core</strong>dstalk-core.dll</span> <span class="stat"><strong>Frontends</strong>CLI + SDL3 GUI</span>
<span class="stat"><strong>Frontend</strong>CLI available</span> <span class="stat"><strong>Plugins</strong>deepseek · anthropic · network · lsp · session · context · config · file-io · tools</span>
</div> </div>
</div> </div>
<div class="terminal" aria-label="dstalk command-line example"> <div class="terminal" aria-label="dstalk command-line example">
@@ -238,12 +239,14 @@ dstalk v0.1.0 | DeepSeek V4 | /help for help
&gt; Explain the role of dstalk-core &gt; Explain the role of dstalk-core
<span class="dim">thinking...</span> <span class="dim">thinking...</span>
AI: dstalk-core handles configuration, sessions, file I/O, AI: dstalk-core is the plugin host. It handles plugin
HTTP transport, and the DeepSeek API adapter. loading, service registry, the event bus, and
Frontends only handle input and rendering. configuration. AI, networking, sessions, LSP, and
file I/O are provided by standalone plugin DLLs;
frontends only deal with input and rendering.
&gt; /file read dstalk-core/src/api.cpp &gt; /file read dstalk-core/include/dstalk/dstalk_api.h
<span class="dim">--- dstalk-core/src/api.cpp ---</span></code></pre> <span class="dim">--- dstalk-core/include/dstalk/dstalk_api.h ---</span></code></pre>
</div> </div>
</header> </header>
@@ -251,15 +254,15 @@ AI: dstalk-core handles configuration, sessions, file I/O,
<section id="features" class="container section"> <section id="features" class="container section">
<div class="section-head"> <div class="section-head">
<h2>Why rebuild an AI coding assistant in C/C++?</h2> <h2>Why rebuild an AI coding assistant in C/C++?</h2>
<p>dstalk is positioned alongside tools like Claude Code, OpenCode, and KiloCode, but uses a systems-language implementation and a CDLL architecture to optimize startup time, runtime footprint, embeddability, and long-running terminal workflows.</p> <p>dstalk is positioned alongside tools like Claude Code, OpenCode, and KiloCode, but uses a systems-language implementation and a plugin-host architecture to optimize startup time, runtime footprint, embeddability, and long-running terminal workflows.</p>
</div> </div>
<div class="cards"> <div class="cards">
<article class="card"><div class="icon">C</div><h3>No Node.js runtime</h3><p>The core is built with C11 / C++20 for fast startup and lower memory usage in long-lived terminal sessions.</p></article> <article class="card"><div class="icon">C</div><h3>No Node.js runtime</h3><p>The core is built with C11 / C++20 for fast startup and lower memory usage in long-lived terminal sessions.</p></article>
<article class="card"><div class="icon">ABI</div><h3>Stable C ABI</h3><p>Public functions such as dstalk_init, dstalk_chat, and dstalk_file_read make it easy to embed from C/C++, Python, Rust, C#, and Go.</p></article> <article class="card"><div class="icon">ABI</div><h3>Stable C ABI</h3><p>Public functions such as dstalk_init, dstalk_chat, and dstalk_file_read make it easy to embed from C/C++, Python, Rust, C#, and Go.</p></article>
<article class="card"><div class="icon">AI</div><h3>Compatible AI APIs</h3><p>DeepSeek V4 is the primary target, with OpenAI / Anthropic-style APIs configurable through base_url, api_key, and model settings.</p></article> <article class="card"><div class="icon">AI</div><h3>Compatible AI APIs</h3><p>Two AI plugins ship in the box: DeepSeek and Anthropic, with OpenAI-style compatibility. Switch providers via ai.provider in config.toml.</p></article>
<article class="card"><div class="icon">CLI</div><h3>CLI-first workflow</h3><p>The current CLI uses ANSI terminal UI and supports natural-language chat, model switching, file I/O, and session save/load.</p></article> <article class="card"><div class="icon">CLI</div><h3>CLI and GUI frontends</h3><p>dstalk-cli is an ANSI terminal UI; dstalk-gui is a cross-platform SDL3 window. Both share the same plugin host and core capabilities.</p></article>
<article class="card"><div class="icon">DLL</div><h3>Decoupled frontends</h3><p>The CLI and GUI do not own business logic. They call the same dstalk-core.dll, allowing additional hosts to be added later.</p></article> <article class="card"><div class="icon">PLG</div><h3>Plugin host</h3><p>The core only handles plugin loading, service registry, event bus, and configuration. AI, networking, LSP, and sessions are independent DLLs you can replace or extend.</p></article>
<article class="card"><div class="icon">OSS</div><h3>Open source and hackable</h3><p>dstalk is released under GNU GPL v3.0 and welcomes learning, customization, and workflow-specific extensions.</p></article> <article class="card"><div class="icon">OSS</div><h3>Open source and hackable</h3><p>Released under GNU GPL v3.0, with example plugins, unit tests, and tutorial docs. Suitable for learning, customization, and local workflow extensions.</p></article>
</div> </div>
</section> </section>
@@ -298,24 +301,28 @@ build/dstalk-cli/dstalk-cli.exe config.toml</code></pre>
<section id="architecture" class="container section"> <section id="architecture" class="container section">
<div class="section-head"> <div class="section-head">
<h2>CDLL + decoupled multi-frontend architecture</h2> <h2>Plugin host + decoupled multi-frontend architecture</h2>
<p>dstalk-core.dll provides networking, AI API adaptation, file I/O, and session management. Frontends focus on interaction. The GUI directory is reserved, while the root CMake currently enables the CLI and core library first.</p> <p>dstalk-core.dll acts as a plugin host responsible for plugin loading, service registry, event bus, and configuration. Nine functional plugins — AI, networking, LSP, sessions, files, tools, and more — compile to standalone DLLs, while frontends reach the core only through the C ABI. The GUI is opt-in via the CMake option DSTALK_BUILD_GUI.</p>
</div> </div>
<div class="terminal architecture"> <div class="terminal architecture">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">architecture</span></div> <div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">architecture</span></div>
<pre><code>┌─────────────────────────────────────────────┐ <pre><code>┌─────────────────────────────────────────────────────
│ Frontends │ │ Frontends
│ dstalk-cli (ANSI UI) dstalk-gui (SDL3) │ │ dstalk-cli (ANSI UI) dstalk-gui (SDL3)
│ enabled today roadmap │ └───────────────────────┬─────────────────────────────┘
└───────────────┬─────────────────────────────┘ │ C ABI
│ C ABI ┌───────────────────────▼─────────────────────────────┐
┌───────────────▼─────────────────────────────┐ │ dstalk-core.dll — Plugin Host │
dstalk-core.dll Plugin Loader · Service Registry · Event Bus ·
API / Session / File I/O / AI Adapter Config Manager
└───────┬──────────────┬──────────────┬────────┘ └──┬───────┬──────────────┬──────────────┬──────────
Boost.JSON HTTP Client OpenSSL TLS deepseek anthropic network lsp session context
Boost.Asio / Beast</code></pre> (ai) (ai) (http) client
▼ ▼ ▼
config file-io tools
│ │ │
└── Boost.JSON / Boost.Asio / Beast / OpenSSL TLS ──┘</code></pre>
</div> </div>
</section> </section>
@@ -327,11 +334,15 @@ build/dstalk-cli/dstalk-cli.exe config.toml</code></pre>
<div class="panel table-wrap"> <div class="panel table-wrap">
<table> <table>
<tr><th>Module</th><th>Current technology</th><th>Status</th></tr> <tr><th>Module</th><th>Current technology</th><th>Status</th></tr>
<tr><td>Core library</td><td>C11 / C++20, dstalk-core.dll, public C ABI</td><td><span class="ok">Enabled</span></td></tr> <tr><td>Core library</td><td>C11 / C++20, dstalk-core.dll, plugin host, public C ABI</td><td><span class="ok">Enabled</span></td></tr>
<tr><td>CLI frontend</td><td>ANSI terminal UI using dstalk/dstalk_api.h</td><td><span class="ok">Enabled</span></td></tr> <tr><td>CLI frontend</td><td>ANSI terminal UI using dstalk/dstalk_api.h</td><td><span class="ok">Enabled</span></td></tr>
<tr><td>GUI frontend</td><td>SDL3 graphical frontend</td><td><span class="todo">Roadmap</span></td></tr> <tr><td>GUI frontend</td><td>SDL3 graphical frontend, enabled via CMake option DSTALK_BUILD_GUI</td><td><span class="ok">In place</span></td></tr>
<tr><td>Plugins</td><td>9 functional plugins (deepseek · anthropic · network · lsp · session · context · config · file-io · tools), standalone DLLs</td><td><span class="ok">Enabled</span></td></tr>
<tr><td>Tests</td><td>tests/ ships host_api_test and smoke_test, integrated with CTest</td><td><span class="ok">Enabled</span></td></tr>
<tr><td>Docs</td><td>docs/tutorial, docs/reference (commands, plugin-abi)</td><td><span class="ok">Published</span></td></tr>
<tr><td>Examples</td><td>examples/example_plugin shows a plugin template</td><td><span class="ok">Available</span></td></tr>
<tr><td>Dependencies</td><td>Conan2, boost/1.86.0, openssl/3.4.1</td><td><span class="ok">Configured</span></td></tr> <tr><td>Dependencies</td><td>Conan2, boost/1.86.0, openssl/3.4.1</td><td><span class="ok">Configured</span></td></tr>
<tr><td>Build system</td><td>CMake 3.21+, Ninja, LLVM/Clang</td><td><span class="ok">Configured</span></td></tr> <tr><td>Build system</td><td>CMake 3.21+, Ninja, LLVM/Clang, CMakePresets</td><td><span class="ok">Configured</span></td></tr>
<tr><td>License</td><td>GNU GPL v3.0</td><td><span class="ok">Confirmed</span></td></tr> <tr><td>License</td><td>GNU GPL v3.0</td><td><span class="ok">Confirmed</span></td></tr>
</table> </table>
</div> </div>
@@ -385,15 +396,16 @@ int dstalk_file_write(const char* path, const char* content);</code></pre>
<section id="roadmap" class="container section"> <section id="roadmap" class="container section">
<div class="section-head"> <div class="section-head">
<h2>Roadmap</h2> <h2>Roadmap</h2>
<p>The website reflects dstalk's current README roadmap and avoids presenting planned capabilities as already complete.</p> <p>The plugin host, CLI, SDL3 GUI, nine core plugins, tests, and documentation are already in place. Future work focuses on deeper capabilities and ecosystem expansion.</p>
</div> </div>
<div class="panel table-wrap"> <div class="panel table-wrap">
<table> <table>
<tr><th>Phase</th><th>Scope</th><th>Status</th></tr> <tr><th>Phase</th><th>Scope</th><th>Status</th></tr>
<tr><td>Phase 1</td><td>Project skeleton, CMake build, DLL exports, frontend main loop</td><td><span class="ok">Current</span></td></tr> <tr><td>Skeleton</td><td>Project skeleton, CMake/Ninja build, Conan dependencies, DLL exports, frontend main loop</td><td><span class="ok">Done</span></td></tr>
<tr><td>Phase 2</td><td>HTTPS networking, DeepSeek API integration, basic chat</td><td><span class="todo">In progress</span></td></tr> <tr><td>Plugin host</td><td>Plugin loader, service registry, event bus, configuration; 9 core plugins (deepseek · anthropic · network · lsp · session · context · config · file-io · tools)</td><td><span class="ok">Done</span></td></tr>
<tr><td>Phase 3</td><td>Streaming output, multi-turn sessions, file tools, CLI experience polish</td><td><span class="todo">Planned</span></td></tr> <tr><td>Chat capability</td><td>HTTPS networking, DeepSeek / Anthropic API adapters, streaming output, multi-turn sessions, file I/O tools</td><td><span class="ok">Available</span></td></tr>
<tr><td>Phase 4</td><td>SDL3 GUI, plugin system, LSP integration</td><td><span class="todo">Planned</span></td></tr> <tr><td>GUI frontend</td><td>SDL3 graphical window (DSTALK_BUILD_GUI), sharing the same plugin host as the CLI</td><td><span class="todo">In progress</span></td></tr>
<tr><td>Next phase</td><td>Deeper LSP integration, third-party plugin SDK, cross-platform distribution, ongoing documentation</td><td><span class="todo">Planned</span></td></tr>
</table> </table>
</div> </div>
</section> </section>
@@ -404,9 +416,9 @@ int dstalk_file_write(const char* path, const char* content);</code></pre>
<p>dstalk is an open project. Developers interested in C/C++, terminal UX, AI API adapters, GUI, documentation, and testing are welcome to participate.</p> <p>dstalk is an open project. Developers interested in C/C++, terminal UX, AI API adapters, GUI, documentation, and testing are welcome to participate.</p>
</div> </div>
<div class="cards"> <div class="cards">
<article class="card"><div class="icon">PR</div><h3>Improve the codebase</h3><p>Good starting points include build scripts, error handling, CLI interaction, streaming output, file tools, and cross-platform compatibility.</p></article> <article class="card"><div class="icon">PR</div><h3>Improve the codebase</h3><p>The core, CLI, SDL3 GUI, and nine plugins (AI, networking, LSP, sessions, files, tools, and more) all welcome patches; build scripts and cross-platform compatibility have headroom too.</p></article>
<article class="card"><div class="icon">DOC</div><h3>Improve docs and examples</h3><p>Installation notes, config templates, API examples, and real usage scenarios all help new users get started faster.</p></article> <article class="card"><div class="icon">PLG</div><h3>Build new plugins</h3><p>Use examples/example_plugin and docs/reference/plugin-abi.md as a starting point — register new services through the C ABI to bring your own models, tools, or data sources into dstalk.</p></article>
<article class="card"><div class="icon">IDEA</div><h3>Discuss the roadmap</h3><p>If you care about the SDL3 GUI, plugin system, LSP integration, or multi-model adapters, issues and design suggestions are welcome.</p></article> <article class="card"><div class="icon">DOC</div><h3>Improve docs and tests</h3><p>docs/tutorial and docs/reference are taking shape; help expand tutorials, command references, plugin-ABI notes, and the coverage of host_api_test / smoke_test.</p></article>
</div> </div>
<div class="actions"> <div class="actions">
<a class="btn btn-primary" href="https://git.pulsareon.com/pulsareon/dstalk">Go to source repository</a> <a class="btn btn-primary" href="https://git.pulsareon.com/pulsareon/dstalk">Go to source repository</a>

View File

@@ -3,10 +3,10 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="dstalk 是基于 DeepSeek V4、兼容 OpenAI / Anthropic API 的 C/C++ AI 编程 CLI采用 dstalk-core.dll + 多前端解耦架构。"> <meta name="description" content="dstalk 是基于 DeepSeek V4、兼容 OpenAI / Anthropic API 的 C/C++ AI 编程 CLI采用 dstalk-core.dll 插件宿主 + 多前端解耦架构。">
<meta name="theme-color" content="#0b1020"> <meta name="theme-color" content="#0b1020">
<meta property="og:title" content="dstalk — C/C++ AI 编程 CLI"> <meta property="og:title" content="dstalk — C/C++ AI 编程 CLI">
<meta property="og:description" content="DeepSeek V4 驱动C ABI 可嵌入,CLI 当前可用GUI、插件与 LSP 持续推进。"> <meta property="og:description" content="DeepSeek V4 驱动C ABI 可嵌入,dstalk-core.dll 作为插件宿主9 个功能插件覆盖 AI、网络、会话、LSP 与工具。">
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<link rel="alternate" hreflang="zh-CN" href="https://dstalk.top/"> <link rel="alternate" hreflang="zh-CN" href="https://dstalk.top/">
<link rel="alternate" hreflang="en" href="https://dstalk.top/en.html"> <link rel="alternate" hreflang="en" href="https://dstalk.top/en.html">
@@ -213,7 +213,7 @@
<div> <div>
<div class="eyebrow">dstalk.top 是 dstalk 项目的官方网站</div> <div class="eyebrow">dstalk.top 是 dstalk 项目的官方网站</div>
<h1><span>ds</span>talk</h1> <h1><span>ds</span>talk</h1>
<p class="lead">基于 DeepSeek V4 大模型、兼容 OpenAI / Anthropic API 的 AI 编程 CLI。核心采用 C11 / C++20 编写,以 dstalk-core.dll 暴露稳定 C ABI让 CLI、GUI 第三方工具共享同一套 AI 编程能力</p> <p class="lead">基于 DeepSeek V4 大模型、兼容 OpenAI / Anthropic API 的 AI 编程 CLI。核心采用 C11 / C++20 编写,以 dstalk-core.dll 作为插件宿主暴露稳定 C ABI9 个功能插件 (AI、网络、LSP、会话、文件、工具等) 编译为独立 DLL通过统一接口接入 CLI、SDL3 GUI 第三方宿主</p>
<div class="actions"> <div class="actions">
<a class="btn btn-primary" href="#quickstart">开始使用</a> <a class="btn btn-primary" href="#quickstart">开始使用</a>
<a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">查看源代码</a> <a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">查看源代码</a>
@@ -221,13 +221,14 @@
<div class="badges" aria-label="项目标签"> <div class="badges" aria-label="项目标签">
<span class="badge">v0.1.0</span> <span class="badge">v0.1.0</span>
<span class="badge">C11 / C++20</span> <span class="badge">C11 / C++20</span>
<span class="badge">CDLL + C ABI</span> <span class="badge">插件宿主 + C ABI</span>
<span class="badge">9 个插件</span>
<span class="badge">GPL v3.0</span> <span class="badge">GPL v3.0</span>
</div> </div>
<div class="stats" aria-label="项目状态"> <div class="stats" aria-label="项目状态">
<span class="stat"><strong>当前阶段</strong>Phase 1</span> <span class="stat"><strong>核心</strong>dstalk-core.dll (插件宿主)</span>
<span class="stat"><strong>核心</strong>dstalk-core.dll</span> <span class="stat"><strong>前端</strong>CLI + SDL3 GUI</span>
<span class="stat"><strong>前端</strong>CLI 当前可用</span> <span class="stat"><strong>插件</strong>deepseek · anthropic · network · lsp · session · context · config · file-io · tools</span>
</div> </div>
</div> </div>
<div class="terminal" aria-label="dstalk 命令行示例"> <div class="terminal" aria-label="dstalk 命令行示例">
@@ -238,11 +239,12 @@ dstalk v0.1.0 | DeepSeek V4 | /help 查看帮助
&gt; 帮我解释 dstalk-core 的职责 &gt; 帮我解释 dstalk-core 的职责
<span class="dim">思考中...</span> <span class="dim">思考中...</span>
AI: dstalk-core 负责配置、会话、文件 I/O、HTTP 通信 AI: dstalk-core 是插件宿主,负责插件加载、服务注册、
和 DeepSeek API 适配,前端只处理输入与渲染。 事件总线和配置管理AI、网络、会话、LSP、文件 IO
等能力都由独立插件提供,前端只处理输入与渲染。
&gt; /file read dstalk-core/src/api.cpp &gt; /file read dstalk-core/include/dstalk/dstalk_api.h
<span class="dim">--- dstalk-core/src/api.cpp ---</span></code></pre> <span class="dim">--- dstalk-core/include/dstalk/dstalk_api.h ---</span></code></pre>
</div> </div>
</header> </header>
@@ -250,15 +252,15 @@ AI: dstalk-core 负责配置、会话、文件 I/O、HTTP 通信
<section id="features" class="container section"> <section id="features" class="container section">
<div class="section-head"> <div class="section-head">
<h2>为什么 dstalk 用 C/C++ 重新做 AI 编程助手?</h2> <h2>为什么 dstalk 用 C/C++ 重新做 AI 编程助手?</h2>
<p>dstalk 对标 Claude Code、OpenCode、KiloCode但选择系统级实现和 CDLL 架构,重点优化启动速度、运行时依赖、可嵌入能力和长期驻留体验。</p> <p>dstalk 对标 Claude Code、OpenCode、KiloCode但选择系统级实现和插件宿主架构,重点优化启动速度、运行时依赖、可嵌入能力和长期驻留体验。</p>
</div> </div>
<div class="cards"> <div class="cards">
<article class="card"><div class="icon">C</div><h3>零 Node.js 运行时</h3><p>核心以 C11 / C++20 构建,目标是毫秒级启动和更低内存占用,适合终端长期交互。</p></article> <article class="card"><div class="icon">C</div><h3>零 Node.js 运行时</h3><p>核心以 C11 / C++20 构建,目标是毫秒级启动和更低内存占用,适合终端长期交互。</p></article>
<article class="card"><div class="icon">ABI</div><h3>稳定 C ABI</h3><p>公开 dstalk_init、dstalk_chat、dstalk_file_read 等 C 函数,方便 C/C++、Python、Rust、C#、Go 嵌入。</p></article> <article class="card"><div class="icon">ABI</div><h3>稳定 C ABI</h3><p>公开 dstalk_init、dstalk_chat、dstalk_file_read 等 C 函数,方便 C/C++、Python、Rust、C#、Go 嵌入。</p></article>
<article class="card"><div class="icon">AI</div><h3>多 API 兼容</h3><p> DeepSeek V4 为核心,同时兼容 OpenAI / Anthropic 风格接口通过配置切换 base_url、api_key 与模型</p></article> <article class="card"><div class="icon">AI</div><h3>多 API 兼容</h3><p>内置 DeepSeek 与 Anthropic 两个 AI 插件,兼容 OpenAI 风格接口通过 config.toml 中的 ai.provider 一键切换</p></article>
<article class="card"><div class="icon">CLI</div><h3>命令行优先</h3><p>当前 CLI 使用 ANSI 终端 UI支持自然语言对话、模型切换、文件读写、会话保存与恢复</p></article> <article class="card"><div class="icon">CLI</div><h3>CLI 与 GUI 双前端</h3><p>dstalk-cli 提供 ANSI 终端 UIdstalk-gui 基于 SDL3 跨平台窗口,共享同一组核心能力</p></article>
<article class="card"><div class="icon">DLL</div><h3>核心与前端解耦</h3><p>CLI 和 GUI 不持有业务逻辑,统一调用 dstalk-core.dll后续可以扩展更多宿主</p></article> <article class="card"><div class="icon">PLG</div><h3>插件化宿主</h3><p>核心仅做插件加载、服务注册、事件总线和配置管理AI、网络、LSP、会话等能力均为独立 DLL可以替换或扩展</p></article>
<article class="card"><div class="icon">OSS</div><h3>开源可改造</h3><p>项目采用 GNU GPL v3.0,适合学习、二次开发和围绕本地工作流做深度定制。</p></article> <article class="card"><div class="icon">OSS</div><h3>开源可改造</h3><p>项目采用 GNU GPL v3.0附带示例插件、单元测试与教程文档,适合学习、二次开发和本地工作流定制。</p></article>
</div> </div>
</section> </section>
@@ -297,24 +299,28 @@ build/dstalk-cli/dstalk-cli.exe config.toml</code></pre>
<section id="architecture" class="container section"> <section id="architecture" class="container section">
<div class="section-head"> <div class="section-head">
<h2>CDLL + 多前端解耦架构</h2> <h2>插件宿主 + 多前端解耦架构</h2>
<p>dstalk-core.dll 提供网络通讯、AI 接口适配、文件读写和会话管理前端层只负责交互体验。GUI 目录已预留,根 CMake 当前先启用 CLI 与核心库</p> <p>dstalk-core.dll 作为插件宿主负责插件加载、服务注册、事件总线和配置管理AI、网络、LSP、会话、文件 IO、工具等 9 个功能插件编译为独立 DLL前端只通过 C ABI 触达核心能力。GUI 通过 CMake 选项 DSTALK_BUILD_GUI 启用</p>
</div> </div>
<div class="terminal architecture"> <div class="terminal architecture">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">architecture</span></div> <div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">architecture</span></div>
<pre><code>┌─────────────────────────────────────────────┐ <pre><code>┌─────────────────────────────────────────────────────
│ Frontends │ │ Frontends
│ dstalk-cli (ANSI UI) dstalk-gui (SDL3) │ │ dstalk-cli (ANSI UI) dstalk-gui (SDL3)
│ 当前构建启用 路线图推进 │ └───────────────────────┬─────────────────────────────┘
└───────────────┬─────────────────────────────┘ │ C ABI
│ C ABI ┌───────────────────────▼─────────────────────────────┐
┌───────────────▼─────────────────────────────┐ │ dstalk-core.dll — Plugin Host │
dstalk-core.dll Plugin Loader · Service Registry · Event Bus ·
API / Session / File I/O / AI Adapter Config Manager
└───────┬──────────────┬──────────────┬────────┘ └──┬───────┬──────────────┬──────────────┬──────────
Boost.JSON HTTP Client OpenSSL TLS deepseek anthropic network lsp session context
Boost.Asio / Beast</code></pre> (ai) (ai) (http) client
▼ ▼ ▼
config file-io tools
│ │ │
└── Boost.JSON / Boost.Asio / Beast / OpenSSL TLS ──┘</code></pre>
</div> </div>
</section> </section>
@@ -326,11 +332,15 @@ build/dstalk-cli/dstalk-cli.exe config.toml</code></pre>
<div class="panel table-wrap"> <div class="panel table-wrap">
<table> <table>
<tr><th>模块</th><th>当前技术</th><th>状态</th></tr> <tr><th>模块</th><th>当前技术</th><th>状态</th></tr>
<tr><td>核心库</td><td>C11 / C++20dstalk-core.dll公开 C ABI</td><td><span class="ok">已启用</span></td></tr> <tr><td>核心库</td><td>C11 / C++20dstalk-core.dll插件宿主,公开 C ABI</td><td><span class="ok">已启用</span></td></tr>
<tr><td>CLI 前端</td><td>ANSI 终端 UI调用 dstalk/dstalk_api.h</td><td><span class="ok">已启用</span></td></tr> <tr><td>CLI 前端</td><td>ANSI 终端 UI调用 dstalk/dstalk_api.h</td><td><span class="ok">已启用</span></td></tr>
<tr><td>GUI 前端</td><td>SDL3 图形化前端</td><td><span class="todo">路线图</span></td></tr> <tr><td>GUI 前端</td><td>SDL3 图形化前端CMake 选项 DSTALK_BUILD_GUI 启用</td><td><span class="ok">已就位</span></td></tr>
<tr><td>插件</td><td>9 个功能插件 (deepseek · anthropic · network · lsp · session · context · config · file-io · tools),独立 DLL</td><td><span class="ok">已启用</span></td></tr>
<tr><td>测试</td><td>tests/ 提供 host_api_test 与 smoke_testCTest 集成</td><td><span class="ok">已启用</span></td></tr>
<tr><td>文档</td><td>docs/tutorial、docs/reference (commands、plugin-abi)</td><td><span class="ok">已发布</span></td></tr>
<tr><td>示例</td><td>examples/example_plugin 展示插件开发模板</td><td><span class="ok">已提供</span></td></tr>
<tr><td>依赖管理</td><td>Conan2boost/1.86.0openssl/3.4.1</td><td><span class="ok">已配置</span></td></tr> <tr><td>依赖管理</td><td>Conan2boost/1.86.0openssl/3.4.1</td><td><span class="ok">已配置</span></td></tr>
<tr><td>构建系统</td><td>CMake 3.21+NinjaLLVM/Clang</td><td><span class="ok">已配置</span></td></tr> <tr><td>构建系统</td><td>CMake 3.21+NinjaLLVM/ClangCMakePresets</td><td><span class="ok">已配置</span></td></tr>
<tr><td>许可证</td><td>GNU GPL v3.0</td><td><span class="ok">已确认</span></td></tr> <tr><td>许可证</td><td>GNU GPL v3.0</td><td><span class="ok">已确认</span></td></tr>
</table> </table>
</div> </div>
@@ -384,15 +394,16 @@ int dstalk_file_write(const char* path, const char* content);</code></pre>
<section id="roadmap" class="container section"> <section id="roadmap" class="container section">
<div class="section-head"> <div class="section-head">
<h2>路线图</h2> <h2>路线图</h2>
<p>官网按 dstalk 当前 README 的阶段说明呈现,避免把规划功能误写成已完成能力</p> <p>插件宿主、CLI、SDL3 GUI、9 个核心插件、测试与文档已经就位;后续聚焦在能力深化与生态扩展</p>
</div> </div>
<div class="panel table-wrap"> <div class="panel table-wrap">
<table> <table>
<tr><th>阶段</th><th>内容</th><th>状态</th></tr> <tr><th>阶段</th><th>内容</th><th>状态</th></tr>
<tr><td>Phase 1</td><td>项目骨架、CMake 构建、DLL 导出、前端主循环</td><td><span class="ok">当前阶段</span></td></tr> <tr><td>骨架</td><td>项目骨架、CMake/Ninja 构建、Conan 依赖、DLL 导出、前端主循环</td><td><span class="ok">已完成</span></td></tr>
<tr><td>Phase 2</td><td>HTTPS 网络层、DeepSeek API 对接、基本对话</td><td><span class="todo">推进中</span></td></tr> <tr><td>插件宿主</td><td>插件加载、服务注册、事件总线、配置管理9 个核心插件 (deepseek · anthropic · network · lsp · session · context · config · file-io · tools)</td><td><span class="ok">已完成</span></td></tr>
<tr><td>Phase 3</td><td>流式输出、多轮会话、文件读写工具、CLI 体验对齐</td><td><span class="todo">计划中</span></td></tr> <tr><td>对话能力</td><td>HTTPS 网络层、DeepSeek / Anthropic API 适配、流式输出、多轮会话、文件读写工具</td><td><span class="ok">已可用</span></td></tr>
<tr><td>Phase 4</td><td>SDL3 GUI 完善、插件系统、LSP 集成</td><td><span class="todo">计划</span></td></tr> <tr><td>GUI 前端</td><td>SDL3 图形化窗口 (DSTALK_BUILD_GUI),与 CLI 共享插件宿主</td><td><span class="todo">推进</span></td></tr>
<tr><td>下一阶段</td><td>LSP 集成深化、第三方插件 SDK、跨平台分发与文档持续完善</td><td><span class="todo">计划中</span></td></tr>
</table> </table>
</div> </div>
</section> </section>
@@ -403,9 +414,9 @@ int dstalk_file_write(const char* path, const char* content);</code></pre>
<p>dstalk 是开放项目,欢迎对 C/C++、命令行体验、AI API 适配、GUI、文档和测试感兴趣的开发者一起参与。</p> <p>dstalk 是开放项目,欢迎对 C/C++、命令行体验、AI API 适配、GUI、文档和测试感兴趣的开发者一起参与。</p>
</div> </div>
<div class="cards"> <div class="cards">
<article class="card"><div class="icon">PR</div><h3>提交代码改进</h3><p>可以从构建脚本、错误处理、CLI 交互、流式输出、文件工具和跨平台兼容性开始</p></article> <article class="card"><div class="icon">PR</div><h3>提交代码改进</h3><p>核心、CLI、SDL3 GUI 与 9 个插件 (AI、网络、LSP、会话、文件工具等) 都欢迎补丁,跨平台兼容与构建脚本也有空间</p></article>
<article class="card"><div class="icon">DOC</div><h3>完善文档示例</h3><p>欢迎补充安装说明、配置模板、API 调用示例和真实使用场景,降低新用户上手成本</p></article> <article class="card"><div class="icon">PLG</div><h3>开发新插件</h3><p>参考 examples/example_plugin 和 docs/reference/plugin-abi.md通过 C ABI 注册新服务,把自己的模型、工具或数据源接入 dstalk</p></article>
<article class="card"><div class="icon">IDEA</div><h3>参与路线图讨论</h3><p>如果你关注 SDL3 GUI、插件系统、LSP 集成或多模型适配,欢迎提出设计建议和 issue</p></article> <article class="card"><div class="icon">DOC</div><h3>完善文档与测试</h3><p>docs/tutorial、docs/reference 已经成形,欢迎补充教程、命令速查、插件 ABI 说明,以及 host_api_test / smoke_test 的覆盖面</p></article>
</div> </div>
<div class="actions"> <div class="actions">
<a class="btn btn-primary" href="https://git.pulsareon.com/pulsareon/dstalk">前往源码仓库</a> <a class="btn btn-primary" href="https://git.pulsareon.com/pulsareon/dstalk">前往源码仓库</a>