@innocarpe/deepseek-build
v6.1.4
Published
DeepSeek Build — npm i -g then type dsb for full-screen DeepSeek TUI
Maintainers
Readme
快速开始
从 npm 安装、添加你的 DeepSeek API 密钥,然后打开 TUI。
npm 12.0.0 及以上默认不运行依赖的 install 脚本。没有下面的参数时,安装会显示成功,但不会装上代理。 npm 11 及更早版本带不带该参数都会安装。
npm install -g --allow-scripts=@innocarpe/deepseek-build @innocarpe/deepseek-build
deepseek-build setup
deepseek-build若希望之后的全局安装都允许本包,设置一次即可,随后用普通命令安装:
npm config set allow-scripts=@innocarpe/deepseek-build --location=user
npm install -g @innocarpe/deepseek-build注册表安装需要 Node.js 18 或更高版本,并在存在匹配的发布资源时使用预编译 二进制。该路径不需要 Rust;平台与源码回退细节见 npm 安装指南。
deepseek-build 是主命令。dsb 是完全受支持的短别名,行为相同且使用完整
语义化版本号:
deepseek-build --version
dsb --version如果安装程序报告产品 bin 目录不在 PATH 中,请先将其加入:
export PATH="$HOME/.deepseek-build/bin:$PATH"为什么选择 DeepSeek Build
| 能力 | 含义 | | --- | --- | | DeepSeek 原生 | DeepSeek API 默认、Flash/Pro 路由、推理强度(reasoning effort),以及 DeepSeek 品牌 TUI。 | | 安全编辑 | 基于版本的片段编辑(snippet)与失败即关闭的工作区权限,而非静默整文件替换。 | | 长会话经济性 | 会话变化追加在缓存历史之后,而不重写它。缓存未命中会指明移动的组装文档,会话记录累计缓存合计,与会话日志不一致的请求会使该轮失败。 | | 吞吐能力 | 并行工具、后台 Shell 任务、子代理与可选的 worktree,运行在安全与缓存层之下。 | | 持久会话 | 续接最近的全屏会话,或直接定位到已保存的会话。 |
结果是一个编码代理:既保留 Grok 衍生执行引擎的速度,又把 DeepSeek 特有的 成本、编辑与权限规则纳入产品路径之中。
日常使用
# 打开全屏 TUI
deepseek-build
# 续接最近的全屏会话
deepseek-build --resume
# 继续最近的全屏会话(Claude Code 风格的 -c)
deepseek-build -c
# 执行一轮非交互式对话
deepseek-build run "Explain the architecture of this repository."
# 使用受信任的本地编码配置
deepseek-build --dogfood--dogfood 允许在当前工作区内写入,并在策略允许下执行 Shell。工作区之外的
写入与删除仍被拒绝。
短命令可将示例中的 deepseek-build 替换为 dsb。
宽度在 60 列及以下时,已提交的提示词会折成一行,并去掉装饰性的 ❯ 与空白
填充行;更宽的窗口保留现有的三行预算。全屏界面底部有一条可配置的状态行。
在官方 DeepSeek API 上,DeepSeek V4.1 Flash(deepseek-flash)可直接接收
附件图片,纯文本模型不会把图片发到线上,而是使用磁盘回退。
认证与配置
交互式安装会把 API 密钥以 0600 权限存入 ~/.deepseek-build/credentials.json:
deepseek-build setup
deepseek-build auth status
deepseek-build auth logout在 CI 或其他非交互环境中设置 DEEPSEEK_API_KEY;环境变量优先于凭据文件。
产品配置、凭据、会话与用户技能默认存放在 ~/.deepseek-build/ 下。
从源码构建
源码安装面向贡献者与不受支持的发布平台,需要 Rust 1.94 或更高版本以及
protoc 或 DotSlash;首次代理构建可能需要几分钟。
git clone https://github.com/innocarpe/deepseek-build.git
cd deepseek-build
./scripts/install.sh
deepseek-build --version
dsb --version在此检出中运行 npm install 不会安装 deepseek-build 或 dsb。它既不下载预编译包,
也不编译。请在这里使用 ./scripts/install.sh,或通过
npm install -g --allow-scripts=@innocarpe/deepseek-build @innocarpe/deepseek-build
从注册表安装。npm 12 没有该参数时不会装上代理。
Cargo 与自定义前缀选项见安装指南。
工作原理
deepseek-build | dsb
│
▼
product launcher ── auth · config · model routing
│
▼
deepseek-build-agent ── full-screen TUI · tools · sessions
│
▼
DeepSeek API三个层次有明确的所有权。更高吞吐的机制不得绕过其下的编辑、权限或缓存契约。
| 层 | 来源 | 负责 | | --- | --- | --- | | L1 | Deep Code CLI | 片段安全编辑、技能即上下文、副作用权限。 | | L2 | Reasonix | 稳定前缀经济性、Flash/Pro 行为、工具调用修复。 | | L3 | Grok Build | 基础运行时、TUI、并行工具、子代理、后台工作与 worktree。 |
阅读 DeepSeek 官方 harness 并没有为此图增加层次:append 规则与请求/日志检查 正来自该证据,下一节将展开说明。
规范性冲突规则见harness 哲学, 完整系统图见SYSTEM_ARCHITECTURE.md。
DeepSeek Harness
dsh 是 DeepSeek 官方开源 的 harness。它既不是本产品的架构,也不是第四个层次:DeepSeek Build 仍是 Rust 全屏 TUI,编辑归 Deep Code,缓存契约归 Reasonix,执行归 Grok Build。 dsh 提供了一个家族如何行为的证据 —— 会话变化后缓存前缀仍然存活,与会话日志 不一致的请求不会被发出。
| 会话中变化的东西 | 产品的做法 |
| --- | --- |
| 稳定 system 正文的后续变更 | 之前的 system 消息逐字节保留,新正文追加在其后。模型把最近一条 system 消息视为当前正文。 |
| 该正文中的 tools、skills、environment、project instructions | 同样是追加。线上的 tools 数组在每次请求中都是完整列表。没有工具增删专用的历史消息——Chat Completions 没有该字段。 |
| 缓存未命中 | 该轮会以 prefix_change= 说明是哪个组装文档发生了变化。若 epoch 变了而所有文档哈希都相同,则说 unattributed,而不是编造原因。 |
| 会话的缓存 | 只要有一个响应带有缓存字段,之后每轮都会记录一行 cache_session=。hit/miss 是 token 合计;没有缓存字段的响应记为 unreported,不计入 miss。deepseek-build run 与 REPL 会把合计随会话保存,resume 后继续累计。全屏状态芯片仍是最后一轮的比例;全屏计数器不写入会话文件,新进程从零开始。 |
| 与日志不一致的请求 | 该轮在采样前失败。无法序列化的条目同样失败关闭。 |
| deny | 后续的 allow 不会改变 deny。 |
刻意未采用:plugin host、agent teams、sandbox escalation、request-series
bookkeeping(initial / resume / change)以及 Anthropic Messages 传输。
本产品使用 DeepSeek Chat Completions
(ADR 0005)。
已经具备、因此没有再次移植:超大工具结果的 spill(首尾与其余部分的路径)、 贴合热前缀的 compaction、比 dsh 更严格的 snippet staleness。这些并不是从 dsh 新引入的功能。
延伸阅读:dsh 研究笔记 · 本次工作的变更 · 设计来源。
文档
| 从这里开始 | 用途 | | --- | --- | | 用户指南 | 安装、配置、日常使用与完整功能索引。 | | 首次运行设置 | API 密钥、凭据优先级与无头设置。 | | 会话 | 全屏续接与行模式会话存储。 | | 权限 | 交互式询问、无头拒绝与工作区边界。 | | 子代理 · 后台任务 · Worktree | L3 执行表面。 | | 已知限制 | 当前打包、实时冒烟与平台边界。 | | 产品 SSOT | 产品文档冲突时由谁裁决。 |
开发
cargo build -p dsb-cli
cargo test --workspace
./scripts/check-semver.sh
./scripts/test-owner-bar.sh根 Rust 工作区覆盖产品 crates。日常检查请避免对 vendor 全量运行 Cargo; owner-bar 脚本使用有界的产品路径。
crate 映射见 crates/README.md。仓库映射与文档所有权见 docs/README.md。
参与贡献
开始前请阅读 CONTRIBUTING.md。所有有意义的工作都通过 聚焦的 PR 落地:原子式 Conventional Commit、已有 kind 标签、诚实的测试证据, 以及 PR 撰写指南 规定的评审叙事。
许可证
DeepSeek Build 使用 Apache License 2.0。内置与第三方代码保留其 原始许可;见 NOTICE。
