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にはコードエディタ、ノートブックサポート、結果グリッド、チャート機能、および自然言語をSQLに変換できるオプションのAIアシスタントが統合されています。
主な機能
- SQLエディタ:Monacoベースの自動補完、フォーマット、マルチタブワークスペース、クエリ履歴。
- ノートブックインターフェース:SQLセル、Markdown、セルごとの可視化を混合。
- データインポート:CSV、JSON、Parquet、Arrow、XLSX、およびネイティブの
.duckdbファイルをドラッグアンドドロップ、URL、またはクラウドストレージ(S3、GCS、Azure、R2、MinIO)からインポート。 - 結果グリッド:仮想スクロール、ソート、フィルタリング、セルの詳細確認、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>ウェブコンポーネントで埋め込むことで共有可能。バックエンドは不要。 - 永続化 – 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エクスプローラーを埋め込む。
ライセンスとコミュニティ – MITライセンス、ソースは完全にオープン。GitHubの通常のワークフローで貢献を歓迎。ガイドラインは CONTRIBUTING.md を参照。
すべての詳細はリポジトリのREADMEから直接取得。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト