Interactive Inc.のEmDashプラグイン集@interactive-inc/emdash-pluginsのモノレポです。
EmDash本体は変更せず、ネイティブプラグインとして組み込みます。現在のプラグインは、チャットからjson-renderのページを作るbuilderです。
packages/emdash-plugins/ 配布パッケージ。プラグインごとにsrc/<name>/を持つ
apps/web/ プラグインを利用するAstro + EmDashのサンプル
scripts/ 別プロジェクトへの導入検証・デプロイ
.docs/ 設計判断・デプロイ手順
開発には.node-versionで指定したNode.js 24.22.1とVite+(vp)、Portlessを使います。リポジトリのルートで実行します。
vp install
vp run setup:local
vp run seed
portless- サイト: https://emdash-plugins.localhost/
- 管理画面: https://emdash-plugins.localhost/_emdash/admin
- MCP: https://emdash-plugins.localhost/_emdash/api/mcp
portlessはportless.jsonの設定でサンプルを起動します。起動時にプラグインもビルドします。vp run devはプロキシを使わない直接起動です。
停止はvp run dev:stop、状態確認はvp run dev:statusです。
プラグインのTypeScriptを変更した場合は、停止してportlessで再起動してください。
依存パッケージ・Astro設定・環境変数を変更するときも、先にこのアプリを完全に停止し、変更後に起動し直してください。EmDash 1.3.1は内部再起動後に古いランタイムを保持する場合があり、保存時にVite module runner has been closedが発生します。この場合はブラウザーの更新だけでは復旧せず、アプリのプロセス再起動が必要です。
ローカルDB・メディア・署名キーはapps/web/.data/とapps/web/.envに保存します。
サンプルの操作・MCP接続手順 · プラグインの導入方法と公開API
vp run test # 普段の検査。ビルド・サーバー不要、EmDash通信はモック
vp run test -- tests/builder/document.test.ts # 変更に関係するテストだけを指定(複数可)
vp run verify # パッケージの型検査 + 普段のテスト
vp run test:integration # 実EmDashの署名・設定、ハイドレーション、サンプルの検証
vp run release # 全型検査・全テスト・Node/Cloudflareビルド・配布物の導入検査普段のテストはソースを直接読み、DB・ネットワーク・開発サーバーを使いません。EmDashとの境界だけをモックし、JSON検証・データ解決・描画・権限判断は実装そのものを検査します。test:integrationはプラグインをビルドするため、起動中のサンプルを先にvp run dev:stopで止めてください。終了後はportlessで起動し直します。
PRとmainへのpushでは軽い型検査と普段のテストだけをCIで実行します。重い検査はRelease checksの手動実行またはv*タグへのpushで実行します。公開・デプロイは行いません。リリース前はその対象コミットでreleaseを通してください。検査の分担と限界も参照してください。
vp run test:allで普段のテストと結合テストをまとめて実行できます。既存のcheck(全型検査)、build(Node用ビルド)、build:cloudflare、test:packageは必要なときに個別実行できます。
test:packageは一時フォルダー内だけで導入用の圧縮ファイルと独立したEmDashホストを作成します。リポジトリに配布ファイルは残しません。インターネットから依存を取得する場合があります。
ルートは開発用のprivateワークスペースで、配布対象はpackages/emdash-pluginsだけです。
プラグインはMITライセンスで、publishConfig.access: publicを設定しています。パッケージ名は@interactive-inc/emdash-pluginsです。npmへの公開はpackages/emdash-pluginsでvp pm publishを実行する別の操作です。
.env、DB、セッション、サンプルのコンテンツは配布ファイルに含めません。
vp run smokeは起動中のローカルサンプルに対する追加の検査です。MCPクライアントの登録なしで、実際のMCPへ接続してツール一覧・作成・公開・プレビューを確認します。Portless以外で直接起動した場合はSMOKE_ORIGIN=http://127.0.0.1:4331 vp run smokeを使います。
vp run build
HOST=127.0.0.1 PORT=4332 vp run startローカルはNode.js + SQLite、本番はCloudflare Workers + D1 + R2 + KVです。Cloudflare設定には各自のリソースを指定します。
vp run deploy:production先にCloudflareの設定手順に従い、Git管理外のapps/web/wrangler.production.jsoncを用意してください。このコマンドはその設定でCloudflare用にビルドし、生成された設定でWorkerへ反映します。既存の本番DBをseedで上書きしません。Node用のビルドとは出力先を分けています。
ローカルの開発アプリは停止してから実行し、完了後にportlessで起動し直してください。
本番のorigin・秘密情報・永続化についてはサンプルの説明を参照してください。
MIT License。詳細はLICENSEを参照してください。