用 SQL 直接查询本地 CSV、Parquet 等数据文件
29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add alitrack/dsh-duckdb该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件index.js:349
return statSync(path).size - 读取本地文件lib/paths.js:74
stat = statSync(lexical) - 执行外部命令来自配置/变量lib/cli.js:139
child = spawn(bin, argv, { stdio: ['ignore', 'pipe', 'pipe'] }) - 读取本地文件lib/compat.js:44
return JSON.parse(readFileSync(`${root}package.json`, 'utf8'))
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在 DeepSeek Harness(dsh)里用 SQL 查询本地数据文件。原生 Cordis 插件,不用 Python,不依赖外部服务。
README
由 DeepSeek 最新模型翻译生成dsh-duckdb
在 DeepSeek Harness(dsh)里用 SQL 查本地数据文件——不需要 Python、不需要外部服务、不联网。
它做什么
dsh-duckdb 是一个 Cordis 插件,往 ctx.tools 注册两个面向模型的工具:
| 工具 | 用途 |
| duckdb_query | 对本地数据文件跑一条 SQL 语句(DuckDB 引擎) |
| duckdb_schema | 查询前先看文件的列名、类型、可空性、样例行和近似行数 |
用 files 参数挂文件,每个文件按顺序成为视图 f0、f1……支持 .csv .tsv .parquet .json .jsonl .ndjson .duckdb。
为什么做它
截至 2026-10-29,DSH 插件生态(854 个公开仓库)里没有原生 DuckDB 工具。唯一相近的项目 Kaalia0912/dsh-data-analysis-mode(2★)走的是「外部 Python MCP 服务器」路线(mcp-server-duckdb==1.1.0,钉死 mcp<2,安装脚本面向 Windows)。dsh-duckdb 是零依赖 Cordis 插件,直接跑本机 duckdb 可执行文件。
展开完整文档(README 剩余 1 节)
dsh-duckdb 在 DeepSeek Harness(dsh)里用 SQL 查本地数据文件——不需要 Python、不需要外部服务、不联网。 它做什么 dsh-duckdb 是一个 Cordis 插件,往 ctx.tools 注册两个面向模型的工具: | 工具 | 用途 | | duckdb_query | 对本地数据文件跑一条 SQL 语句(DuckDB 引擎) | | duckdb_schema | 查询前先看文件的列名、类型、可空性、样例行和近似行数 | 用 files 参数挂文件,每个文件按顺序成为视图 f0、f1……支持 .csv .tsv .parquet .json .jsonl .ndjson .duckdb。 为什么做它 截至 2026-10-29,DSH 插件生态(854 个公开仓库)里没有原生 DuckDB 工具。唯一相近的项目 Kaalia0912/dsh-data-analysis-mode(2★)走的是「外部 Python MCP 服务器」路线(mcp-server-duckdb==1.1.0,钉死 mcp<2,安装脚本面向 Windows)。dsh-duckdb 是零依赖 Cordis 插件,直接跑本机 duckdb 可执行文件。 安装 dsh plugin --profile web add dsh-duckdb 或从 GitHub: dsh plugin --profile web add github:alitrack/dsh-duckdb 需要 PATH 上有 duckdb(任意较新版本)。可用 DSH_DUCKDB_BIN 环境变量指定其他可执行文件。 本地开发(不需要 pnpm) npx @deepseek-ai/dsh --patch ./local-overlay.yml "你的任务" local-overlay.yml - insert: - id: dsh-duckdb name: '/绝对路径/dsh-duckdb/index.js' 版本兼容门:dsh 会校验插件的 peerDependencies 与运行时是否匹配,不匹配就拒绝加载。本插件声明 @deepseek-ai/dsh-tools: ^0.0.1-rc.1,实测基线是 dsh 0.2.1-rc.2。如果你跑的 dsh 更新导致插件被禁用,要么把 dsh 钉到实测版本,要么用 dsh plugin allow-version 授予精确版本豁免。 安全模型 一切在本机执行,插件本身不持有任何凭据、不开任何网络连接。模型生成的 SQL 是不可信输入,因此: - 工作区禁锢:每个文件路径必须是绝对路径,且解析后落在调用会话的工作区内(exec.agent.session.header.cwd)。.. 穿越、指向外部的符号链接、根外绝对路径、目录、不存在的文件,全部按不同错误码拒绝。 - 默认只读:只接受 SELECT / WITH / VALUES / FROM / DESCRIBE / SHOW / SUMMARIZE / EXPLAIN / PRAGMA。写入必须显式 read_only: false。 - 写模式下也永久阻断:COPY、ATTACH、DETACH、INSTALL、LOAD、SET、RESET、CALL、CHECKPOINT、EXPORT、IMPORT——这些语句能摸到进程外面。一个漏过闸门的 COPY ... TO '/tmp/x.parquet' 会真的写文件(已在 duckdb v2.0.0-alpha39998 实测:内存库不能用 -readonly 打开,且该模式下 COPY 会成功)。 - 行数上限:结果按 max_rows 截断(默认 200,硬顶 1000),同时返回真实 row_count,大结果集不会灌进模型上下文。 - 一次一条语句:拒绝语句批次。CLI 对每条语句各打印一个 JSON 数组,无法归属到单一结果;而且批次会让写入顺着第一条只读语句混过去。 - 超时:每次调用上限 30 秒,超时或调用方取消(exec.signal)即杀子进程。 用法 你:看看 /workspace/sales.csv,按城市汇总金额。 Agent:[duckdb_schema target=/workspace/sales.csv] columns: city VARCHAR, amount BIGINT approx rows: 3 [duckdb_query sql="SELECT city, sum(amount) AS total FROM f0 GROUP BY city ORDER BY city" files=["/workspace/sales.csv"]] BJ | 300 HZ | 100 SH | 200 工具参数 duckdb_query | 参数 | 类型 | 说明 | | sql | string(必填) | 一条语句。挂进来的文件用 f0、f1……引用 | | files | string 数组 | 工作区内绝对路径,按顺序挂成视图 | | max_rows | integer | 行数上限,默认 200,硬顶 1000 | | read_only | boolean | 默认 true | duckdb_schema | 参数 | 类型 | 说明 | | target | string(必填) | 文件绝对路径,或已挂视图名 | | sample_rows | integer | 默认 5,硬顶 50 | 开发 node --test # 59 条单测 node tests/e2e/keyless.mjs # 10 条免 key e2e(真跑 duckdb CLI) bash tests/e2e/run_e2e.sh # 完整 headless e2e,同样不需要 API key 免 key 的 e2e harness 直接驱插件的 Cordis 契约(假 ctx + 假 exec),不需要模型和 API key。 完整 headless e2e 也不需要 key:tests/e2e/run_e2e.sh 通过 llm-pi-ai 适配器把 dsh 指向本地 OpenAI 兼容端点。要换成你自己的模型,改 tests/e2e/local-model-overlay.yml。两点注意: - 本地服务器不能走 llm-deepseek——那个适配器只说 Anthropic Messages 协议。DEEPSEEK_BASE_URL 只能挪端点,改不了协议。 - 版本兼容门不是 CLI 命令。dsh 的报错让你跑 dsh plugin allow-version,但那命令不存在,会 fallthrough 到 pnpm 然后失败。真机制是 profile 本地的 compatibility.json,把精确 name@version 映射到精确 dsh 版本。run_e2e.sh 会自动写它。 已实测的 duckdb CLI 行为 以下行为都已在 v2.0.0-alpha39998 上验证,并直接塑造了实现: - -readonly 不能用于内存库(报 Cannot launch in-memory database in read-only mode!),所以只读 enforcement 放在语句闸门里,不靠 CLI flag。 - 内存库上 COPY (SELECT 1) TO '/tmp/x.parquet' 会成功并真的写出文件。 - -json -c 对每条语句打印一个 JSON 数组,且是美化过的多行格式。 - sum() 对 BIGINT 求和返回 HUGEINT,-json 把它渲染成字符串("300");DECIMAL 同理。两者都按列类型回转成 JSON 数字;而 VARCHAR 里的数字(邮编、电话号)故意不转。 - 把 DDL 语句包进 SELECT 包装器会报 parser error,所以非查询语句原样执行。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
alitrack/dsh-duckdb
用 SQL 直接查询本地 CSV、Parquet 等数据文件
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。