mcpField
R
run-opendesign

run-opendesign

github.com/manalkaffデザイン・UI26487 回インストール18 週間前に更新
リポジトリ

run-opendesign について

run-opendesignは、プロジェクト内のデザイン案を確認するためにOpenDesignプレビューサーバーを起動するスキルです。OS、ポート、利用可能なランタイムを調べ、プレビューリンクを提示します。

主な機能

  1. 01OSの判定
  2. 02ポート8289の使用状況確認
  3. 03利用可能なランタイムの選択
  4. 04プレビューサーバーのバックグラウンド起動
  5. 05クリック可能なプレビューリンクの表示

活用シーン

  1. 01OpenDesignのデザイン案プレビューの起動
  2. 02稼働中のプレビューサーバーの再利用
  3. 03ポート競合や起動失敗の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/manalkaff/opendesign --skill run-opendesign

インストール後、Claude Code で/run-opendesignを入力して読み込まれたか確認します。

詳細

OpenDesign プレビューサーバーを起動します。以下の手順をすべて順番に実行してください。

ポート

必ず 8289 を使用してください。

手順

  1. プラットフォームを検出します。

    次を実行します。

    uname -s 2>/dev/null
    
    • 出力が MINGW、CYGWIN、MSYS で始まる場合、または uname が見つからない場合は、プラットフォームを Windows として扱います。
    • それ以外の場合は、POSIX(Linux/macOS/WSL)として扱います。
  2. ポート 8289 ですでにサーバーが実行中か確認します。

    POSIX:

    lsof -ti tcp:8289
    
    • 出力がない場合、何もバインドされていません。手順 3 に進みます。
    • PID が返された場合、何かが :8289 にバインドされています。

    Windows(cmd/PowerShell):

    netstat -ano | findstr LISTENING | findstr :8289
    
    • 出力がない場合、何もバインドされていません。手順 3 に進みます。
    • 出力が返された場合、何かが :8289 にバインドされています。

    いずれかのプラットフォームで何かがバインドされている場合、OpenDesign サーバーかどうかを確認します。

    curl -sf -o /dev/null -w "%{http_code}" http://localhost:8289/opendesign/index.html
    
    • ステータスコードが 200 の場合、OpenDesign サーバーはすでに実行中です。手順 5 に進みます。
    • それ以外の場合は、ユーザーに次のように伝えます。

      ポート 8289 は別のプロセスによって使用されています。ポートを解放して、もう一度お試しください。 その後、停止します。

  3. 利用可能なランタイムを検出します。 次の順序で確認します。

    POSIX:

    python3 --version 2>/dev/null || python --version 2>/dev/null || node --version 2>/dev/null
    

    Windows:

    python --version 2>$null; if ($LASTEXITCODE -ne 0) { python3 --version 2>$null }; if ($LASTEXITCODE -ne 0) { node --version 2>$null }
    

    優先順位(両プラットフォーム):

    • POSIX: python3 → python → node
    • Windows: python → python3 → node(Windows のディストリビューションでは python3 ではなく python として提供されます)
    • いずれも見つからない場合は、ユーザーに「プレビューサーバーを起動できませんでした。python、python3、node のいずれも利用できません。./opendesign/index.html を手動で開くか、Python をインストールしてください。」と伝えます。その後、停止します。
  4. サーバーをバックグラウンドで起動し、プロジェクトルートから配信します(./opendesign/ からではありません)。

    POSIX — まずプロジェクトルートの絶対パスを取得します。

    PROJECT_ROOT=$(pwd)
    

    次に起動します。

    • python3:python3 -m http.server 8289 --directory "$PROJECT_ROOT" &
    • python: python -m http.server 8289 --directory "$PROJECT_ROOT" &
    • node: npx --yes serve -l 8289 "$PROJECT_ROOT" &

    Windows — まずプロジェクトルートに cd します(--directory フラグは Python 3.7 以降で利用できますが、バージョンを問わず確実な方法は cd です)。その後、起動します。

    • python: Start-Process python -ArgumentList '-m','http.server','8289' -WorkingDirectory (Get-Location) -WindowStyle Hidden
    • python3:Start-Process python3 -ArgumentList '-m','http.server','8289' -WorkingDirectory (Get-Location) -WindowStyle Hidden
    • node: Start-Process npx -ArgumentList '--yes','serve','-l','8289',(Get-Location) -WindowStyle Hidden

    起動後 1~2 秒待ってから、手順 2 と同じ方法で、検出したプラットフォームのポートがバインドされたことを確認します。待機後も何もバインドされていない場合は、「サーバーの起動に失敗しました。プロジェクトルートから python -m http.server 8289 を手動で実行してみてください。」と報告します。その後、停止します。

  5. クリック可能なリンクをユーザーに表示します。

    OpenDesign ビューアーを利用できます:http://localhost:8289/opendesign/

    サイドバーにはすべてのモックアップが表示されます。ファイルをクリックすると、iframe でプレビューできます。

コメント