Full browser control for authenticated web interactions using Playwright scripts
Automates authenticated web interactions using a pre-configured Chrome profile. Use when you need to access password-protected travel sites, check real-time availability, or scrape dynamic content that requires logins.
/plugin marketplace add krishagel/geoffrey/plugin install geoffrey@geoffreyThis skill is limited to using the following tools:
bun.lockpackage.jsonscripts/capture.jsscripts/extract.jsscripts/interact.jsscripts/launch-chrome.shscripts/navigate.jsscripts/screenshot-current.jsscripts/screenshot.jsscripts/search.jsFull browser automation for travel research requiring authentication or complex interactions.
Use this skill when you need to:
Script-based approach - No MCP overhead. Scripts load only when needed.
Geoffrey Chrome Profile must be running with remote debugging:
./scripts/launch-chrome.sh
Profile must have logins saved for:
All scripts are in ./scripts/ and use Playwright connecting via CDP.
| Script | Purpose | Usage |
|---|---|---|
launch-chrome.sh | Start Geoffrey Chrome profile | ./scripts/launch-chrome.sh |
navigate.js | Navigate to URL and get page content | bun scripts/navigate.js <url> |
screenshot.js | Take screenshot of page | bun scripts/screenshot.js <url> [output] [--full] |
extract.js | Extract text/data from page | bun scripts/extract.js <url> <selector> [--all] |
interact.js | Click, type, select on page | bun scripts/interact.js <url> <action> <selector> [value] |
search.js | Search travel sites | bun scripts/search.js <site> <query> |
# Navigate to Marriott search
bun scripts/navigate.js "https://www.marriott.com/search/default.mi"
# Or use the search script
bun scripts/search.js marriott "Westin Rusutsu February 2026"
bun scripts/extract.js "https://www.flyertalk.com/forum/thread-url" ".post-content"
bun scripts/screenshot.js "https://www.marriott.com/hotels/travel/ctswi-the-westin-rusutsu-resort/" rusutsu.png
Auto-Resize Protection (ALL screenshots):
safeToRead: trueLazy-Loading Limitation (AirBnB, dynamic sites):
screenshot-current.js# For lazy-loading sites, screenshot current viewport
bun scripts/screenshot-current.js /tmp/output.png
# Or navigate + viewport screenshot
bun scripts/screenshot.js "https://airbnb.com/..." /tmp/output.png
Example output:
{
"success": true,
"url": "https://example.com",
"title": "Example Page",
"screenshot": "/tmp/screenshot.png",
"dimensions": { "width": 1920, "height": 1080 },
"originalDimensions": { "width": 1920, "height": 1080 },
"scaled": false,
"safeToRead": true,
"timestamp": "2025-11-28T..."
}
Scripts connect to Chrome via Chrome DevTools Protocol (CDP):
http://127.0.0.1:9222~/.chrome-geoffreyIf scripts fail to connect:
./scripts/launch-chrome.shlsof -i :9222pkill -f "remote-debugging-port"All scripts return JSON:
{
"success": true,
"url": "https://example.com",
"title": "Page Title",
"content": "Extracted content or action result",
"timestamp": "2025-11-22T..."
}
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.