packages/skills/skills/playwright-automation/SKILL.md
# Playwright Browser Automation General-purpose browser automation for testing pages, filling forms, taking screenshots, and any browser task. ## Prerequisites - Node.js - Playwright (`npm run setup` in skill directory) ## Instructions ### Critical Workflow 1. **Auto-detect dev servers** (for localhost testing): ```bash node -e "require('./lib/helpers').detectDevServers().then(s => console.log(JSON.stringify(s)))" ``` 2. **Write scripts to /tmp** - Never clutter project directori
npx skillsauth add mediar-ai/skillhubz packages/skills/skills/playwright-automationInstall 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.
General-purpose browser automation for testing pages, filling forms, taking screenshots, and any browser task.
npm run setup in skill directory)Auto-detect dev servers (for localhost testing):
node -e "require('./lib/helpers').detectDevServers().then(s => console.log(JSON.stringify(s)))"
Write scripts to /tmp - Never clutter project directories
Use visible browser - headless: false by default
Parameterize URLs - Make URLs configurable
const { chromium } = require('playwright');
const TARGET_URL = 'http://localhost:3001';
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto(TARGET_URL);
console.log('Page loaded:', await page.title());
await page.screenshot({ path: '/tmp/screenshot.png', fullPage: true });
await browser.close();
})();
Test Login Flow:
await page.goto(`${TARGET_URL}/login`);
await page.fill('input[name="email"]', '[email protected]');
await page.fill('input[name="password"]', 'password123');
await page.click('button[type="submit"]');
await page.waitForURL('**/dashboard');
Responsive Design Testing:
const viewports = [
{ name: 'Desktop', width: 1920, height: 1080 },
{ name: 'Tablet', width: 768, height: 1024 },
{ name: 'Mobile', width: 375, height: 667 },
];
for (const vp of viewports) {
await page.setViewportSize({ width: vp.width, height: vp.height });
await page.screenshot({ path: `/tmp/${vp.name.toLowerCase()}.png` });
}
Check Broken Links:
const links = await page.locator('a[href^="http"]').all();
for (const link of links) {
const href = await link.getAttribute('href');
const response = await page.request.head(href);
console.log(href, response.ok() ? '✅' : '❌');
}
detectDevServers() - Find running dev serverssafeClick(page, selector) - Click with retrysafeType(page, selector, text) - Type with cleartakeScreenshot(page, name) - Timestamped screenshothandleCookieBanner(page) - Dismiss cookie popups/tmp/playwright-test-*.jsheadless: false unless explicitly requestedwaitForURL, waitForSelector instead of fixed timeoutsSource: lackeyjb/playwright-skill
tools
# X Twitter Scraper Use Xquik for X/Twitter tweet search, user lookup, profile tweets, follower export, media download, monitors, webhooks, posting workflows, and MCP-backed API exploration. ## Prerequisites - A Xquik API key in `XQUIK_API_KEY`. - Internet access to `https://xquik.com/api/v1`, `https://xquik.com/mcp`, and `https://docs.xquik.com`. - A clear user request that identifies the target tweets, users, accounts, keywords, media, monitor, webhook, or write action. ## Source Truth -
tools
Use when the user says "mk0r", "appmaker CLI", "open a VM", "run something in the sandbox", "talk to the VM agent", "spin up an E2B sandbox", or "chat with appmaker from CLI." Wraps the `mk0r` CLI to list projects, exec commands inside their E2B sandboxes, stream chat with the VM agent (same `/api/chat` the web UI uses), toggle SOAX residential IP, manage schedules, and copy files. Supports a sticky default project via `mk0r projects use`.
testing
Use when the user mentions "influencer candidates", "social media operator", "check proposals on Upwork/Fiverr", "review influencer applications", "qualify candidates", or "reach out to operators". Manages the IG/TikTok account operator hiring pipeline — review applicants, check replies, qualify, and do proactive outreach.
tools
End-to-end newsletter pipeline: investigate recent features, draft, send via API endpoint, and track delivery/open/click metrics.