Install
$ agentstack add skill-omnigentx-jarvis-playwright-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Playwright Browser Automation
Write custom Playwright scripts, execute via universal executor. Scripts go to /tmp (works on macOS/Linux/Docker — all Jarvis target environments). Never write to skill or project directory.
Setup (First Time Only)
cd $SKILL_DIR && npm run setup
Critical Workflow
- Detect dev servers (for localhost testing):
``bash cd $SKILL_DIR && node -e "require('./lib/helpers').detectDevServers().then(s => console.log(JSON.stringify(s)))" ``
- 1 server → use it automatically
- Multiple → ask user which one
- None → ask for URL or help start server
- Write script to /tmp — NEVER to skill directory or project:
``javascript // /tmp/playwright-test-xxx.js const { chromium } = require('playwright'); const TARGET_URL = 'http://localhost:3001'; // Auto-detected (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(); })(); ``
- Execute from skill directory:
``bash cd $SKILL_DIR && node run.js /tmp/playwright-test-xxx.js ``
Defaults
| Setting | Default | Override | |---------|---------|----------| | Browser | Chromium | headless: false by default | | Viewport | 1280×720 | page.setViewportSize(...) | | Scripts | /tmp/playwright-test-*.js | Never write to project dir | | URLs | Auto-detected via detectDevServers() | TARGET_URL constant at top |
Anti-Patterns (from browser-automation best practices)
| ❌ Don't | ✅ Do | |----------|-------| | waitForTimeout(5000) | waitForSelector('.element') or waitForURL(...) | | page.locator('.btn-primary') | page.getByRole('button', { name: 'Submit' }) | | Single browser context for all tests | Fresh context per test | | CSS/XPath first | User-facing locators: text=, role=, data-testid= |
Available Helpers (lib/helpers.js)
const helpers = require('./lib/helpers');
await helpers.detectDevServers(); // Find running servers
await helpers.safeClick(page, 'button', { retries: 3 });
await helpers.safeType(page, '#input', 'text');
await helpers.takeScreenshot(page, 'name');
await helpers.handleCookieBanner(page);
await helpers.extractTableData(page, 'table');
const ctx = await helpers.createContext(browser); // With env headers
Inline Execution (Quick Tasks)
cd $SKILL_DIR && node run.js "
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto('http://localhost:3001');
await page.screenshot({ path: '/tmp/quick.png', fullPage: true });
await browser.close();
"
Use inline for one-off tasks. Use files for complex/reusable tests.
Custom HTTP Headers
PW_HEADER_NAME=X-Automated-By PW_HEADER_VALUE=playwright-skill \
cd $SKILL_DIR && node run.js /tmp/script.js
Reference Files
- [APIREFERENCE.md](APIREFERENCE.md) — Full Playwright API: selectors, network interception, auth, visual testing, mobile emulation, POM pattern, CI/CD integration
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: omnigentx
- Source: omnigentx/jarvis
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.