Files
dstalk.top/index.html
XiuChengWu ee56dbb753 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>
2026-05-27 08:57:30 +08:00

447 lines
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<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="theme-color" content="#0b1020">
<meta property="og:title" content="dstalk — C/C++ AI 编程 CLI">
<meta property="og:description" content="DeepSeek V4 驱动C ABI 可嵌入dstalk-core.dll 作为插件宿主9 个功能插件覆盖 AI、网络、会话、LSP 与工具。">
<meta property="og:type" content="website">
<link rel="alternate" hreflang="zh-CN" href="https://dstalk.top/">
<link rel="alternate" hreflang="en" href="https://dstalk.top/en.html">
<link rel="icon" href="data:image/svg+xml,%3Csvg%20id%3D%22b8933227-ee10-4b8b-aa3f-4d0252add8f0%22%20data-name%3D%22%E5%9B%BE%E5%B1%82%201%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20467.49%20156.25%22%3E%3Cdefs%3E%3Cstyle%3E.b2b6d799-07c9-401d-bf7c-05fa2b138761%7Bfill%3A%23036eb8%3B%7D.a1ce0134-56a6-4bb1-8507-28f21bc08e8e%7Bfill%3A%23fff%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M71.66%2C440.73S69.51%2C430%2C69.83%2C423.44s1.23-16.87%2C7.9-25.76%2C8.76-10.53%2C15-14.84%2C14.79-8.38%2C23.65-8.86%2C16.53-.14%2C23.22%2C2.3%2C12.77%2C5.54%2C17.88%2C14.77S162%2C406.69%2C162%2C406.69s.72%2C12.93-1.73%2C19.8-3.74%2C7.61-5.61%2C10.53-9.5%2C8.69-10.35%2C10.8-1%2C13.92-3.26%2C13.77-6.87-8.47-10.53-10.07-9.53-.3-14.58-.91a34.86%2C34.86%2C0%2C0%2C1-12-3.37c-3.86-1.83-7.08-3.8-9.17-6.39s-3.74-4.78-5.95-7.78-2.56-4.19-3.32-7.75a37.21%2C37.21%2C0%2C0%2C1-1-7.71%2C23.43%2C23.43%2C0%2C0%2C1%2C.71-7.27c.49-1.9%2C2.34-6.88%2C2.34-6.88.17%2C0%2C3.57-8.11%2C3.24-8.88s-3.81%2C3.1-5.73%2C6.05-4.78%2C7-6%2C10.78-2.54%2C6.74-2.68%2C12%2C0%2C12.58%2C2%2C17.56A41.48%2C41.48%2C0%2C0%2C0%2C86.9%2C454.2a41.46%2C41.46%2C0%2C0%2C0%2C12.34%2C7.95c3.65%2C1.35%2C6.05%2C2.48%2C10.2%2C3.12s5.28.68%2C9%2C1%2C10.56.25%2C10.56.25l12.79%2C13.25a4.08%2C4.08%2C0%2C0%2C0%2C2.86%2C1.5c1.7%2C0%2C2.49-2%2C2.49-2L153.05%2C460s7.18-4.13%2C10.34-7.58%2C5.24-4.95%2C9.17-12.29%2C6.05-19.23%2C6-19.6c.19-.78%2C0-34.45%2C0-34.45l-.35-53.83a23.52%2C23.52%2C0%2C0%2C0-1.89-3.67%2C14.51%2C14.51%2C0%2C0%2C0-4.35-3%2C8.32%2C8.32%2C0%2C0%2C0-6%2C0%2C8.49%2C8.49%2C0%2C0%2C0-3.32%2C2.63%2C45.13%2C45.13%2C0%2C0%2C0-2.15%2C4.2l.27%2C36.93s-2.22-2.91-8.85-5.91a55%2C55%2C0%2C0%2C0-19.51-5.14%2C77.52%2C77.52%2C0%2C0%2C0-22.39.9%2C60.73%2C60.73%2C0%2C0%2C0-14.38%2C4.36%2C69.24%2C69.24%2C0%2C0%2C0-11.38%2C6.76%2C75.69%2C75.69%2C0%2C0%2C0-9.54%2C9.19c-2%2C2.49-5.41%2C6.3-8.46%2C15.93s-2.35%2C18.16-1.76%2C23.81.64%2C5.69%2C2.42%2C11.63A32.73%2C32.73%2C0%2C0%2C0%2C71.66%2C440.73Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Ccircle%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20cx%3D%2245.84%22%20cy%3D%2289.15%22%20r%3D%228.17%22%2F%3E%3Ccircle%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20cx%3D%2270.14%22%20cy%3D%2289.15%22%20r%3D%228.17%22%2F%3E%3Cpath%20class%3D%22a1ce0134-56a6-4bb1-8507-28f21bc08e8e%22%20d%3D%22M423.12%2C414.19%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M210.43%2C418c0-19.47%2C12.16-31.23%2C24.69-31.23%2C6.57%2C0%2C10.58%2C2.45%2C14.6%2C6.21l-.64-9V363.69h17.64v84.07H252.33l-1.27-5.9h-.44c-4.2%2C4.2-10.09%2C7.34-15.84%2C7.34C220%2C449.2%2C210.43%2C437.45%2C210.43%2C418Zm38.65%2C11.42V405a14.45%2C14.45%2C0%2C0%2C0-9.85-3.76c-5.71%2C0-10.72%2C5.27-10.72%2C16.59%2C0%2C11.69%2C4%2C16.95%2C10.86%2C16.95C243.13%2C434.76%2C246.16%2C433.34%2C249.08%2C429.43Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M277%2C440.88l7.94-11c5.39%2C4.08%2C10.37%2C6.26%2C15.35%2C6.26%2C5.25%2C0%2C7.52-2%2C7.52-5.12%2C0-3.93-5.9-5.7-12-8.1-7.3-2.83-15.76-7.67-15.76-17.51%2C0-11.08%2C9-18.64%2C22.75-18.64%2C9.12%2C0%2C15.91%2C3.69%2C21%2C7.54l-7.89%2C10.59c-4.24-3.07-8.42-5.08-12.54-5.08-4.56%2C0-6.8%2C1.79-6.8%2C4.76%2C0%2C3.79%2C5.57%2C5.25%2C11.74%2C7.49%2C7.54%2C2.79%2C16%2C7%2C16%2C17.92s-8.5%2C19.2-24.45%2C19.2A38.65%2C38.65%2C0%2C0%2C1%2C277%2C440.88Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M335.4%2C426.11V402.06h-8.13V388.9l9.12-.68%2C2.06-15.81H353v15.81h14.27v13.84H353V425.9c0%2C6.75%2C3.06%2C9.46%2C7.71%2C9.46a17.85%2C17.85%2C0%2C0%2C0%2C5.66-1.13L369.19%2C447A42.05%2C42.05%2C0%2C0%2C1%2C356%2C449.2C341.25%2C449.2%2C335.4%2C439.91%2C335.4%2C426.11Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M373.84%2C431.25c0-12.55%2C10-19.34%2C33.52-21.82-.35-5.21-2.95-8.61-9.41-8.61-5%2C0-10%2C2.1-15.75%2C5.38l-6.27-11.58c7.55-4.62%2C16.06-7.84%2C25.42-7.84%2C15.22%2C0%2C23.65%2C8.7%2C23.65%2C26.94v34H410.61l-1.27-6.1h-.44c-5%2C4.4-10.63%2C7.54-17.32%2C7.54C380.73%2C449.2%2C373.84%2C441.27%2C373.84%2C431.25Zm33.52-.79v-10.4c-12.54%2C1.69-16.63%2C5.28-16.63%2C9.78%2C0%2C3.84%2C2.64%2C5.71%2C6.83%2C5.71C401.55%2C435.55%2C404.23%2C433.58%2C407.36%2C430.46Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M439.81%2C429.26V363.69h17.64V430c0%2C3.78%2C1.75%2C5%2C3.19%2C5a7.68%2C7.68%2C0%2C0%2C0%2C2.16-.24l2.11%2C13a22.9%2C22.9%2C0%2C0%2C1-8.86%2C1.47C444%2C449.2%2C439.81%2C441.3%2C439.81%2C429.26Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3Cpath%20class%3D%22b2b6d799-07c9-401d-bf7c-05fa2b138761%22%20d%3D%22M474.13%2C363.69h17.25v48.16h.44l18.88-23.63h19.15L509%2C412.76l22.43%2C35H512.32l-13.39-23.22-7.55%2C8.56v14.66H474.13Z%22%20transform%3D%22translate%28-63.94%20-325.04%29%22%2F%3E%3C%2Fsvg%3E" type="image/svg+xml">
<title>dstalk — DeepSeek V4 AI 编程 CLI</title>
<style>
:root {
--bg:#070b15;
--card:#111827cc;
--panel:#0d1324;
--border:#263247;
--text:#dbe7ff;
--muted:#8ea2c4;
--subtle:#5f7396;
--cyan:#58a6ff;
--green:#39d98a;
--purple:#a78bfa;
--warning:#facc15;
--shadow:0 24px 80px rgba(0,0,0,.35);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
min-height:100vh;
background:
radial-gradient(circle at 10% 0%, rgba(88,166,255,.24), transparent 34rem),
radial-gradient(circle at 92% 6%, rgba(167,139,250,.18), transparent 30rem),
linear-gradient(180deg, #070b15 0%, #0a1020 48%, #070b15 100%);
color:var(--text);
font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
body::before {
content:"";
position:fixed;
inset:0;
pointer-events:none;
background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
background-size:48px 48px;
mask-image:linear-gradient(to bottom, #000, transparent 72%);
}
a { color:inherit; text-decoration:none; }
.container { width:min(1120px, calc(100% - 40px)); margin:0 auto; }
.nav {
position:sticky;
top:0;
z-index:10;
border-bottom:1px solid rgba(142,162,196,.16);
background:rgba(7,11,21,.74);
backdrop-filter:blur(18px);
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; min-height:68px; gap:24px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.03em; }
.brand-mark {
display:block;
width:108px;
height:36px;
filter:drop-shadow(0 0 22px rgba(88,166,255,.28));
}
.nav-links { display:flex; align-items:center; gap:22px; color:var(--muted); font-size:.94rem; }
.nav-links a:hover, .footer a:hover { color:#fff; }
.hero { display:grid; grid-template-columns:minmax(0, 1.06fr) minmax(320px, .94fr); align-items:center; gap:52px; padding:84px 0 72px; }
.hero > *, .split > *, .terminal, .panel { min-width:0; }
.eyebrow {
display:inline-flex;
align-items:center;
gap:8px;
margin-bottom:18px;
padding:7px 12px;
border:1px solid rgba(88,166,255,.32);
border-radius:999px;
color:#b9d8ff;
background:rgba(88,166,255,.09);
font-size:.88rem;
}
.eyebrow::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 18px var(--green); }
h1 { max-width:760px; color:#fff; font-size:clamp(3.2rem, 8vw, 6.4rem); line-height:.95; letter-spacing:-.075em; }
h1 span { color:transparent; background:linear-gradient(135deg, var(--cyan), var(--green)); -webkit-background-clip:text; background-clip:text; }
h2 { color:#fff; font-size:clamp(1.8rem, 4vw, 2.7rem); line-height:1.1; letter-spacing:-.045em; }
h3 { color:#fff; }
.lead { max-width:720px; margin-top:24px; color:#b8c7e6; font-size:clamp(1.05rem, 2vw, 1.34rem); }
.actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.btn {
display:inline-flex;
align-items:center;
justify-content:center;
min-height:46px;
padding:0 20px;
border-radius:12px;
border:1px solid transparent;
font-weight:700;
transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.btn:hover { transform:translateY(-2px); }
.btn-primary { color:#06111f; background:linear-gradient(135deg, var(--cyan), var(--green)); box-shadow:0 16px 40px rgba(88,166,255,.22); }
.btn-secondary { color:#d7e7ff; background:rgba(17,24,39,.72); border-color:rgba(142,162,196,.3); }
.badges, .stats { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }
.badge, .stat { padding:7px 12px; border-radius:999px; color:#cfe1ff; background:rgba(17,24,39,.72); border:1px solid rgba(142,162,196,.22); font-size:.88rem; }
.stat { display:flex; gap:7px; border-radius:14px; }
.stat strong { color:#fff; }
.terminal {
position:relative;
overflow:hidden;
border:1px solid rgba(88,166,255,.28);
border-radius:22px;
background:linear-gradient(180deg, rgba(17,24,39,.94), rgba(8,13,25,.96));
box-shadow:var(--shadow);
}
.terminal::before {
content:"";
position:absolute;
inset:-1px;
pointer-events:none;
background:linear-gradient(135deg, rgba(88,166,255,.24), transparent 42%, rgba(57,217,138,.16));
}
.terminal-top { position:relative; display:flex; align-items:center; gap:8px; padding:16px 18px; border-bottom:1px solid rgba(142,162,196,.18); }
.dot { width:11px; height:11px; border-radius:50%; background:#ff5f56; }
.dot:nth-child(2) { background:#ffbd2e; }
.dot:nth-child(3) { background:#27c93f; }
.terminal-title { margin-left:8px; color:var(--subtle); font-size:.84rem; }
pre { position:relative; overflow-x:auto; padding:24px; color:#cfe1ff; font-size:.92rem; line-height:1.8; }
code { font-family:"Cascadia Code","Fira Code","JetBrains Mono",Consolas,monospace; }
.cmd { color:var(--green); }
.dim { color:var(--subtle); }
.section { padding:50px 0; }
.section-head { max-width:760px; margin-bottom:26px; }
.section-head p { margin-top:12px; color:var(--muted); font-size:1.04rem; }
.cards { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; }
.card {
position:relative;
overflow:hidden;
min-height:178px;
padding:24px;
border:1px solid rgba(142,162,196,.2);
border-radius:18px;
background:linear-gradient(180deg, rgba(17,24,39,.86), rgba(13,19,36,.78));
}
.card::after {
content:"";
position:absolute;
right:-36px;
top:-36px;
width:110px;
height:110px;
border-radius:50%;
background:rgba(88,166,255,.12);
}
.card h3 { margin-bottom:10px; font-size:1.08rem; }
.card p { color:var(--muted); font-size:.95rem; }
.icon { display:grid; place-items:center; width:40px; height:40px; margin-bottom:18px; border-radius:12px; color:#06111f; background:linear-gradient(135deg, var(--cyan), var(--green)); font-weight:900; }
.split { display:grid; grid-template-columns:.92fr 1.08fr; gap:28px; align-items:start; }
.panel { overflow:hidden; border:1px solid rgba(142,162,196,.2); border-radius:20px; background:rgba(17,24,39,.64); box-shadow:var(--shadow); }
.panel-pad { padding:24px; }
.steps { display:grid; gap:14px; }
.step { display:flex; gap:14px; padding:16px; border:1px solid rgba(142,162,196,.18); border-radius:14px; background:rgba(7,11,21,.34); }
.step-num { flex:0 0 auto; display:grid; place-items:center; width:28px; height:28px; border-radius:9px; color:#06111f; background:var(--green); font-weight:800; font-size:.86rem; }
.step p { color:var(--muted); font-size:.92rem; }
.table-wrap { overflow-x:auto; }
table { width:100%; min-width:720px; border-collapse:collapse; }
th,td { padding:15px 18px; text-align:left; border-bottom:1px solid rgba(142,162,196,.16); vertical-align:top; }
th { color:#fff; font-weight:700; background:rgba(88,166,255,.08); }
td { color:var(--muted); font-size:.95rem; }
tr:last-child td { border-bottom:0; }
.ok { color:var(--green); font-weight:700; }
.todo { color:var(--warning); font-weight:700; }
.architecture { color:#cfe1ff; }
.cta { margin-top:54px; margin-bottom:24px; padding:34px; border:1px solid rgba(88,166,255,.28); border-radius:24px; background:linear-gradient(135deg, rgba(88,166,255,.16), rgba(57,217,138,.09)); text-align:center; }
.cta p { max-width:720px; margin:12px auto 0; color:var(--muted); }
.footer { display:flex; justify-content:space-between; gap:20px; padding:32px 0 44px; color:var(--subtle); font-size:.9rem; border-top:1px solid rgba(142,162,196,.16); }
.footer-links { display:flex; gap:18px; flex-wrap:wrap; }
@media (max-width: 860px) {
.nav-links { display:none; }
.hero, .split { grid-template-columns:1fr; }
.hero { padding-top:56px; }
.cards { grid-template-columns:1fr; }
.footer { flex-direction:column; }
}
@media (max-width: 560px) {
.container { width:min(100% - 28px, 1120px); }
.actions, .footer-links { flex-direction:column; }
.btn { width:100%; }
pre { padding:18px; font-size:.82rem; }
th,td { padding:12px; }
.cta { padding:24px 18px; }
}
</style>
</head>
<body>
<nav class="nav" aria-label="主导航">
<div class="container nav-inner">
<a class="brand" href="#top" aria-label="dstalk 首页"><svg class="brand-mark" aria-hidden="true" focusable="false" id="b8933227-ee10-4b8b-aa3f-4d0252add8f0" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 467.49 156.25"><defs><style>.b2b6d799-07c9-401d-bf7c-05fa2b138761{fill:#036eb8;}.a1ce0134-56a6-4bb1-8507-28f21bc08e8e{fill:#fff;}</style></defs><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M71.66,440.73S69.51,430,69.83,423.44s1.23-16.87,7.9-25.76,8.76-10.53,15-14.84,14.79-8.38,23.65-8.86,16.53-.14,23.22,2.3,12.77,5.54,17.88,14.77S162,406.69,162,406.69s.72,12.93-1.73,19.8-3.74,7.61-5.61,10.53-9.5,8.69-10.35,10.8-1,13.92-3.26,13.77-6.87-8.47-10.53-10.07-9.53-.3-14.58-.91a34.86,34.86,0,0,1-12-3.37c-3.86-1.83-7.08-3.8-9.17-6.39s-3.74-4.78-5.95-7.78-2.56-4.19-3.32-7.75a37.21,37.21,0,0,1-1-7.71,23.43,23.43,0,0,1,.71-7.27c.49-1.9,2.34-6.88,2.34-6.88.17,0,3.57-8.11,3.24-8.88s-3.81,3.1-5.73,6.05-4.78,7-6,10.78-2.54,6.74-2.68,12,0,12.58,2,17.56A41.48,41.48,0,0,0,86.9,454.2a41.46,41.46,0,0,0,12.34,7.95c3.65,1.35,6.05,2.48,10.2,3.12s5.28.68,9,1,10.56.25,10.56.25l12.79,13.25a4.08,4.08,0,0,0,2.86,1.5c1.7,0,2.49-2,2.49-2L153.05,460s7.18-4.13,10.34-7.58,5.24-4.95,9.17-12.29,6.05-19.23,6-19.6c.19-.78,0-34.45,0-34.45l-.35-53.83a23.52,23.52,0,0,0-1.89-3.67,14.51,14.51,0,0,0-4.35-3,8.32,8.32,0,0,0-6,0,8.49,8.49,0,0,0-3.32,2.63,45.13,45.13,0,0,0-2.15,4.2l.27,36.93s-2.22-2.91-8.85-5.91a55,55,0,0,0-19.51-5.14,77.52,77.52,0,0,0-22.39.9,60.73,60.73,0,0,0-14.38,4.36,69.24,69.24,0,0,0-11.38,6.76,75.69,75.69,0,0,0-9.54,9.19c-2,2.49-5.41,6.3-8.46,15.93s-2.35,18.16-1.76,23.81.64,5.69,2.42,11.63A32.73,32.73,0,0,0,71.66,440.73Z" transform="translate(-63.94 -325.04)"/><circle class="b2b6d799-07c9-401d-bf7c-05fa2b138761" cx="45.84" cy="89.15" r="8.17"/><circle class="b2b6d799-07c9-401d-bf7c-05fa2b138761" cx="70.14" cy="89.15" r="8.17"/><path class="a1ce0134-56a6-4bb1-8507-28f21bc08e8e" d="M423.12,414.19" transform="translate(-63.94 -325.04)"/><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M210.43,418c0-19.47,12.16-31.23,24.69-31.23,6.57,0,10.58,2.45,14.6,6.21l-.64-9V363.69h17.64v84.07H252.33l-1.27-5.9h-.44c-4.2,4.2-10.09,7.34-15.84,7.34C220,449.2,210.43,437.45,210.43,418Zm38.65,11.42V405a14.45,14.45,0,0,0-9.85-3.76c-5.71,0-10.72,5.27-10.72,16.59,0,11.69,4,16.95,10.86,16.95C243.13,434.76,246.16,433.34,249.08,429.43Z" transform="translate(-63.94 -325.04)"/><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M277,440.88l7.94-11c5.39,4.08,10.37,6.26,15.35,6.26,5.25,0,7.52-2,7.52-5.12,0-3.93-5.9-5.7-12-8.1-7.3-2.83-15.76-7.67-15.76-17.51,0-11.08,9-18.64,22.75-18.64,9.12,0,15.91,3.69,21,7.54l-7.89,10.59c-4.24-3.07-8.42-5.08-12.54-5.08-4.56,0-6.8,1.79-6.8,4.76,0,3.79,5.57,5.25,11.74,7.49,7.54,2.79,16,7,16,17.92s-8.5,19.2-24.45,19.2A38.65,38.65,0,0,1,277,440.88Z" transform="translate(-63.94 -325.04)"/><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M335.4,426.11V402.06h-8.13V388.9l9.12-.68,2.06-15.81H353v15.81h14.27v13.84H353V425.9c0,6.75,3.06,9.46,7.71,9.46a17.85,17.85,0,0,0,5.66-1.13L369.19,447A42.05,42.05,0,0,1,356,449.2C341.25,449.2,335.4,439.91,335.4,426.11Z" transform="translate(-63.94 -325.04)"/><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M373.84,431.25c0-12.55,10-19.34,33.52-21.82-.35-5.21-2.95-8.61-9.41-8.61-5,0-10,2.1-15.75,5.38l-6.27-11.58c7.55-4.62,16.06-7.84,25.42-7.84,15.22,0,23.65,8.7,23.65,26.94v34H410.61l-1.27-6.1h-.44c-5,4.4-10.63,7.54-17.32,7.54C380.73,449.2,373.84,441.27,373.84,431.25Zm33.52-.79v-10.4c-12.54,1.69-16.63,5.28-16.63,9.78,0,3.84,2.64,5.71,6.83,5.71C401.55,435.55,404.23,433.58,407.36,430.46Z" transform="translate(-63.94 -325.04)"/><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M439.81,429.26V363.69h17.64V430c0,3.78,1.75,5,3.19,5a7.68,7.68,0,0,0,2.16-.24l2.11,13a22.9,22.9,0,0,1-8.86,1.47C444,449.2,439.81,441.3,439.81,429.26Z" transform="translate(-63.94 -325.04)"/><path class="b2b6d799-07c9-401d-bf7c-05fa2b138761" d="M474.13,363.69h17.25v48.16h.44l18.88-23.63h19.15L509,412.76l22.43,35H512.32l-13.39-23.22-7.55,8.56v14.66H474.13Z" transform="translate(-63.94 -325.04)"/></svg></a>
<div class="nav-links">
<a href="#features">特性</a>
<a href="#quickstart">快速开始</a>
<a href="#architecture">架构</a>
<a href="#commands">命令</a>
<a href="#roadmap">路线图</a>
<a href="#contribute">贡献</a>
<a href="en.html" lang="en">English</a>
</div>
</div>
</nav>
<header id="top" class="container hero">
<div>
<div class="eyebrow">dstalk.top 是 dstalk 项目的官方网站</div>
<h1><span>ds</span>talk</h1>
<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">
<a class="btn btn-primary" href="#quickstart">开始使用</a>
<a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">查看源代码</a>
</div>
<div class="badges" aria-label="项目标签">
<span class="badge">v0.1.0</span>
<span class="badge">C11 / C++20</span>
<span class="badge">插件宿主 + C ABI</span>
<span class="badge">9 个插件</span>
<span class="badge">GPL v3.0</span>
</div>
<div class="stats" aria-label="项目状态">
<span class="stat"><strong>核心</strong>dstalk-core.dll (插件宿主)</span>
<span class="stat"><strong>前端</strong>CLI + SDL3 GUI</span>
<span class="stat"><strong>插件</strong>deepseek · anthropic · network · lsp · session · context · config · file-io · tools</span>
</div>
</div>
<div class="terminal" aria-label="dstalk 命令行示例">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">dstalk-cli</span></div>
<pre><code><span class="cmd">$</span> build/dstalk-cli/dstalk-cli.exe config.toml
dstalk v0.1.0 | DeepSeek V4 | /help 查看帮助
&gt; 帮我解释 dstalk-core 的职责
<span class="dim">思考中...</span>
AI: dstalk-core 是插件宿主,负责插件加载、服务注册、
事件总线和配置管理AI、网络、会话、LSP、文件 IO
等能力都由独立插件提供,前端只处理输入与渲染。
&gt; /file read dstalk-core/include/dstalk/dstalk_api.h
<span class="dim">--- dstalk-core/include/dstalk/dstalk_api.h ---</span></code></pre>
</div>
</header>
<main>
<section id="features" class="container section">
<div class="section-head">
<h2>为什么 dstalk 用 C/C++ 重新做 AI 编程助手?</h2>
<p>dstalk 对标 Claude Code、OpenCode、KiloCode但选择系统级实现和插件宿主架构重点优化启动速度、运行时依赖、可嵌入能力和长期驻留体验。</p>
</div>
<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">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 与 Anthropic 两个 AI 插件,兼容 OpenAI 风格接口;通过 config.toml 中的 ai.provider 一键切换。</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">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>
</div>
</section>
<section id="quickstart" class="container section">
<div class="split">
<div class="section-head">
<h2>快速开始</h2>
<p>dstalk 已提供自动工具链脚本和一键构建脚本。API Key 请只保存在本地 config.toml 或安全的环境中,不要提交到仓库。</p>
<div class="steps">
<div class="step"><div class="step-num">1</div><div><h3>安装本地工具链</h3><p>进入 tools 目录运行 setup.bat下载 CMake、Ninja、LLVM/Clang、Conan2。</p></div></div>
<div class="step"><div class="step-num">2</div><div><h3>构建 dstalk</h3><p>运行 build.bat完成 Conan 依赖、CMake 配置和 Ninja 编译。</p></div></div>
<div class="step"><div class="step-num">3</div><div><h3>启动 CLI</h3><p>使用 build/dstalk-cli/dstalk-cli.exe并传入 config.toml 或使用默认配置。</p></div></div>
</div>
</div>
<div class="terminal">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">quickstart</span></div>
<pre><code><span class="cmd"># 安装工具链</span>
cd tools
setup.bat
<span class="cmd"># 回到项目根目录并编译</span>
cd ..
build.bat
<span class="cmd"># 创建 config.toml</span>
[api]
base_url = "https://api.deepseek.com/v1"
api_key = "sk-xxxxxxxx"
model = "deepseek-chat"
<span class="cmd"># 运行 CLI</span>
build/dstalk-cli/dstalk-cli.exe config.toml</code></pre>
</div>
</div>
</section>
<section id="architecture" class="container section">
<div class="section-head">
<h2>插件宿主 + 多前端解耦架构</h2>
<p>dstalk-core.dll 作为插件宿主负责插件加载、服务注册、事件总线和配置管理AI、网络、LSP、会话、文件 IO、工具等 9 个功能插件编译为独立 DLL前端只通过 C ABI 触达核心能力。GUI 通过 CMake 选项 DSTALK_BUILD_GUI 启用。</p>
</div>
<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>
<pre><code>┌─────────────────────────────────────────────────────┐
│ Frontends │
│ dstalk-cli (ANSI UI) dstalk-gui (SDL3) │
└───────────────────────┬─────────────────────────────┘
│ C ABI
┌───────────────────────▼─────────────────────────────┐
│ dstalk-core.dll — Plugin Host │
│ Plugin Loader · Service Registry · Event Bus · │
│ Config Manager │
└──┬───────┬───────┬───────┬───────┬───────┬──────────┘
▼ ▼ ▼ ▼ ▼ ▼
deepseek anthropic network lsp session context
(ai) (ai) (http) client
▼ ▼ ▼
config file-io tools
│ │ │
└── Boost.JSON / Boost.Asio / Beast / OpenSSL TLS ──┘</code></pre>
</div>
</section>
<section class="container section">
<div class="section-head">
<h2>技术栈与工程现状</h2>
<p>以下内容根据 dstalk 的 CMake、Conan 配置和公开头文件整理。</p>
</div>
<div class="panel table-wrap">
<table>
<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>CLI 前端</td><td>ANSI 终端 UI调用 dstalk/dstalk_api.h</td><td><span class="ok">已启用</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>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>
</table>
</div>
</section>
<section id="commands" class="container section">
<div class="section-head">
<h2>CLI 常用命令</h2>
<p>除了直接输入自然语言问题dstalk-cli 还提供文件、模型和会话相关命令。</p>
</div>
<div class="panel table-wrap">
<table>
<tr><th>命令</th><th>说明</th><th>示例</th></tr>
<tr><td>/help</td><td>显示帮助</td><td>/help</td></tr>
<tr><td>/clear</td><td>清空当前会话上下文</td><td>/clear</td></tr>
<tr><td>/model &lt;name&gt;</td><td>切换当前模型</td><td>/model deepseek-chat</td></tr>
<tr><td>/file read &lt;path&gt;</td><td>读取文件内容并输出到终端</td><td>/file read README.md</td></tr>
<tr><td>/file write &lt;path&gt; &lt;content&gt;</td><td>写入文件内容</td><td>/file write note.txt hello</td></tr>
<tr><td>/save &lt;path&gt; / /load &lt;path&gt;</td><td>保存或恢复会话</td><td>/save session.json</td></tr>
</table>
</div>
</section>
<section id="api" class="container section">
<div class="section-head">
<h2>公开 C API</h2>
<p>dstalk-core 通过 dstalk-core/include/dstalk/dstalk_api.h 暴露函数,前端和第三方宿主都通过同一组接口调用核心能力。</p>
</div>
<div class="terminal">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">dstalk_api.h</span></div>
<pre><code>int dstalk_init(const char* config_path);
void dstalk_destroy(void);
void dstalk_set_api_key(const char* api_key);
void dstalk_set_base_url(const char* base_url);
void dstalk_set_model(const char* model);
int dstalk_chat(const char* input, char** output);
int dstalk_chat_stream(const char* input, dstalk_stream_cb cb, void* userdata);
void dstalk_free_string(char* str);
void dstalk_session_clear(void);
int dstalk_session_save(const char* path);
int dstalk_session_load(const char* path);
int dstalk_file_read(const char* path, char** content);
int dstalk_file_write(const char* path, const char* content);</code></pre>
</div>
</section>
<section id="roadmap" class="container section">
<div class="section-head">
<h2>路线图</h2>
<p>插件宿主、CLI、SDL3 GUI、9 个核心插件、测试与文档已经就位;后续聚焦在能力深化与生态扩展。</p>
</div>
<div class="panel table-wrap">
<table>
<tr><th>阶段</th><th>内容</th><th>状态</th></tr>
<tr><td>骨架</td><td>项目骨架、CMake/Ninja 构建、Conan 依赖、DLL 导出、前端主循环</td><td><span class="ok">已完成</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>对话能力</td><td>HTTPS 网络层、DeepSeek / Anthropic API 适配、流式输出、多轮会话、文件读写工具</td><td><span class="ok">已可用</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>
</div>
</section>
<section id="contribute" class="container section">
<div class="section-head">
<h2>欢迎开源贡献者</h2>
<p>dstalk 是开放项目,欢迎对 C/C++、命令行体验、AI API 适配、GUI、文档和测试感兴趣的开发者一起参与。</p>
</div>
<div class="cards">
<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">PLG</div><h3>开发新插件</h3><p>参考 examples/example_plugin 和 docs/reference/plugin-abi.md通过 C ABI 注册新服务,把自己的模型、工具或数据源接入 dstalk。</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 class="actions">
<a class="btn btn-primary" href="https://git.pulsareon.com/pulsareon/dstalk">前往源码仓库</a>
<a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk/issues">提交 Issue</a>
</div>
</section>
<section class="container cta">
<h2>从终端开始,把 dstalk 嵌入更多工具</h2>
<p>dstalk 的核心价值不只是一个 CLI而是一个可被多前端复用的本地 AI 编程核心。dstalk.top 会持续同步项目进展、构建方式和可用能力。</p>
<div class="actions" style="justify-content:center">
<a class="btn btn-primary" href="#quickstart">查看快速开始</a>
<a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">访问源码仓库</a>
</div>
</section>
</main>
<footer class="container footer">
<p>dstalk &copy; 2026. GNU GPL v3.0. Website: dstalk.top.</p>
<div class="footer-links">
<a href="#top">返回顶部</a>
<a href="https://dstalk.top">dstalk.top</a>
<a href="https://git.pulsareon.com/pulsareon/dstalk">源代码</a>
</div>
</footer>
</body>
</html>