Compare commits

..

2 Commits

Author SHA1 Message Date
Pavel Feldman
f639130aef chore: update the skills install help 2026-02-05 17:27:34 -08:00
Pavel Feldman
e39e83bb13 chore: mark v0.0.64 (#1371) 2026-02-05 17:11:02 -08:00
12 changed files with 69 additions and 57 deletions

View File

@@ -0,0 +1,4 @@
# How to roll skills
- Read skill file at node_modules/playwright/lib/skill/SKILL.md
- Update README.md at packages/playwright-cli/README.md with the new relevant information from skill.

View File

@@ -343,6 +343,7 @@ Playwright MCP server supports following arguments. They can be provided in the
| --caps <caps> | comma-separated list of additional capabilities to enable, possible values: vision, pdf, devtools.<br>*env* `PLAYWRIGHT_MCP_CAPS` |
| --cdp-endpoint <endpoint> | CDP endpoint to connect to.<br>*env* `PLAYWRIGHT_MCP_CDP_ENDPOINT` |
| --cdp-header <headers...> | CDP headers to send with the connect request, multiple can be specified.<br>*env* `PLAYWRIGHT_MCP_CDP_HEADER` |
| --cdp-timeout <timeout> | timeout in milliseconds for connecting to CDP endpoint, defaults to 30000ms<br>*env* `PLAYWRIGHT_MCP_CDP_TIMEOUT` |
| --codegen <lang> | specify the language to use for code generation, possible values: "typescript", "none". Default is "typescript".<br>*env* `PLAYWRIGHT_MCP_CODEGEN` |
| --config <path> | path to the configuration file.<br>*env* `PLAYWRIGHT_MCP_CONFIG` |
| --console-level <level> | level of console messages to return: "error", "warning", "info", "debug". Each level includes the messages of more severe levels.<br>*env* `PLAYWRIGHT_MCP_CONSOLE_LEVEL` |

46
package-lock.json generated
View File

@@ -1,19 +1,19 @@
{
"name": "playwright-mcp-internal",
"version": "0.0.63",
"version": "0.0.65",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "playwright-mcp-internal",
"version": "0.0.63",
"version": "0.0.65",
"license": "Apache-2.0",
"workspaces": [
"packages/*"
],
"devDependencies": {
"@modelcontextprotocol/sdk": "^1.25.2",
"@playwright/test": "1.59.0-alpha-1770157258000",
"@playwright/test": "1.59.0-alpha-1770338664000",
"@types/node": "^24.3.0"
}
},
@@ -806,13 +806,13 @@
"link": true
},
"node_modules/@playwright/test": {
"version": "1.59.0-alpha-1770157258000",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.0-alpha-1770157258000.tgz",
"integrity": "sha512-zBg9P0xkKXnDrSr7zmVqkGnUwiR/2PnxHs2zWsQ9EeG76X5YOn5hcuog/1YFrzOKvYOb+bcnjXb+dMTn8fkMTA==",
"version": "1.59.0-alpha-1770338664000",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.0-alpha-1770338664000.tgz",
"integrity": "sha512-GRgwREMJ36Ici5lV/16ZHMd+HEh4XuT4jSHPlvOyNBcefPi8JsBFI/kMl7BChjOpitrDOxhZJAgdHvQkPeQu0w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright": "1.59.0-alpha-1770157258000"
"playwright": "1.59.0-alpha-1770338664000"
},
"bin": {
"playwright": "cli.js"
@@ -2562,12 +2562,12 @@
}
},
"node_modules/playwright": {
"version": "1.59.0-alpha-1770157258000",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.0-alpha-1770157258000.tgz",
"integrity": "sha512-jGMgi+61xaC9Pf7cIalsgKy4g0oAreA8U4/Lr8E0xhYl3pWd/U3F6s/m7GBWxJHHEiQcIdnP3mUdy1FTOyl8SQ==",
"version": "1.59.0-alpha-1770338664000",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.0-alpha-1770338664000.tgz",
"integrity": "sha512-YKR5ko/eQFtcvlZPTJN3BmVFRrIxuzKw8sqZgP9XY+JvQEDlAsGDNsBd7/TxWLZYzCC8HHETB7cW6Ru2DEkTWA==",
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.59.0-alpha-1770157258000"
"playwright-core": "1.59.0-alpha-1770338664000"
},
"bin": {
"playwright": "cli.js"
@@ -2584,9 +2584,9 @@
"link": true
},
"node_modules/playwright-core": {
"version": "1.59.0-alpha-1770157258000",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.0-alpha-1770157258000.tgz",
"integrity": "sha512-D+3ARZYNY7/i6LyV6DKsPQHkzfmuMXMdKdyW981i5CHA4GmXY2NTt1F7cEL4fGYJFpwPqTfQ17Qhas8dnirPkg==",
"version": "1.59.0-alpha-1770338664000",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.0-alpha-1770338664000.tgz",
"integrity": "sha512-Qlaafyf5T1GN/ynNJVVdJyD26HjzqvgRC62jNdfaFoMkTvqSlV4of9O6BV7c1x5ZJpplKXHecAPWKSWNdea7Dw==",
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
@@ -3306,7 +3306,7 @@
},
"packages/extension": {
"name": "@playwright/mcp-extension",
"version": "0.0.63",
"version": "0.0.65",
"license": "Apache-2.0",
"devDependencies": {
"@types/chrome": "^0.0.315",
@@ -3325,12 +3325,12 @@
},
"packages/playwright-cli": {
"name": "@playwright/cli",
"version": "0.0.63",
"version": "0.0.65",
"license": "Apache-2.0",
"dependencies": {
"minimist": "^1.2.5",
"playwright": "1.59.0-alpha-1770157258000",
"playwright-core": "1.59.0-alpha-1770157258000"
"playwright": "1.59.0-alpha-1770338664000",
"playwright-core": "1.59.0-alpha-1770338664000"
},
"bin": {
"playwright-cli": "playwright-cli.js"
@@ -3341,20 +3341,20 @@
},
"packages/playwright-cli-stub": {
"name": "playwright-cli",
"version": "0.0.63",
"version": "0.0.65",
"license": "Apache-2.0",
"dependencies": {
"@playwright/cli": "0.0.63"
"@playwright/cli": "0.0.65"
},
"devDependencies": {}
},
"packages/playwright-mcp": {
"name": "@playwright/mcp",
"version": "0.0.63",
"version": "0.0.65",
"license": "Apache-2.0",
"dependencies": {
"playwright": "1.59.0-alpha-1770157258000",
"playwright-core": "1.59.0-alpha-1770157258000"
"playwright": "1.59.0-alpha-1770338664000",
"playwright-core": "1.59.0-alpha-1770338664000"
},
"bin": {
"playwright-mcp": "cli.js"

View File

@@ -1,6 +1,6 @@
{
"name": "playwright-mcp-internal",
"version": "0.0.63",
"version": "0.0.65",
"private": true,
"repository": {
"type": "git",
@@ -25,7 +25,7 @@
],
"devDependencies": {
"@modelcontextprotocol/sdk": "^1.25.2",
"@playwright/test": "1.59.0-alpha-1770157258000",
"@playwright/test": "1.59.0-alpha-1770338664000",
"@types/node": "^24.3.0"
}
}

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 3,
"name": "Playwright MCP Bridge",
"version": "0.0.63",
"version": "0.0.65",
"description": "Share browser tabs with Playwright MCP server",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9nMS2b0WCohjVHPGb8D9qAdkbIngDqoAjTeSccHJijgcONejge+OJxOQOMLu7b0ovt1c9BiEJa5JcpM+EHFVGL1vluBxK71zmBy1m2f9vZF3HG0LSCp7YRkum9rAIEthDwbkxx6XTvpmAY5rjFa/NON6b9Hlbo+8peUSkoOK7HTwYnnI36asZ9eUTiveIf+DMPLojW2UX33vDWG2UKvMVDewzclb4+uLxAYshY7Mx8we/b44xu+Anb/EBLKjOPk9Yh541xJ5Ozc8EiP/5yxOp9c/lRiYUHaRW+4r0HKZyFt0eZ52ti2iM4Nfk7jRXR7an3JPsUIf5deC/1cVM/+1ZQIDAQAB",
"permissions": [

View File

@@ -1,6 +1,6 @@
{
"name": "@playwright/mcp-extension",
"version": "0.0.63",
"version": "0.0.65",
"description": "Playwright MCP Browser Extension",
"private": true,
"repository": {

View File

@@ -400,7 +400,7 @@ test.describe('CLI with extension', () => {
const confirmationPage = await confirmationPagePromise;
// Click the Allow button
await confirmationPage.getByRole('button', { name: 'Allow' }).click();
await confirmationPage.getByRole('button', { name: 'Connect' }).first().click();
// Wait for the CLI command to complete
const { output } = await cliPromise;

View File

@@ -1,6 +1,6 @@
{
"name": "playwright-cli",
"version": "0.0.63",
"version": "0.0.65",
"description": "Playwright CLI",
"repository": "github:Microsoft/playwright-cli",
"homepage": "https://playwright.dev",
@@ -14,7 +14,7 @@
},
"license": "Apache-2.0",
"dependencies": {
"@playwright/cli": "0.0.63"
"@playwright/cli": "0.0.65"
},
"devDependencies": {}
}

View File

@@ -32,7 +32,7 @@ playwright-cli --help
Claude Code, GitHub Copilot and others will use the locally installed skills.
```bash
playwright-cli install-skills
playwright-cli install --skills
```
### Skills-less operation
@@ -105,13 +105,13 @@ Playwright CLI will use a dedicated persistent profile by default. It means that
your cookies and other storage state will be preserved between the calls. You can use different
instances of the browser for different projects with sessions.
Following will result in two browsers with separate profiles being available. Pass `--session` to
Following will result in two browsers with separate profiles being available. Pass `-s=` to
the invocation to talk to a specific browser.
```bash
playwright-cli open https://playwright.dev
playwright-cli --session=example open https://example.com
playwright-cli session-list
playwright-cli -s=example open https://example.com
playwright-cli list
```
You can run your coding agent with the `PLAYWRIGHT_CLI_SESSION` environment variable:
@@ -120,16 +120,14 @@ You can run your coding agent with the `PLAYWRIGHT_CLI_SESSION` environment vari
PLAYWRIGHT_CLI_SESSION=todo-app claude .
```
Or instruct it to prepend `--session` to the calls.
Or instruct it to prepend `-s=` to the calls.
Manage your sessions as follows:
```bash
playwright-cli session-list # list all sessions
playwright-cli session-stop [name] # stop session
playwright-cli session-restart [name] # restart session
playwright-cli session-stop-all # stop all sessions
playwright-cli session-delete [name] # delete session data along with the profiles
playwright-cli list # list all sessions
playwright-cli close-all # close all browsers
playwright-cli kill-all # forcefully kill all browser processes
```
<!-- BEGIN GENERATED CLI HELP -->
@@ -152,6 +150,7 @@ playwright-cli upload <file> # upload one or multiple files
playwright-cli check <ref> # check a checkbox or radio button
playwright-cli uncheck <ref> # uncheck a checkbox or radio button
playwright-cli snapshot # capture page snapshot to obtain element ref
playwright-cli snapshot --filename=f # save snapshot to specific file
playwright-cli eval <func> [ref] # evaluate javascript expression on page or element
playwright-cli dialog-accept [prompt] # accept a dialog
playwright-cli dialog-dismiss # dismiss a dialog
@@ -187,7 +186,9 @@ playwright-cli mousewheel <dx> <dy> # scroll mouse wheel
```bash
playwright-cli screenshot [ref] # screenshot of the current page or element
playwright-cli screenshot --filename=f # save screenshot with specific filename
playwright-cli pdf # save page as pdf
playwright-cli pdf --filename=page.pdf # save pdf with specific filename
```
### Tabs
@@ -250,8 +251,8 @@ playwright-cli video-stop [filename] # stop video recording
### Install
```bash
playwright-cli install --skills # install skills
playwright-cli install-browser # install browser
playwright-cli install-skills # install skills
```
### Configuration
@@ -260,18 +261,22 @@ playwright-cli install-skills # install skills
playwright-cli config [options] # configure session settings
playwright-cli open --browser=chrome # use specific browser
playwright-cli open --extension # connect via browser extension
playwright-cli open --persistent # use persistent profile
playwright-cli open --profile=<path> # use custom profile directory
playwright-cli open --config=file.json # use config file
playwright-cli close # close the browser
playwright-cli delete-data # delete user data for default session
```
### Sessions
```bash
playwright-cli --session=name <cmd> # run command in named session
playwright-cli session-list # list all sessions
playwright-cli session-stop [name] # stop session
playwright-cli session-restart [name] # restart session
playwright-cli session-stop-all # stop all sessions
playwright-cli session-delete [name] # delete session data and profiles
playwright-cli -s=name <cmd> # run command in named session
playwright-cli -s=name close # stop a named browser
playwright-cli -s=name delete-data # delete user data for named browser
playwright-cli list # list all sessions
playwright-cli close-all # close all browsers
playwright-cli kill-all # forcefully kill all browser processes
```
<!-- END GENERATED CLI HELP -->
@@ -426,7 +431,8 @@ Playwright CLI will load config from `playwright-cli.json` by default so that yo
</details>
## Environment
<details>
<summary>Configuration via env</summary>
| Environment |
|-------------|
@@ -472,3 +478,4 @@ Playwright CLI will load config from `playwright-cli.json` by default so that yo
| `PLAYWRIGHT_MCP_USER_AGENT` specify user agent string |
| `PLAYWRIGHT_MCP_USER_DATA_DIR` path to the user data directory. If not specified, a temporary directory will be created. |
| `PLAYWRIGHT_MCP_VIEWPORT_SIZE` specify browser viewport size in pixels, for example "1280x720" |
</details>

View File

@@ -1,6 +1,6 @@
{
"name": "@playwright/cli",
"version": "0.0.63",
"version": "0.0.65",
"description": "Playwright CLI",
"repository": {
"type": "git",
@@ -21,8 +21,8 @@
},
"dependencies": {
"minimist": "^1.2.5",
"playwright": "1.59.0-alpha-1770157258000",
"playwright-core": "1.59.0-alpha-1770157258000"
"playwright": "1.59.0-alpha-1770338664000",
"playwright-core": "1.59.0-alpha-1770338664000"
},
"bin": {
"playwright-cli": "playwright-cli.js"

View File

@@ -60,13 +60,13 @@ async function runCli(...args: string[]): Promise<CliResult> {
}
test('open data URL', async ({}) => {
expect(await runCli('open', 'data:text/html,hello')).toEqual(expect.objectContaining({
expect(await runCli('open', 'data:text/html,hello', '--persistent')).toEqual(expect.objectContaining({
output: expect.stringContaining('hello'),
exitCode: 0,
}));
expect(await runCli('session-delete')).toEqual(expect.objectContaining({
output: expect.stringContaining('Deleted user data for session'),
expect(await runCli('delete-data')).toEqual(expect.objectContaining({
output: expect.stringContaining('Deleted user data for'),
exitCode: 0,
}));
});

View File

@@ -1,6 +1,6 @@
{
"name": "@playwright/mcp",
"version": "0.0.63",
"version": "0.0.65",
"description": "Playwright Tools for MCP",
"repository": {
"type": "git",
@@ -34,8 +34,8 @@
}
},
"dependencies": {
"playwright": "1.59.0-alpha-1770157258000",
"playwright-core": "1.59.0-alpha-1770157258000"
"playwright": "1.59.0-alpha-1770338664000",
"playwright-core": "1.59.0-alpha-1770338664000"
},
"bin": {
"playwright-mcp": "cli.js"