Skip to content

feat(playwright): add Playwright plugin to marketplace#149

Closed
amondnet wants to merge 1 commit intomainfrom
amondnet/sulky-whippoorwill
Closed

feat(playwright): add Playwright plugin to marketplace#149
amondnet wants to merge 1 commit intomainfrom
amondnet/sulky-whippoorwill

Conversation

@amondnet
Copy link
Copy Markdown
Contributor

@amondnet amondnet commented Apr 7, 2026

Summary

  • Add Playwright plugin (plugins/playwright/) with plugin manifest, README, and CLI skills
  • Register plugin in .claude-plugin/marketplace.json under development/testing category
  • Add entry to release-please-config.json for versioned releases
  • Update root README.md with install instructions and plugin description

Test plan

  • Verify claude plugin validate plugins/playwright passes
  • Confirm /plugin install playwright@pleaseai resolves correctly after marketplace update
  • Check that release-please picks up the new component config on next release cycle

Summary 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.

  • New Features
    • Added plugins/playwright/ with plugin manifest, skills-lock.json, README, and playwright-cli SKILL docs and references.
    • Registered playwright in .claude-plugin/marketplace.json under development/testing.
    • Updated root README.md with install instructions (/plugin install playwright@pleaseai) and links.
    • Configured release-please for plugins/playwright to version via .claude-plugin/plugin.json.

Written for commit 4b18048. Summary will update on new commits.

Add token-efficient browser automation CLI plugin for coding agents.
Includes plugin.json, README, skills, and marketplace/release-please config entries.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
claude-code-plugins Ready Ready Preview, Comment Apr 7, 2026 3:50am

Request Review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +547 to 554
{
"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"
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This new playwright entry appears to duplicate the existing playwright-cli entry (lines 265-274). If this local plugin is intended to replace the external one, the old entry should be removed to avoid confusion for users.

Comment on lines +1 to +8
{
"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/"
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Suggested change
{
"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
  1. For plugins representing an external project, the author field in plugin.json should credit the upstream organization, not an individual contributor.
  2. In plugin.json files, the author field for external projects should be an object with name and url properties, not a simple string.

@amondnet amondnet self-assigned this Apr 7, 2026
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 a playwright entry that may duplicate the existing playwright-cli entry 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
Loading

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

"source": "./plugins/emulate"
},
{
"name": "playwright",
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
Fix with Cubic

@amondnet amondnet closed this Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant