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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/opendesign:run-opendesignThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are starting the OpenDesign preview server. Complete all steps below in order.
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.
npx claudepluginhub manalkaff/opendesign --plugin opendesignInitializes 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 a local development server with Flask backend and MCP server, including port selection, cache-busting, auth bypass, and CSS hot-swapping.
Turns a finished or buildable web app into a macOS Dock-launchable .app that serves the built output with no dev server. Detects build command and output directory, builds once, serves via tiny static server or file://.