Skip to content

Instantly share code, notes, and snippets.

@rgarcia
Created January 22, 2026 00:48
Show Gist options
  • Select an option

  • Save rgarcia/853d144042cdf99b5ccd1ff457427e54 to your computer and use it in GitHub Desktop.

Select an option

Save rgarcia/853d144042cdf99b5ccd1ff457427e54 to your computer and use it in GitHub Desktop.
Debug script for Kernel browser viewport dimensions
#!/bin/bash
#
# Viewport Debug Script for Kernel Browsers
#
# This script demonstrates the difference between:
# 1. Creating a browser WITH viewport set at creation time
# 2. Creating a browser WITHOUT viewport (uses default 1920x1080)
#
# Usage: ./viewport-debug.sh
#
# Requires: kernel CLI authenticated (kernel login)
#
echo "========================================"
echo "Kernel Browser Viewport Debug"
echo "========================================"
echo ""
# Test 1: Create browser WITHOUT viewport (default 1920x1080)
echo "Test 1: Creating browser WITHOUT viewport flag (default)..."
SESSION_ID_DEFAULT=$(kernel browsers create -o json | jq -r '.session_id')
echo "Session ID: $SESSION_ID_DEFAULT"
echo "Checking actual viewport dimensions..."
kernel browsers playwright execute "$SESSION_ID_DEFAULT" 'return await page.evaluate(() => ({ innerWidth: window.innerWidth, innerHeight: window.innerHeight }))'
echo ""
# Clean up
kernel browsers delete -y "$SESSION_ID_DEFAULT" >/dev/null 2>&1
# Test 2: Create browser WITH viewport 1440x900
echo "Test 2: Creating browser WITH --viewport 1440x900@25..."
SESSION_ID_VIEWPORT=$(kernel browsers create --viewport 1440x900@25 -o json | jq -r '.session_id')
echo "Session ID: $SESSION_ID_VIEWPORT"
echo "Checking actual viewport dimensions..."
kernel browsers playwright execute "$SESSION_ID_VIEWPORT" 'return await page.evaluate(() => ({ innerWidth: window.innerWidth, innerHeight: window.innerHeight }))'
echo ""
# Clean up
kernel browsers delete -y "$SESSION_ID_VIEWPORT" >/dev/null 2>&1
echo "========================================"
echo "Summary"
echo "========================================"
echo ""
echo "The viewport MUST be set at browser creation time via:"
echo " CLI: kernel browsers create --viewport 1440x900@25"
echo " SDK: kernel.browsers.create({ viewport: { width: 1440, height: 900 } })"
echo ""
echo "Setting viewport only in Playwright/Puppeteer after connecting"
echo "does NOT resize the underlying Kernel browser window."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment