run-opendesign について
run-opendesignは、プロジェクト内のデザイン案を確認するためにOpenDesignプレビューサーバーを起動するスキルです。OS、ポート、利用可能なランタイムを調べ、プレビューリンクを提示します。
主な機能
- 01OSの判定
- 02ポート8289の使用状況確認
- 03利用可能なランタイムの選択
- 04プレビューサーバーのバックグラウンド起動
- 05クリック可能なプレビューリンクの表示
活用シーン
- 01OpenDesignのデザイン案プレビューの起動
- 02稼働中のプレビューサーバーの再利用
- 03ポート競合や起動失敗の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ manalkaff/ opendesign --skill run-opendesignインストール後、Claude Code で/run-opendesignを入力して読み込まれたか確認します。
詳細
OpenDesign プレビューサーバーを起動します。以下の手順をすべて順番に実行してください。
ポート
必ず 8289 を使用してください。
手順
-
プラットフォームを検出します。
次を実行します。
uname -s 2>/dev/null- 出力が
MINGW、CYGWIN、MSYSで始まる場合、またはunameが見つからない場合は、プラットフォームを Windows として扱います。 - それ以外の場合は、POSIX(Linux/macOS/WSL)として扱います。
- 出力が
-
ポート 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 は別のプロセスによって使用されています。ポートを解放して、もう一度お試しください。 その後、停止します。
-
利用可能なランタイムを検出します。 次の順序で確認します。
POSIX:
python3 --version 2>/dev/null || python --version 2>/dev/null || node --version 2>/dev/nullWindows:
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 をインストールしてください。」と伝えます。その後、停止します。
- POSIX:
-
サーバーをバックグラウンドで起動し、プロジェクトルートから配信します(
./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を手動で実行してみてください。」と報告します。その後、停止します。 - python3:
-
クリック可能なリンクをユーザーに表示します。
OpenDesign ビューアーを利用できます:http://localhost:8289/opendesign/
サイドバーにはすべてのモックアップが表示されます。ファイルをクリックすると、iframe でプレビューできます。