← ClaudeAtlas

bridge-eyeslisted

Use when frontend work in this repo needs to be looked at rather than asserted — after changing anything under bridge/dashboard/web, bridge/miniapp/web or site/, or when the user says "screenshot it", "does it look right", "show me the dashboard", or asks you to verify a UI change. Covers headless capture in WSL and driving the live UIs over CDP.
ainurdev/mystical-assistant · ★ 6 · AI & Automation · score 81
Install: claude install-skill ainurdev/mystical-assistant
# Looking at the UIs headlessly There is no display here. Every visual claim has to come from a captured pixel, and the obvious way to capture one hangs forever on this project's own UIs. ## Which port is which | Port | Surface | Notes | |------|---------|-------| | 8790 | Dashboard | Desktop. `?skipboot=1` bypasses the 4.25s boot intro. | | 8787 | Mini App | 390px wide. `/api/*` needs Telegram init-data. | | 8791 | Landing page | Static. | `DASH_TOKEN` is empty in this machine's `.env`, so local GETs need no auth. If it is set, append `?token=…`. ## Static pages: use the bridge's own helper ```python from bridge import screenshot open("/tmp/shot.png", "wb").write(screenshot.capture("http://127.0.0.1:8791/", 1280, 800)) ``` `bridge/screenshot.py` already owns the WSL specifics — it finds the newest chrome-headless-shell under `~/.cache/ms-playwright/` (the build number changes on every Playwright update, so never hardcode the path) and puts the cached `libasound.so.2` stub on `LD_LIBRARY_PATH`. Don't hand-roll chrome flags. Then `Read` the PNG to actually look at it. ## Live app pages: `capture()` will hang — use CDP Chrome's `--screenshot` mode waits for the page to finish loading. The dashboard and Mini App hold SSE streams open forever, so it never fires: no image, no error, no timeout worth waiting for. Measured on the live dashboard — still nothing at 75s, while the landing page returns in 0.8s. Use the bundled CDP script instead, which navigates, waits a fixe