browser-window/SKILL.md
Launch a live interactive browser window inside Wee Canvas via noVNC. Runs Chrome/Chromium in a virtual framebuffer (Xvfb) and streams it over a WebSocket proxy. Use when the user asks for a 'browser window', 'live browser', 'noVNC', 'remote browser', 'browser in canvas', or 'web browser subwindow'.
npx skillsauth add leprachuan/pot-o-skills browser-windowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a full interactive browser (Chrome/Chromium) inside a Wee Canvas iframe. Users can click, type, and scroll — all within the WebUI canvas panel.
Xvfb (:99) → Chrome/Chromium → x11vnc → websockify/noVNC → Wee Canvas iframe
| Component | Role | |-----------|------| | Xvfb | Virtual X11 framebuffer (headless display) | | Chrome/Chromium | Full browser running in the virtual display | | x11vnc | Bridges X11 display to VNC protocol | | websockify / noVNC | Proxies VNC over WebSocket with HTTPS for the browser | | Wee Canvas | Embeds the noVNC page in an iframe pushed to the user |
| Dependency | Install |
|------------|---------|
| Xvfb | sudo apt-get install -y xvfb |
| x11vnc | sudo apt-get install -y x11vnc |
| websockify | pip3 install websockify |
| noVNC | Clone to /opt/noVNC: git clone https://github.com/novnc/noVNC /opt/noVNC |
| Browser | google-chrome, chromium-browser, or chromium (auto-detected) |
Note: The script will attempt to install missing dependencies automatically.
# Open a URL in the browser window and push to canvas
bash /opt/pot-o-skills/browser-window/scripts/start_browser_window.sh \
--canvas-session SESSION_ID --url https://example.com
# Default URL (Google) with custom ports
bash /opt/pot-o-skills/browser-window/scripts/start_browser_window.sh \
--canvas-session SESSION_ID \
--vnc-port 5950 --novnc-port 6090 --display :50
| Argument | Required | Description |
|----------|----------|-------------|
| --canvas-session ID | Yes | Wee Canvas session to push the iframe to |
| --url URL | No | URL to open (default: https://www.google.com) |
| --display :N | No | Xvfb display number (default: :99) |
| --vnc-port PORT | No | x11vnc listen port (default: 5999) |
| --novnc-port PORT | No | noVNC WebSocket proxy port (default: 6080) |
| --stop | No | Kill all running browser-window components |
| -h, --help | No | Show usage |
| Variable | Default | Description |
|----------|---------|-------------|
| CANVAS_HOST | localhost | Hostname/IP the user's browser can reach |
| CANVAS_PORT | 8000 | Wee Orchestrator API port |
| NOVNC_PORT | 6080 | noVNC WebSocket proxy port |
| VNC_PORT | 5999 | x11vnc listen port |
| DISPLAY_NUM | 99 | Xvfb display number |
| NOVNC_DIR | /opt/noVNC | noVNC installation directory |
| RESOLUTION | 1280x900x24 | Virtual display resolution (WxHxDepth) |
| BROWSER_BIN | (auto-detect) | Browser binary path override |
| Port | Service | |------|---------| | 6080 | noVNC WebSocket proxy (user-facing) | | 5999 | x11vnc (internal VNC) |
# View logs
tail -f /tmp/browser-window.log # noVNC / startup logs
tail -f /tmp/x11vnc.log # x11vnc logs
# Stop all components
bash /opt/pot-o-skills/browser-window/scripts/start_browser_window.sh --stop
CANVAS_HOST to the host's IP/hostname accessible from the user's browser--canvas-session SESSION_ID --url URLhttps://CANVAS_HOST:CANVAS_PORT/ui/?canvas=SESSION_ID${XDG_RUNTIME_DIR:-/tmp}/browser-window-certs/data-ai
Interactive TODO board for Wee Canvas. Displays TODOs from both GitHub Issues (leprachuan/fosterbot-home) and flat files in two views: list and kanban. Features filtering, drag-and-drop status changes, quick-add, and auto-refresh every 30 seconds. Use when Foster asks to "show TODOs", "open TODO board", "view my tasks", or "TODO kanban".
tools
Web-based terminal tools for Wee Canvas: remote SSH terminal (WebSSH) and local bash terminal (ttyd). Embeds interactive terminal panels in Wee Canvas iframes. Use when the user asks for a 'web terminal', 'local terminal', 'browser SSH', 'webssh', or wants to interact with a host through the WebUI canvas. For browser windows, see the browser-window skill.
development
Use when you need to send WebEx notifications to flipkey-home-bot - supports markdown formatting, auto-retry with backoff, rate limiting, and message history tracking
tools
Production-ready TODO management with dual-source support (GitHub Issues + flat files), due dates, labels, and automatic reminders. Fully portable with environment variable configuration.