Skip to content
プロジェクト

dineug/erd-editor has 1,744 GitHub stars and 160 forks. GitHot measured +1 stars in 24 hours, +4 in 7 days, and +14 in 15 days. Last checked 2026-11-09 02:18 UTC. Last push 2026-10-30.

この数値の測り方

Design database schemas as ERDs in your browser, VS Code, JetBrains IDEs or Obsidian. Import SQL, DBML and GraphQL, export DDL and code, and let coding agents edit live over MCP.

できること

  • Design — tables, columns, memos and table groups, four relationship cardinalities, ON DELETE and ON UPDATE, alternate keys, Auto Layout
  • Naming standards — logical and physical names, physical names and data types derived from word, term and domain dictionaries, which have their own tab with CSV import and export and checks
  • Import — SQL DDL, GraphQL SDL, DBML and AML, replacing the diagram or adding to it
  • Export — DDL for eight databases, code in 22 languages and ORMs, PNG and SVG

計測したスター増加

24時間
+1
7日間
+4
15日間
+14
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

README.ja.md

オリジナル

ERD Editor

データベーススキーマを視覚的に設計:ブラウザーで、IDE で、あるいはコーディングエージェントに頼んで

English | 한국어 | 中文 | 日本語

erd-editor.io を開く — ブラウザーでインストールなしにすぐ使えます。VS Code、JetBrains IDE、Obsidian、Google Drive 向けもあります。

ERD Editor

どこで作業しても、エディターはひとつ、ファイルは .erd.json ひとつ。Web、Google Drive、VS Code、JetBrains IDE、Obsidian、自分のアプリの中、そしてコーディングエージェントの手の中でも。

機能

  • 設計 — テーブル、列、メモ、テーブルグループ、4 種類のリレーションシップのカーディナリティ、ON DELETE と ON UPDATE、代替キー、自動レイアウト
  • 命名規約 — 論理名と物理名、単語・用語・ドメインの辞書から決まる物理名とデータ型、CSV のインポート・エクスポートとチェックを備えた専用の辞書タブ
  • インポート — SQL DDL、GraphQL SDL、DBML、AML。図を置き換えることも、既存の図に追加することもできます
  • エクスポート — 8 種類のデータベースの DDL、22 の言語・ORM のコード、PNG と SVG
  • ナビゲーション — コマンドパレット(Ctrl/Cmd+K)、検索と置換を備えたエクスプローラーツリー、Graph ビューと Flow ビュー
  • 履歴 — 元に戻す・やり直し、編集セッションを巻き戻すタイムトラベル、別のファイルと比べる差分ビューアー
  • 25 言語、そしてグレーとアクセントカラーを選べる System・Light・Dark テーマ
  • 共同編集 — erd-editor.io のリアルタイムセッション、そしてそばで一緒に編集するコーディングエージェント

データベース: Databricks, MariaDB, MSSQL, MySQL, Oracle, PostgreSQL, Snowflake, SQLite

コード: TypeScript, GraphQL, C#, Java, JPA, Kotlin, Scala, Go, SQLAlchemy, TypeORM, Sequelize, Drizzle, DBML, AML, Mermaid, PHP, Doctrine, Rust, SeaORM, Swift, Zod, JSON Schema

各機能の使い方は編集ガイドにあります。

コーディングエージェント

Claude Code、Codex などの MCP クライアントにスキーマの変更を頼み、キャンバス上で変わっていく様子を見てください。

coding agents

@dineug/erd-editor-mcp は、編集操作ごとにひとつのツールをエージェントに提供します。VS Code、Obsidian、JetBrains IDE がその図を持っていれば、エージェントはもう一人の共同編集者として参加し、エージェントの元に戻す操作は自身の編集だけを戻します。エディターがなければディスク上のファイルを編集し、接続をオフにしたエディターや信頼していないワークスペース・プロジェクトでは、読み取りはできても編集は拒否されます。Node.js 22.12 以降が必要です。プロジェクトフォルダーで、コマンド 1 行で追加します:

# Claude Code
claude mcp add --transport stdio erd-editor -- npx -y @dineug/erd-editor-mcp
# Codex
codex mcp add erd-editor -- npx -y @dineug/erd-editor-mcp

その他のクライアントの設定とツール一覧は README にあります。

使える場所

インストール
Web アプリ erd-editor.io オフラインでも動くインストール可能な PWA、リアルタイム共同編集
Google Drive Google Workspace Marketplace Drive の「アプリで開く」と「新規」メニュー、同じファイルに保存し直し
VS Code Marketplace .erd.json ファイルを開きます
IntelliJ JetBrains Marketplace IntelliJ 系 IDE で .erd.json ファイルを開きます
Obsidian コミュニティプラグイン 保管庫の .erd と .erd.json ファイルを開きます。デスクトップ専用
自分のアプリ npm install @dineug/erd-editor フレームワーク不要の <erd-editor> カスタム要素と読み取り専用の <erd-viewer>
コーディングエージェント @dineug/erd-editor-mcp Claude Code、Codex などの MCP クライアント向けサーバー

IDE では、拡張子 .erd.json の空ファイルを作って開きます。Obsidian では ERD Editor: Create new diagram を実行し、Google Drive では 新規 → その他 → ERD Editor を選びます。

リアルタイム共同編集

ERD Editor はすべての編集をアクションのストリームとしてやり取りします。そのため、ブラウザーのタブや分割したエディターなど、ひとつの図を複数の場所で開いても同期し、コーディングエージェントももう一人の共同編集者として参加できます。

erd-editor.io では、サイドバーにある共同編集ボタンから セッションを開始 を選んでリンクを共有すると、リンクを開いた全員が一緒に編集できます。リンクが唯一の鍵なので、編集を任せてよい相手にだけ共有してください。セッションはホストのブラウザーにあり、ホストが最後のタブを閉じると終わるので、図が必要なゲストは先にエクスポートしておきます。

ピアは WebRTC で接続し、図とすべての編集は AES-GCM で暗号化されます。シグナリングリレーは平文を見ることがなく、ルームの鍵は、ブラウザーがどのリクエストにも含めない URL フラグメントにあります。

アーキテクチャ
flowchart TB
    subgraph clientA["Client A"]
        bcA["Broadcast Channel"]
        tabA1["Tab (leader)"]
        tabA2["Tab"]
        swA["Shared Worker"]
        idbA[("IndexedDB")]

        bcA <--> tabA1
        bcA <--> tabA2
        tabA1 <--> swA
        tabA2 <--> swA
        swA <--> idbA
    end

    subgraph clientB["Client B (guest)"]
        tabB1["Tab"]
    end

    relay["Signaling Relay (nostr / mqtt)"]

    tabA1 <-->|"WebRTC (AES-GCM)"| tabB1
    tabA1 -. "signaling" .-> relay
    tabB1 -. "signaling" .-> relay

組み込み

npm install @dineug/erd-editor
import '@dineug/erd-editor/erd-editor.js';

const editor = document.createElement('erd-editor');
// エディターはコンテナーいっぱいに広がり、カスタム要素は既定で inline です
Object.assign(editor.style, { display: 'block', width: '100%', height: '100vh' });
document.body.appendChild(editor);

編集せずに図を表示するだけなら、@dineug/erd-editor/erd-viewer.js をインポートして <erd-viewer src="diagram.erd.json" style="display: block; height: 480px"></erd-viewer> を置きます。スタイルで決めた枠の中で、図のパン、ズーム、検索ができます。パッケージのルートをインポートするだけでは、どちらの要素も定義されません。

スクリプトを読み込めないページ(Wiki やサイトビルダーなど)では、代わりにホストされたビューアーを iframe で埋め込めます。

<iframe src="https://erd-editor.io/embed?src=https%3A%2F%2Fgithub.com%2Fdineug%2Ferd-editor%2Fblob%2Fmain%2Fdata%2Fembed-small.erd.json" width="100%" height="480" style="border: 0" loading="lazy" title="ERD Editor"></iframe>

この 1 行は、このリポジトリの data/embed-small.erd.json を表示します。erd-editor.io/embed のビルダーが、ファイルの URL とビューアーのオプションからこの行を作ります。GitHub 上のファイルや gist は、ここでのようにそのページに表示されるアドレスをそのまま渡せます。ホストされたビューアーはそれを GitHub の raw ホストから取得するため、公開リポジトリと公開 gist でのみ動作します。各ファイルは 5 分間キャッシュされます。gist では最初のファイルを表示します。ほかのサーバーに置いたファイルは、そのサーバーが erd-editor.io からのクロスオリジンリクエスト(CORS)を許可する必要があります。

どちらの要素も、どのフレームワークからでも、フレームワークなしでも使えます。属性と要素の API は packages/erd-editor を参照してください。

ドキュメント

パッケージ

pnpm ワークスペースです。@dineug/erd-editor、@dineug/erd-editor-mcp、@dineug/erd-editor-yjs は npm に公開され、3 つのプラグインはそれぞれのストアで配布され、app は erd-editor.io で、残りはそれらのビルドが取り込む非公開のライブラリーです。

全 21 パッケージ
フォルダー npm 名 説明
erd-editor @dineug/erd-editor エディターのコア: <erd-editor> カスタム要素、読み取り専用の <erd-viewer>、ヘッドレスの engine.js、peer.js エントリー
erd-editor-yjs @dineug/erd-editor-yjs 公開中の Yjs バインディング。<erd-editor> やヘッドレスの peer store を Y.Doc を通じて同期させる
erd-editor-schema @dineug/erd-editor-schema v2/v3 ドキュメントスキーマ、パース、シリアライザー、クエリ、LWW 演算子
schema-sql-parser @dineug/schema-sql-parser SQL インポートに使う寛容な DDL パーサー
uuid @dineug/uuid UUIDv7 と Uuid25 エンコーディング。エディターが発行する id
r-html @dineug/r-html エディターの基盤となるタグ付きテンプレートのレンダリングフレームワークとストア
vite-plugin-r-html @dineug/vite-plugin-r-html JSX → タグ付きテンプレート、および HMR 境界
r-html-konva @dineug/r-html-konva エディターのキャンバスが描画に使う、r-html テンプレートの Konva ホスト
grid @dineug/grid 表示中のセルだけを描く、r-html-konva 上の Konva キャンバスのスプレッドシートグリッド
app @dineug/erd-editor-app erd-editor.io の React PWA。/gdrive の Google Drive エディターを含み、その OAuth リレーは functions/ の Pages Function
vscode-extension vuerd-vscode 公開中の VS Code 拡張機能と、コーディングエージェントハブの拡張機能側
vscode-webview @dineug/erd-editor-vscode-webview VS Code の Webview 内のバンドル
webview-client @dineug/erd-editor-webview-client IDE の Webview に組み込んだエディター。ホストプロトコル配線済みで、両 IDE バンドルが共有
webview-bridge @dineug/erd-editor-webview-bridge 型付きのホスト ↔ Webview コマンドプロトコル
replication-store-worker @dineug/erd-editor-replication-store-worker Worker 内のヘッドレスなドキュメントレプリカ。IDE の Webview と Obsidian プラグインが保存する内容をシリアライズ
intellij-webview @dineug/erd-editor-intellij-webview IntelliJ プラグインのエディターパネル内のバンドル
intellij-plugin @dineug/erd-editor-intellij-plugin 公開中の IntelliJ プラグイン。Kotlin と Gradle 製で、コーディングエージェント用の Kotlin ハブを持つ
obsidian-plugin @dineug/erd-editor-obsidian-plugin Obsidian プラグイン。erd-editor-obsidian-plugin からリリース
agent-hub @dineug/erd-editor-agent-hub エディターのウィンドウとコーディングエージェントの MCP サーバーの間のプロトコル: メッセージ、ロックファイル、フレーミング
agent-hub-host @dineug/erd-editor-agent-hub-host そのプロトコルのエディターウィンドウ側。VS Code 拡張機能と Obsidian プラグインが共有し、IntelliJ プラグインは Kotlin に移植
mcp-server @dineug/erd-editor-mcp 公開中の MCP サーバー。VS Code、Obsidian、JetBrains IDE ではライブに、それ以外ではファイルに対してヘッドレスで動作

開発

Node 22.22.1+、24.11+ または 26+(.nvmrc は 22.23.2 を固定)、pnpm 10.34.3、Git 2.32+ が必要で、IntelliJ プラグインには JDK 17+ も必要です。

pnpm install
pnpm --filter @dineug/erd-editor exec playwright install --with-deps chromium # pnpm test 用
pnpm --filter @dineug/erd-editor-app dev # Web アプリ
pnpm check # フォーマット、リント
pnpm test  # 全パッケージの型チェックとスペック
pnpm build

IntelliJ プラグインは packages/intellij-plugin で Gradle を使ってビルドし、e2e スイートは pnpm test とは別に実行します。変更ごとに実行するチェック、カバレッジ、e2e スイート、コミットのルールは AGENTS.md にあります。

コントリビューション

Issue とプルリクエストを歓迎します。コミットメッセージは Conventional Commits に従います。

ライセンス

MIT © SeungHwan-Lee

関連プロジェクトを探す