Initial commit
This commit is contained in:
123
skills/browser-control/SKILL.md
Normal file
123
skills/browser-control/SKILL.md
Normal file
@@ -0,0 +1,123 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user