feat(playwright): add Playwright plugin to marketplace#149
feat(playwright): add Playwright plugin to marketplace#149
Conversation
Add token-efficient browser automation CLI plugin for coding agents. Includes plugin.json, README, skills, and marketplace/release-please config entries.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Code Review
This pull request introduces the Playwright plugin, providing a token-efficient browser automation CLI for coding agents. The changes include adding the plugin to the marketplace, updating the README, and providing comprehensive documentation for various Playwright features like session management, request mocking, and video recording. Feedback was provided regarding a potential duplicate entry in the marketplace configuration and a suggestion to include the upstream author information in the plugin's metadata. Note that files under plugins/playwright/.agents/skills/ are managed by skills.sh and should not be modified directly per the repository style guide.
| { | ||
| "name": "playwright", | ||
| "description": "Token-efficient browser automation CLI for coding agents - navigate, interact, screenshot, and test web apps via concise CLI commands instead of verbose MCP schemas", | ||
| "category": "development", | ||
| "keywords": ["playwright", "browser", "automation", "testing"], | ||
| "tags": ["tooling", "testing"], | ||
| "source": "./plugins/playwright" | ||
| } |
| { | ||
| "name": "playwright", | ||
| "version": "1.0.0", | ||
| "description": "Token-efficient browser automation CLI for coding agents - navigate, interact, screenshot, and test web apps via concise CLI commands instead of verbose MCP schemas", | ||
| "license": "Apache-2.0", | ||
| "keywords": ["playwright", "browser", "automation", "testing"], | ||
| "skills": "./.agents/skills/" | ||
| } |
There was a problem hiding this comment.
For plugins representing an external project, the author field should be included in plugin.json to credit the upstream organization. It should be an object with name and url properties.
| { | |
| "name": "playwright", | |
| "version": "1.0.0", | |
| "description": "Token-efficient browser automation CLI for coding agents - navigate, interact, screenshot, and test web apps via concise CLI commands instead of verbose MCP schemas", | |
| "license": "Apache-2.0", | |
| "keywords": ["playwright", "browser", "automation", "testing"], | |
| "skills": "./.agents/skills/" | |
| } | |
| { | |
| "name": "playwright", | |
| "version": "1.0.0", | |
| "description": "Token-efficient browser automation CLI for coding agents - navigate, interact, screenshot, and test web apps via concise CLI commands instead of verbose MCP schemas", | |
| "author": { | |
| "name": "Microsoft", | |
| "url": "https://github.com/microsoft/playwright-cli" | |
| }, | |
| "license": "Apache-2.0", | |
| "keywords": ["playwright", "browser", "automation", "testing"], | |
| "skills": "./.agents/skills/" | |
| } |
References
- For plugins representing an external project, the author field in plugin.json should credit the upstream organization, not an individual contributor.
- In plugin.json files, the author field for external projects should be an object with name and url properties, not a simple string.
There was a problem hiding this comment.
1 issue found across 16 files
Confidence score: 4/5
- This PR is likely safe to merge, with only a minor-to-moderate usability risk rather than a functional breakage risk.
- The main issue is in
.claude-plugin/marketplace.json: adding aplaywrightentry that may duplicate the existingplaywright-clientry could confuse users selecting tools in the marketplace. - Given the issue’s mid-level severity/confidence (5/10, 6/10) and limited impact scope, the merge risk appears low overall.
- Pay close attention to
.claude-plugin/marketplace.json- potential duplicate Playwright marketplace entries may create naming ambiguity for users.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".claude-plugin/marketplace.json">
<violation number="1" location=".claude-plugin/marketplace.json:548">
P2: This `playwright` entry may duplicate an existing `playwright-cli` entry already present in this marketplace file (around lines 265-274). Having two marketplace entries for the same underlying tool will confuse users during plugin discovery and installation. If this local plugin supersedes the external one, remove the old entry; otherwise, differentiate the descriptions clearly.</violation>
</file>
Architecture diagram
sequenceDiagram
participant User as User / Agent CLI
participant Registry as Marketplace (.claude-plugin/marketplace.json)
participant Plugin as Playwright Plugin (plugins/playwright/)
participant Skill as Playwright Skill (SKILL.md)
participant PW_CLI as Playwright CLI (playwright-cli)
participant Browser as Browser Instance
Note over User, Registry: Plugin Installation Phase
User->>Registry: NEW: /plugin install playwright@pleaseai
Registry-->>User: Resolve plugin source & manifest
Note over User, Skill: Skill Loading Phase
User->>Skill: NEW: Load skill definitions & references
Skill-->>User: Inject token-efficient CLI patterns (open, click, fill)
Note over User, Browser: Runtime Interaction Loop
User->>PW_CLI: NEW: Execute command (e.g., playwright-cli open URL)
PW_CLI->>Browser: Launch & navigate
Browser-->>PW_CLI: Page State
PW_CLI->>PW_CLI: NEW: Generate YAML snapshot & TS code snippet
PW_CLI-->>User: Return snapshot path & generated code
alt Interaction with Elements
User->>PW_CLI: NEW: Interaction (e.g., click e15)
PW_CLI->>Browser: Perform action on element ref
Browser-->>PW_CLI: Updated State
PW_CLI-->>User: New snapshot & execution result
else Advanced Logic
User->>PW_CLI: NEW: run-code (execute arbitrary TS)
PW_CLI->>Browser: Context/Page evaluation
Browser-->>User: Result value
end
opt Session Management
User->>PW_CLI: NEW: manage sessions (-s flag)
PW_CLI->>PW_CLI: Isolate cookies/storage/processes
end
Note over Plugin, PW_CLI: Maintenance & Releases
Plugin->>Registry: Registered in development category
Plugin->>Plugin: NEW: release-please tracks version in plugin.json
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| "source": "./plugins/emulate" | ||
| }, | ||
| { | ||
| "name": "playwright", |
There was a problem hiding this comment.
P2: This playwright entry may duplicate an existing playwright-cli entry already present in this marketplace file (around lines 265-274). Having two marketplace entries for the same underlying tool will confuse users during plugin discovery and installation. If this local plugin supersedes the external one, remove the old entry; otherwise, differentiate the descriptions clearly.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude-plugin/marketplace.json, line 548:
<comment>This `playwright` entry may duplicate an existing `playwright-cli` entry already present in this marketplace file (around lines 265-274). Having two marketplace entries for the same underlying tool will confuse users during plugin discovery and installation. If this local plugin supersedes the external one, remove the old entry; otherwise, differentiate the descriptions clearly.</comment>
<file context>
@@ -543,6 +543,14 @@
"source": "./plugins/emulate"
+ },
+ {
+ "name": "playwright",
+ "description": "Token-efficient browser automation CLI for coding agents - navigate, interact, screenshot, and test web apps via concise CLI commands instead of verbose MCP schemas",
+ "category": "development",
</file context>
Summary
plugins/playwright/) with plugin manifest, README, and CLI skills.claude-plugin/marketplace.jsonunder development/testing categoryrelease-please-config.jsonfor versioned releasesREADME.mdwith install instructions and plugin descriptionTest plan
claude plugin validate plugins/playwrightpasses/plugin install playwright@pleaseairesolves correctly after marketplace updaterelease-pleasepicks up the new component config on next release cycleSummary by cubic
Adds a Playwright plugin that gives coding agents a token‑efficient browser automation CLI for navigation, interaction, testing, and debugging. Registers the plugin in the marketplace and configures versioned releases.
plugins/playwright/with plugin manifest,skills-lock.json, README, andplaywright-cliSKILL docs and references.playwrightin.claude-plugin/marketplace.jsonunder development/testing.README.mdwith install instructions (/plugin install playwright@pleaseai) and links.release-pleaseforplugins/playwrightto version via.claude-plugin/plugin.json.Written for commit 4b18048. Summary will update on new commits.