playwright-interactive
Persistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
Skill by z91772524-ai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/z91772524-ai-playwright-interactive
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
playwright-interactive- Description
- Persistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
- License
- MIT
- Instructions
- 690 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- body: 690 lines (spec recommends under 500)
Files (6)
- LICENSE.txt
- NOTICE.txt
- SKILL.md
- openai.yaml · agents/
- playwright-small.svg · assets/
- playwright.png · assets/
SKILL.md (first lines)
# Playwright Interactive Skill
Use a persistent `js_repl` Playwright session to debug local web or Electron apps, keep the same handles alive across iterations, and run functional plus visual QA without restarting the whole toolchain unless the process ownership changed.
## Preconditions
- `js_repl` must be enabled for this skill.
- If `js_repl` is missing, enable it in `~/.codex/config.toml`:
```toml
[features]
js_repl = true
```
- You can also start a new session with `--enable js_repl` (equivalent to `-c features.js_repl=true`).
- After enabling `js_repl`, start a new Codex session so the tool list refreshes.
- For now, run this workflow with sandboxing disabled: start Codex with `--sandbox danger-full-access` (or the equivalent config for `sandbox_mode=danger-full-access`). This is a temporary requirement while `js_repl` + Playwright support inside the sandbox is still being completed.
- Run setup from the same project directory you need to debug.
- Treat `js_repl_reset` as a recovery tool, not routine cleanup. Resetting the kernel destroys your Playwright handles.
## One-time setup
```bash
test -f package.json || npm init -y
npm install playwright
# Web-only, for headed Chromium or mobile emulation:
# npx playwright install chromium
# Electron-only, and only if the target workspace is the app itself:
# npm install --save-dev electron
node -e "import('playwright').then(() => console.log('playwright import ok')).catch((error) => { console.error(error); process.exit(1); })"
```
If you switch to a different workspace later, repeat setup there.
## Core Workflow
1. Write a brief QA inventory before testing:
- Build the inventory from three sources: the user's requested requirements, the user-visible features or behaviors you actually implemented, and the claims you expect to make in the final response.
- Anything that appears in any of those three sources must map to at least one QA check before signoff.
- List the user-visible claims you intend to sign off on.
- List every meaningful user-facing control, mode switch, or implemented interactive behavior.
- List the state changes or view changes each control or implemented behavior can cause.
- Use this as the shared coverage list for both functional QA and visual QA.
- For each claim or control-state pair, note the intended functional check, the specific state where the visual check must happen, and the evidence you expect to capture.
- If a requirement is visually central but subjective, convert it into an observable QA check instead of leaving it implicit.
- Add at least 2 exploratory or off-happy-path scenarios that could expose fragile behavior.
2. Run the bootstrap cell once.
3. Start or confirm any required dev server in a persistent TTY session.
4. Launch the correct runtime and keep reusing the same Playwright handles.
5. After each code change, reload for renderer-only changes or relaunch for main-process/startup changes.
6. Run functional QA with normal user input.
7. Run a separate visual QA pass.
8. Verify viewport fit and capture the screenshots needed to support your claims.
9. Clean up the Playwright session only when the task is actually finished.
## Bootstrap (Run Once)
```javascript
var chromium;
var electronLauncher;
var browser;
var context;
var page;
var mobileContext;
var mobilePage;
var electronApp;
var appWindow;
try {
({ chromium, _electron: electronLauncher } = await import("playwright"));
console.log("Playwright loaded");
} catch (error) {
throw new Error(
`Could not load playwright from the current js_repl cwd. Run the setup commands from this workspace first. Original error: ${error}`
);
}
```
Binding rules:
- Use `var` for the shared top-level Playwright handles because later `js_repl` cells reuse them.
- The setup cells below are intentionally short happy paths. If a handle looks stale, set that binding to `undefined` and rerun the cell instead of adding recovery logic everywhere.
- Prefer one named handle per surface you care about (`page`, `mobilePage`, `appWindow`) over repeatedly rediscovering pages from the context.
Shared web helpers:
```javascript
var resetWebHandles = function () {
context = undefined;
page = undefined;
mobileContext = undefined;
mobilePage = undefined;
};
var ensureWebBrowser = async function () {
if (browser && !browser.isConnected()) {
browser = undefined;
resetWebHandles();
}
browser ??= await chromium.launch({ headless: false });
return browser;
};
var reloadWebContexts = async function () {
for (const currentContext of [context, mobileContext]) {
if (!currentContext) continue;
for (const p of currentContext.pages()) {
await p.reload({ waitUntil: "domcontentloaded" });
}
}
console.log("Reloaded existing web tabs");
};
```
## Choose Session Mode
For web apps, use an explicit viewport by default and treat native-window mode as a separate validation pass.From z91772524-ai/pojia-next-mac, MIT.
More from z91772524-ai/pojia-next-mac
- 0.675score
pojia-game-hack
z91772524-ai
Game runtime analysis and interactive overlay research — process memory structure recovery, entity-component inspection, coordinate projection visualization…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
pojia-auto-ops
z91772524-ai
破甲开局全域与连续交付工作流。Use when the operator opens with 在吗、在线吗、你好、hi、hello、嘿或yo; requests startup/full routing; uses ambiguous dual-use or industry slang; or needs…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
pojia-exploit
z91772524-ai
CTF Pwn and vulnerability research — crash triage, primitive analysis, and exploit engineering for stack/heap/kernel/sandbox targets.
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
pojia-evasion
z91772524-ai
Detection engineering research — analyze AV/EDR detection logic, profile signature/heuristic/behavioral/cloud classifiers, develop minimal bypass proofs…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
mobile-competitive-game-security
z91772524-ai
Mobile competitive-game security research for 和平精英、王者荣耀、PUBG Mobile、Honor of Kings、Game for Peace and similar Android/iOS titles.
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
edr-bypass-re
z91772524-ai
逆向防御方实现 → 红队针对性绕过。把 EDR / Defender / AV 的 hook 表、ETW provider、AMSI 实现先逆向出来, 再写针对性的 unhook / 间接 syscall / ETW patch / call stack spoof。对照 MITRE ATT&CK T1562…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
pojia-anticheat
z91772524-ai
Game anti-cheat surface mapping and bypass-research force-start for ACE/miHoYo/Unity/Unreal targets.
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
ida-reverse
z91772524-ai
IDA Pro 逆向分析辅助技能。当用户提到逆向、反编译、分析二进制/PE/ELF/APK/DLL/SO、破解、找密码、漏洞分析、病毒分析、firmware 固件分析,或需要分析 exe/dll/so/elf/macho/sys 等文件时,务必使用此技能。 Ensure to use this skill when…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
patch-diff-exploit
z91772524-ai
N-day 补丁差分到利用。从厂商发布的补丁里反推漏洞点、写 PoC、做成可用的攻击模块。 适用场景:已知 CVE 编号但只有补丁没有 PoC、SRC/红队需要打击未及时更新的资产、N-day 武器化、Patch Tuesday 跟进。 核心方法:拿 before/after 二进制 → 对齐符号 → 二进制…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
gpt56-reverse-pentest
z91772524-ai
GPT-5.6 全栈逆向+渗透融合 Skill(已并入 Code Sentinel)。 覆盖:通用/深度/脱壳/黑盒/JS/APK/Binary Diff 逆向;渗透/API/攻击链; 游戏/卡密/Pwn/IoT/恶意样本/EDR/LLM/供应链/Patch Diff/CTF 全速解题; Kali…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
diagram-generator
z91772524-ai
generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source.
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
pojia-game-redteam
z91772524-ai
Red-team game-security force-start for ESP/overlay, external/kernel memory read, ACE/anti-cheat surface mapping, IL2CPP/native engine recovery…
SkillAFreshness: A★ 77Claude Code +9
Signals
- Stars
- 77
- Forks
- 12
- Open issues
- 0
- Last commit (this folder)
- Sep 28, 2026 (1 month ago)
- Last release
- Oct 10, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/z91772524-ai/pojia-next-mac
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.665score
playwright-interactive
openaiOfficial
Persistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
SkillDFreshness: D★ 28.3KClaude Code +9 - 0.286score
playwright-interactive
KingYeon-Zoo
Persistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
SkillCFreshness: C★ 1Claude Code +9 - 0.247score
playwright-interactive
PandelisZ
Persistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
SkillDFreshness: D★ 1Claude Code +9 - 0.234score
playwright-interactive
GreenHandHand
Persistent browser and Electron interaction through `js_repl` for fast iterative UI debugging.
SkillDFreshness: DClaude Code +9
More from z91772524-ai
- 0.675score
ida-reverse
z91772524-ai
IDA Pro 逆向分析辅助技能。当用户提到逆向、反编译、分析二进制/PE/ELF/APK/DLL/SO、破解、找密码、漏洞分析、病毒分析、firmware 固件分析,或需要分析 exe/dll/so/elf/macho/sys 等文件时,务必使用此技能。 Ensure to use this skill when…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
mobile-competitive-game-security
z91772524-ai
Mobile competitive-game security research for 和平精英、王者荣耀、PUBG Mobile、Honor of Kings、Game for Peace and similar Android/iOS titles.
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
diagram-generator
z91772524-ai
generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source.
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
gpt56-reverse-pentest
z91772524-ai
GPT-5.6 全栈逆向+渗透融合 Skill(已并入 Code Sentinel)。 覆盖:通用/深度/脱壳/黑盒/JS/APK/Binary Diff 逆向;渗透/API/攻击链; 游戏/卡密/Pwn/IoT/恶意样本/EDR/LLM/供应链/Patch Diff/CTF 全速解题; Kali…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
edr-bypass-re
z91772524-ai
逆向防御方实现 → 红队针对性绕过。把 EDR / Defender / AV 的 hook 表、ETW provider、AMSI 实现先逆向出来, 再写针对性的 unhook / 间接 syscall / ETW patch / call stack spoof。对照 MITRE ATT&CK T1562…
SkillAFreshness: A★ 77Claude Code +9 - 0.675score
patch-diff-exploit
z91772524-ai
N-day 补丁差分到利用。从厂商发布的补丁里反推漏洞点、写 PoC、做成可用的攻击模块。 适用场景:已知 CVE 编号但只有补丁没有 PoC、SRC/红队需要打击未及时更新的资产、N-day 武器化、Patch Tuesday 跟进。 核心方法:拿 before/after 二进制 → 对齐符号 → 二进制…
SkillAFreshness: A★ 77Claude Code +9
Cite this page
playwright-interactive skill. Agent Mart. https://agentmart.dev/skills/z91772524-ai-playwright-interactive (last updated 2026-10-24)