From opendesign
Starts local HTTP server on port 8289 to preview ./opendesign/index.html after OpenDesign builds. Auto-detects python/node runtimes, prevents duplicate servers, provides clickable link.
npx claudepluginhub manalkaff/opendesign --plugin opendesignThis skill uses the workspace's default tool permissions.
You are starting the OpenDesign preview server. Complete all steps below in order.
Initializes OpenDesign output folder: downloads viewer.html to ./opendesign/index.html, creates mockups/design-systems folders, generates manifest.json. Activates when ./opendesign/index.html missing.
Starts local dev server via bash script for Flask backend project: manages Python venv, GCP API keys (Gemini), dynamic ports, frontend cache-bust, Firebase auth bypass, hot CSS swaps, Playwright screenshots.
Analyzes codebase to verify compatibility with Runway's server-side public API. Checks project type, backend frameworks, existing SDK, runtime versions, and env support.
Share bugs, ideas, or general feedback.
You are starting the OpenDesign preview server. Complete all steps below in order.
Always use 8289.
Detect the platform.
Run:
uname -s 2>/dev/null
MINGW, CYGWIN, or MSYS, or if uname is not found, treat the platform as Windows.Check if a server is already running on port 8289.
POSIX:
lsof -ti tcp:8289
Windows (cmd/PowerShell):
netstat -ano | findstr LISTENING | findstr :8289
When something is bound on either platform, probe whether it is the OpenDesign server:
curl -sf -o /dev/null -w "%{http_code}" http://localhost:8289/opendesign/index.html
200, the OpenDesign server is already running. Skip to step 5.Port 8289 is in use by another process. Please free the port and try again. Then stop.
Detect available runtime. Check in this order:
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 }
Priority order (both platforms):
python3 → python → nodepython → python3 → node (Windows distributions ship as python, not python3)./opendesign/index.html manually or install Python." Then stop.Start the server in the background, serving from the project root (not from ./opendesign/).
POSIX — capture the absolute project root first:
PROJECT_ROOT=$(pwd)
Then start:
python3 -m http.server 8289 --directory "$PROJECT_ROOT" &python -m http.server 8289 --directory "$PROJECT_ROOT" &npx --yes serve -l 8289 "$PROJECT_ROOT" &Windows — cd to the project root first (the --directory flag is available on Python 3.7+ but cd is the safest cross-version approach), then start:
Start-Process python -ArgumentList '-m','http.server','8289' -WorkingDirectory (Get-Location) -WindowStyle HiddenStart-Process python3 -ArgumentList '-m','http.server','8289' -WorkingDirectory (Get-Location) -WindowStyle HiddenStart-Process npx -ArgumentList '--yes','serve','-l','8289',(Get-Location) -WindowStyle HiddenWait 1–2 seconds after starting, then confirm the port is now bound using the same check from step 2 for the detected platform. If nothing is bound after the wait, report: "Server failed to start. Try running python -m http.server 8289 manually from your project root." Then stop.
Print the clickable link to the user:
OpenDesign viewer is live: http://localhost:8289/opendesign/
Sidebar lists all mockups. Click any file to preview it in the iframe.