Files
gh-krishagel-geoffrey/skills/browser-control/SKILL.md
2025-11-30 08:35:59 +08:00

124 lines
3.4 KiB
Markdown

---
name: browser-control
description: Full browser control for authenticated web interactions using Playwright scripts
triggers:
- "check availability"
- "search for"
- "log into"
- "browse to"
- "look up prices"
- "check points"
- "find deals"
- "scrape"
- "get current price"
- "check hotel"
- "check flight"
allowed-tools: Bash, Read
version: 0.1.0
---
# Browser Control Skill
Full browser automation for travel research requiring authentication or complex interactions.
## When to Activate
Use this skill when you need to:
- Access authenticated pages (Marriott, Alaska Airlines accounts)
- Check real-time availability and prices
- Scrape forum threads (FlyerTalk, Reddit)
- Interact with JavaScript-heavy travel sites
- Fill forms or perform searches on websites
## Architecture
**Script-based approach** - No MCP overhead. Scripts load only when needed.
### Prerequisites
1. **Geoffrey Chrome Profile** must be running with remote debugging:
```bash
./scripts/launch-chrome.sh
```
2. **Profile must have logins saved** for:
- Marriott Bonvoy
- Alaska Airlines Mileage Plan
- FlyerTalk
- TripAdvisor
- Reddit
## Available Scripts
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>` |
## Usage Examples
### Check Marriott Points Availability
```bash
# 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"
```
### Get FlyerTalk Thread Content
```bash
bun scripts/extract.js "https://www.flyertalk.com/forum/thread-url" ".post-content"
```
### Screenshot Hotel Page
```bash
bun scripts/screenshot.js "https://www.marriott.com/hotels/travel/ctswi-the-westin-rusutsu-resort/" rusutsu.png
```
## Connection Details
Scripts connect to Chrome via Chrome DevTools Protocol (CDP):
- **URL**: `http://127.0.0.1:9222`
- **Profile**: `~/.chrome-geoffrey`
## Error Handling
If scripts fail to connect:
1. Ensure Chrome is running with `./scripts/launch-chrome.sh`
2. Check port 9222 is not in use: `lsof -i :9222`
3. Kill existing Chrome debugger: `pkill -f "remote-debugging-port"`
## Output Format
All scripts return JSON:
```json
{
"success": true,
"url": "https://example.com",
"title": "Page Title",
"content": "Extracted content or action result",
"timestamp": "2025-11-22T..."
}
```
## Limitations
- Requires Geoffrey Chrome profile to be running
- Cannot bypass CAPTCHAs (uses real browser fingerprint to avoid most)
- Heavy sites may be slow
- Some sites block automation despite real browser
## Future Enhancements
- Add cookie/session export for headless runs
- 1Password CLI integration for credential rotation
- Parallel page operations
- Browser-Use (Python) for complex visual tasks