All skills
microsoft avatar

/playwright-cli

@8547218
by microsoftmicrosoft/playwright97k stars
6,529

Automate browser interactions, test web pages and work with Playwright tests.

Use this Skill: https://skilld.dev/gh/microsoft/playwright/playwright-cli

This session only. Nothing lands on disk.

referencesstorage-state.md

≈1.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Storage Management

Manage cookies, localStorage, sessionStorage, and browser storage state.

Storage State

Save and restore complete browser state including cookies and storage.

Save Storage State

# Save to auto-generated filename (storage-state-{timestamp}.json)
playwright-cli state-save

# Save to specific filename
playwright-cli state-save my-auth-state.json

Restore Storage State

# Load storage state from file
playwright-cli state-load my-auth-state.json

# Reload page to apply cookies
playwright-cli open https://example.com

Storage State File Format

The saved file contains:

{
  "cookies": [
    {
      "name": "session_id",
      "value": "abc123",
      "domain": "example.com",
      "path": "/",
      "expires": 1893456000,
      "httpOnly": true,
      "secure": true,
      "sameSite": "Lax"
    }
  ],
  "origins": [
    {
      "origin": "https://example.com",
      "localStorage": [
        { "name": "theme", "value": "dark" },
        { "name": "user_id", "value": "12345" }
      ]
    }
  ]
}

Cookies

List All Cookies

playwright-cli cookie-list

Filter Cookies by Domain

playwright-cli cookie-list --domain=example.com

Filter Cookies by Path

playwright-cli cookie-list --path=/api

Get Specific Cookie

playwright-cli cookie-get session_id

Set a Cookie

# Basic cookie
playwright-cli cookie-set session abc123

# Cookie with options
playwright-cli cookie-set session abc123 --domain=example.com --path=/ --httpOnly --secure --sameSite=Lax

# Cookie with expiration (Unix timestamp)
playwright-cli cookie-set remember_me token123 --expires=1893456000

Delete a Cookie

playwright-cli cookie-delete session_id

Clear All Cookies

playwright-cli cookie-clear

Advanced: Multiple Cookies or Custom Options

For complex scenarios like adding multiple cookies at once, use run-code:

playwright-cli run-code "async page => {
  await page.context().addCookies([
    { name: 'session_id', value: 'sess_abc123', domain: 'example.com', path: '/', httpOnly: true },
    { name: 'preferences', value: JSON.stringify({ theme: 'dark' }), domain: 'example.com', path: '/' }
  ]);
}"

Local Storage

List All localStorage Items

playwright-cli localstorage-list

Get Single Value

playwright-cli localstorage-get token

Set Value

playwright-cli localstorage-set theme dark

Set JSON Value

playwright-cli localstorage-set user_settings '{"theme":"dark","language":"en"}'

Delete Single Item

playwright-cli localstorage-delete token

Clear All localStorage

playwright-cli localstorage-clear

Advanced: Multiple Operations

For complex scenarios like setting multiple values at once, use run-code:

playwright-cli run-code "async page => {
  await page.evaluate(() => {
    localStorage.setItem('token', 'jwt_abc123');
    localStorage.setItem('user_id', '12345');
    localStorage.setItem('expires_at', Date.now() + 3600000);
  });
}"

Session Storage

List All sessionStorage Items

playwright-cli sessionstorage-list

Get Single Value

playwright-cli sessionstorage-get form_data

Set Value

playwright-cli sessionstorage-set step 3

Delete Single Item

playwright-cli sessionstorage-delete step

Clear sessionStorage

playwright-cli sessionstorage-clear

IndexedDB

List Databases

playwright-cli run-code "async page => {
  return await page.evaluate(async () => {
    const databases = await indexedDB.databases();
    return databases;
  });
}"

Delete Database

playwright-cli run-code "async page => {
  await page.evaluate(() => {
    indexedDB.deleteDatabase('myDatabase');
  });
}"

Common Patterns

Authentication State Reuse

# Step 1: Login and save state
playwright-cli open https://app.example.com/login
playwright-cli snapshot
playwright-cli fill e1 "user@example.com"
playwright-cli fill e2 "password123"
playwright-cli click e3

# Save the authenticated state
playwright-cli state-save auth.json

# Step 2: Later, restore state and skip login
playwright-cli state-load auth.json
playwright-cli open https://app.example.com/dashboard
# Already logged in!

Save and Restore Roundtrip

# Set up authentication state
playwright-cli open https://example.com
playwright-cli eval "() => { document.cookie = 'session=abc123'; localStorage.setItem('user', 'john'); }"

# Save state to file
playwright-cli state-save my-session.json

# ... later, in a new session ...

# Restore state
playwright-cli state-load my-session.json
playwright-cli open https://example.com
# Cookies and localStorage are restored!

Security Notes

  • Never commit storage state files containing auth tokens
  • Add *.auth-state.json to .gitignore
  • Delete state files after automation completes
  • Use environment variables for sensitive data
  • By default, sessions run in-memory mode which is safer for sensitive operations

Source: SKILL.md on GitHub

1 warningtoday5 checks · Risk SAFE
  • Gen Agent Trust Hubtoday

    This skill provides a comprehensive suite for browser automation using Playwright. It includes standard features for interacting with web pages, managing sessions, and debugging tests. While the skill includes powerful capabilities such as arbitrary code execution and storage management, these are within the scope of its intended purpose and are accompanied by security best practices in the documentation.

  • Sockettoday

    No alerts

  • Snyktoday

    Risk: MEDIUM · 1 issue

  • Runlayer7mo

    4/8 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 8547218. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated yesterday
What it can do
Runs commands
All 1 allowed tools
Bash(playwright-cli:*) Bash(npx playwright:*) Bash(npx --no-install playwright:*)

README badge

README badge for microsoft/playwright/playwright-cli