caioricciuti/duck-ui
The fully open-source DuckDB workbench that runs in your browser. SQL editor, notebooks, charts, AI assistant. No install, no signup, no backend — your data never leaves the tab.
Duck‑UI – 用于 DuckDB 的浏览器端工作台
是什么 – Duck‑UI 是一个开源的、完全在客户端运行的 DuckDB 分析数据库 UI。它在浏览器(或小型 Docker 容器)中运行,从不将您的数据发送到服务器。该 UI 集成了代码编辑器、笔记本支持、结果网格、图表功能,以及一个可选的 AI 助手,可将自然语言问题转换为 SQL。
核心功能
- SQL 编辑器:基于 Monaco 的自动补全、格式化、多标签工作区和查询历史。
- 笔记本界面:混合 SQL 单元格、Markdown 和每单元格的可视化。
- 数据导入:通过拖放、URL 或云存储(S3、GCS、Azure、R2、MinIO)从 CSV、JSON、Parquet、Arrow、XLSX 和原生
.duckdb文件导入数据。 - 结果网格:虚拟滚动、排序、过滤、单元格检查,以及导出为 CSV/JSON/XLSX/Parquet。
- 图表 – 16 种内置类型,可按系列配置,可导出为 PNG 或 SVG。
- AI「Duck Brain」 – 文本转 SQL 和一键错误修复。支持:
- WebLLM(纯 WASM,离线,无需 API 密钥)
- OpenAI、Anthropic、Chrome 内置 AI,或任何 OpenAI 兼容端点(Ollama、DeepSeek 等)。 仅发送模式(从不发送数据)给提供方,使用 WebLLM 时数据完全不出浏览器。
- 共享与嵌入 – 完整分析(查询、笔记本、图表配置)可编码为 URL 或通过
<duck-embed>Web 组件嵌入;无需后端。 - 持久化 – 基于 OPFS 的本地数据库在重新加载后仍保留;凭据以 AES‑256‑GCM 加密方式存储在浏览器中。
- 外部连接 – 可连接到远程 DuckDB HTTP 服务器实例或 DuckLake 目录。
- 任意部署 – 静态网站、Docker 镜像、GitHub Pages、离线终端等。
为何存在 – 官方 DuckDB UI 是闭源的,需要本地 DuckDB 进程,无法离线运行或自托管。Duck‑UI 提供了一个完全开源、可嵌入、支持离线的替代方案,并支持可插拔的 AI 后端。
快速开始
# 运行官方 Docker 镜像
docker run -p 5522:5522 ghcr.io/caioricciuti/duck-ui:latest
# 然后在浏览器中打开 http://localhost:5522
或克隆仓库并本地开发:
git clone https://github.com/caioricciuti/duck-ui.git
cd duck-ui
bun install # npm 也可使用
bun run dev # http://localhost:5173
在线演示可在 demo.duckui.com 获取。
典型使用场景
- 无需安装任何东西,对 CSV/Parquet 数据集进行探索性数据分析。
- 在 GitHub Pages 或内部终端上发布只读数据仪表板。
- 在 AI 协助下快速原型化 SQL 查询。
- 将交互式 SQL 探索器嵌入文档或 Web 应用中。
许可证与社区 – MIT 许可证,源码完全开放。欢迎通过标准 GitHub 工作流贡献代码;详见 CONTRIBUTING.md 指南。
所有细节均直接取自仓库的 README。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目