{
  "global": "Usage: playwright-cli <command> [args] [options]\nUsage: playwright-cli -s=<session> <command> [args] [options]\n\nCore:\n  open [url]                  open the browser\n  attach <name>               attach to a running playwright browser\n  close                       close the browser\n  goto <url>                  navigate to a url\n  type <text>                 type text into editable element\n  click <target> [button]     perform click on a web page\n  dblclick <target> [button]  perform double click on a web page\n  fill <target> <text>        fill text into editable element\n  drag <startElement> <endElement> perform drag and drop between two elements\n  hover <target>              hover over element on page\n  select <target> <val>       select an option in a dropdown\n  upload <file>               upload one or multiple files\n  check <target>              check a checkbox or radio button\n  uncheck <target>            uncheck a checkbox or radio button\n  snapshot [element]          capture page snapshot to obtain element ref\n  eval <func> [element]       evaluate javascript expression on page or element\n  dialog-accept [prompt]      accept a dialog\n  dialog-dismiss              dismiss a dialog\n  resize <w> <h>              resize the browser window\n  delete-data                 delete session data\n\nNavigation:\n  go-back                     go back to the previous page\n  go-forward                  go forward to the next page\n  reload                      reload the current page\n\nKeyboard:\n  press <key>                 press a key on the keyboard, `a`, `arrowleft`\n  keydown <key>               press a key down on the keyboard\n  keyup <key>                 press a key up on the keyboard\n\nMouse:\n  mousemove <x> <y>           move mouse to a given position\n  mousedown [button]          press mouse down\n  mouseup [button]            press mouse up\n  mousewheel <dx> <dy>        scroll mouse wheel\n\nSave as:\n  screenshot [target]         screenshot of the current page or element\n  pdf                         save page as pdf\n\nTabs:\n  tab-list                    list all tabs\n  tab-new [url]               create a new tab\n  tab-close [index]           close a browser tab\n  tab-select <index>          select a browser tab\n\nStorage:\n  state-load <filename>       loads browser storage (authentication) state from a file\n  state-save [filename]       saves the current storage (authentication) state to a file\n  cookie-list                 list all cookies (optionally filtered by domain/path)\n  cookie-get <name>           get a specific cookie by name\n  cookie-set <name> <value>   set a cookie with optional flags\n  cookie-delete <name>        delete a specific cookie\n  cookie-clear                clear all cookies\n  localstorage-list           list all localstorage key-value pairs\n  localstorage-get <key>      get a localstorage item by key\n  localstorage-set <key> <value> set a localstorage item\n  localstorage-delete <key>   delete a localstorage item\n  localstorage-clear          clear all localstorage\n  sessionstorage-list         list all sessionstorage key-value pairs\n  sessionstorage-get <key>    get a sessionstorage item by key\n  sessionstorage-set <key> <value> set a sessionstorage item\n  sessionstorage-delete <key> delete a sessionstorage item\n  sessionstorage-clear        clear all sessionstorage\n\nNetwork:\n  route <pattern>             mock network requests matching a url pattern\n  route-list                  list all active network routes\n  unroute [pattern]           remove routes matching a pattern (or all routes)\n  network-state-set <state>   set the browser network state to online or offline\n\nDevTools:\n  console [min-level]         list console messages\n  run-code [code]             run playwright code snippet\n  network                     list all network requests since loading the page\n  tracing-start               start trace recording\n  tracing-stop                stop trace recording\n  video-start [filename]      start video recording\n  video-stop                  stop video recording\n  video-chapter <title>       add a chapter marker to the video recording\n  show                        show browser devtools\n  pause-at <location>         run the test up to a specific location and pause there\n  resume                      resume the test execution\n  step-over                   step over the next call in the test\n\nInstall:\n  install                     initialize workspace\n  install-browser [browser]   install browser\n\nBrowser sessions:\n  list                        list browser sessions\n  close-all                   close all browser sessions\n  kill-all                    forcefully kill all browser sessions (for stale/zombie processes)\n\nGlobal options:\n  --help [command]            print help\n  --version                   print version",
  "commands": {
    "open": {
      "help": "playwright-cli open [url]\n\nOpen the browser\n\nArguments:\n  [url]                       the url to navigate to\nOptions:\n  --browser                   browser or chrome channel to use, possible values: chrome, firefox, webkit, msedge.\n  --config                    path to the configuration file, defaults to .playwright/cli.config.json\n  --extension                 connect to browser extension\n  --headed                    run browser in headed mode\n  --persistent                use persistent browser profile\n  --profile                   use persistent browser profile, store profile in specified directory.",
      "flags": {
        "browser": "string",
        "config": "string",
        "extension": "boolean",
        "headed": "boolean",
        "persistent": "boolean",
        "profile": "string"
      }
    },
    "attach": {
      "help": "playwright-cli attach <name>\n\nAttach to a running Playwright browser\n\nArguments:\n  <name>                      name or endpoint of the browser to attach to\nOptions:\n  --config                    path to the configuration file, defaults to .playwright/cli.config.json\n  --session                   session name alias (defaults to the attach target name)",
      "flags": {
        "config": "string",
        "session": "string"
      }
    },
    "close": {
      "help": "playwright-cli close \n\nClose the browser\n",
      "flags": {}
    },
    "goto": {
      "help": "playwright-cli goto <url>\n\nNavigate to a URL\n\nArguments:\n  <url>                       the url to navigate to",
      "flags": {}
    },
    "type": {
      "help": "playwright-cli type <text>\n\nType text into editable element\n\nArguments:\n  <text>                      text to type into the element\nOptions:\n  --submit                    whether to submit entered text (press enter after)",
      "flags": {
        "submit": "boolean"
      }
    },
    "click": {
      "help": "playwright-cli click <target> [button]\n\nPerform click on a web page\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector\n  [button]                    button to click, defaults to left\nOptions:\n  --modifiers                 modifier keys to press",
      "flags": {
        "modifiers": "string"
      }
    },
    "dblclick": {
      "help": "playwright-cli dblclick <target> [button]\n\nPerform double click on a web page\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector\n  [button]                    button to click, defaults to left\nOptions:\n  --modifiers                 modifier keys to press",
      "flags": {
        "modifiers": "string"
      }
    },
    "fill": {
      "help": "playwright-cli fill <target> <text>\n\nFill text into editable element\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector\n  <text>                      text to fill into the element\nOptions:\n  --submit                    whether to submit entered text (press enter after)",
      "flags": {
        "submit": "boolean"
      }
    },
    "drag": {
      "help": "playwright-cli drag <startElement> <endElement>\n\nPerform drag and drop between two elements\n\nArguments:\n  <startElement>              exact source element reference from the page snapshot, or a unique element selector\n  <endElement>                exact target element reference from the page snapshot, or a unique element selector",
      "flags": {}
    },
    "hover": {
      "help": "playwright-cli hover <target>\n\nHover over element on page\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector",
      "flags": {}
    },
    "select": {
      "help": "playwright-cli select <target> <val>\n\nSelect an option in a dropdown\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector\n  <val>                       value to select in the dropdown",
      "flags": {}
    },
    "upload": {
      "help": "playwright-cli upload <file>\n\nUpload one or multiple files\n\nArguments:\n  <file>                      the absolute paths to the files to upload",
      "flags": {}
    },
    "check": {
      "help": "playwright-cli check <target>\n\nCheck a checkbox or radio button\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector",
      "flags": {}
    },
    "uncheck": {
      "help": "playwright-cli uncheck <target>\n\nUncheck a checkbox or radio button\n\nArguments:\n  <target>                    exact target element reference from the page snapshot, or a unique element selector",
      "flags": {}
    },
    "snapshot": {
      "help": "playwright-cli snapshot [element]\n\nCapture page snapshot to obtain element ref\n\nArguments:\n  [element]                   element selector of the root element to capture a partial snapshot instead of the whole page\nOptions:\n  --filename                  save snapshot to markdown file instead of returning it in the response.\n  --depth                     limit snapshot depth, unlimited by default.",
      "flags": {
        "filename": "string",
        "depth": "string"
      }
    },
    "eval": {
      "help": "playwright-cli eval <func> [element]\n\nEvaluate JavaScript expression on page or element\n\nArguments:\n  <func>                      () => { /* code */ } or (element) => { /* code */ } when element is provided\n  [element]                   exact target element reference from the page snapshot, or a unique element selector\nOptions:\n  --filename                  save evaluation result to a file instead of returning it in the response.",
      "flags": {
        "filename": "string"
      }
    },
    "console": {
      "help": "playwright-cli console [min-level]\n\nList console messages\n\nArguments:\n  [min-level]                 level of the console messages to return. each level includes the messages of more severe levels. defaults to \"info\".\nOptions:\n  --clear                     whether to clear the console list",
      "flags": {
        "clear": "boolean"
      }
    },
    "dialog-accept": {
      "help": "playwright-cli dialog-accept [prompt]\n\nAccept a dialog\n\nArguments:\n  [prompt]                    the text of the prompt in case of a prompt dialog.",
      "flags": {}
    },
    "dialog-dismiss": {
      "help": "playwright-cli dialog-dismiss \n\nDismiss a dialog\n",
      "flags": {}
    },
    "resize": {
      "help": "playwright-cli resize <w> <h>\n\nResize the browser window\n\nArguments:\n  <w>                         width of the browser window\n  <h>                         height of the browser window",
      "flags": {}
    },
    "run-code": {
      "help": "playwright-cli run-code [code]\n\nRun Playwright code snippet\n\nArguments:\n  [code]                      a javascript function containing playwright code to execute. it will be invoked with a single argument, page, which you can use for any page interaction.\nOptions:\n  --filename                  load code from the specified file.",
      "flags": {
        "filename": "string"
      }
    },
    "delete-data": {
      "help": "playwright-cli delete-data \n\nDelete session data\n",
      "flags": {}
    },
    "go-back": {
      "help": "playwright-cli go-back \n\nGo back to the previous page\n",
      "flags": {}
    },
    "go-forward": {
      "help": "playwright-cli go-forward \n\nGo forward to the next page\n",
      "flags": {}
    },
    "reload": {
      "help": "playwright-cli reload \n\nReload the current page\n",
      "flags": {}
    },
    "press": {
      "help": "playwright-cli press <key>\n\nPress a key on the keyboard, `a`, `ArrowLeft`\n\nArguments:\n  <key>                       name of the key to press or a character to generate, such as `arrowleft` or `a`",
      "flags": {}
    },
    "keydown": {
      "help": "playwright-cli keydown <key>\n\nPress a key down on the keyboard\n\nArguments:\n  <key>                       name of the key to press or a character to generate, such as `arrowleft` or `a`",
      "flags": {}
    },
    "keyup": {
      "help": "playwright-cli keyup <key>\n\nPress a key up on the keyboard\n\nArguments:\n  <key>                       name of the key to press or a character to generate, such as `arrowleft` or `a`",
      "flags": {}
    },
    "mousemove": {
      "help": "playwright-cli mousemove <x> <y>\n\nMove mouse to a given position\n\nArguments:\n  <x>                         x coordinate\n  <y>                         y coordinate",
      "flags": {}
    },
    "mousedown": {
      "help": "playwright-cli mousedown [button]\n\nPress mouse down\n\nArguments:\n  [button]                    button to press, defaults to left",
      "flags": {}
    },
    "mouseup": {
      "help": "playwright-cli mouseup [button]\n\nPress mouse up\n\nArguments:\n  [button]                    button to press, defaults to left",
      "flags": {}
    },
    "mousewheel": {
      "help": "playwright-cli mousewheel <dx> <dy>\n\nScroll mouse wheel\n\nArguments:\n  <dx>                        x delta\n  <dy>                        y delta",
      "flags": {}
    },
    "screenshot": {
      "help": "playwright-cli screenshot [target]\n\nscreenshot of the current page or element\n\nArguments:\n  [target]                    exact target element reference from the page snapshot, or a unique element selector.\nOptions:\n  --filename                  file name to save the screenshot to. defaults to `page-{timestamp}.{png|jpeg}` if not specified.\n  --full-page                 when true, takes a screenshot of the full scrollable page, instead of the currently visible viewport.",
      "flags": {
        "filename": "string",
        "full-page": "boolean"
      }
    },
    "pdf": {
      "help": "playwright-cli pdf \n\nSave page as PDF\n\nOptions:\n  --filename                  file name to save the pdf to. defaults to `page-{timestamp}.pdf` if not specified.",
      "flags": {
        "filename": "string"
      }
    },
    "tab-list": {
      "help": "playwright-cli tab-list \n\nList all tabs\n",
      "flags": {}
    },
    "tab-new": {
      "help": "playwright-cli tab-new [url]\n\nCreate a new tab\n\nArguments:\n  [url]                       the url to navigate to in the new tab. if omitted, the new tab will be blank.",
      "flags": {}
    },
    "tab-close": {
      "help": "playwright-cli tab-close [index]\n\nClose a browser tab\n\nArguments:\n  [index]                     tab index. if omitted, current tab is closed.",
      "flags": {}
    },
    "tab-select": {
      "help": "playwright-cli tab-select <index>\n\nSelect a browser tab\n\nArguments:\n  <index>                     tab index",
      "flags": {}
    },
    "state-load": {
      "help": "playwright-cli state-load <filename>\n\nLoads browser storage (authentication) state from a file\n\nArguments:\n  <filename>                  file name to load the storage state from.",
      "flags": {}
    },
    "state-save": {
      "help": "playwright-cli state-save [filename]\n\nSaves the current storage (authentication) state to a file\n\nArguments:\n  [filename]                  file name to save the storage state to.",
      "flags": {}
    },
    "cookie-list": {
      "help": "playwright-cli cookie-list \n\nList all cookies (optionally filtered by domain/path)\n\nOptions:\n  --domain                    filter cookies by domain\n  --path                      filter cookies by path",
      "flags": {
        "domain": "string",
        "path": "string"
      }
    },
    "cookie-get": {
      "help": "playwright-cli cookie-get <name>\n\nGet a specific cookie by name\n\nArguments:\n  <name>                      cookie name",
      "flags": {}
    },
    "cookie-set": {
      "help": "playwright-cli cookie-set <name> <value>\n\nSet a cookie with optional flags\n\nArguments:\n  <name>                      cookie name\n  <value>                     cookie value\nOptions:\n  --domain                    cookie domain\n  --path                      cookie path\n  --expires                   cookie expiration as unix timestamp\n  --httpOnly                  whether the cookie is http only\n  --secure                    whether the cookie is secure\n  --sameSite                  cookie samesite attribute",
      "flags": {
        "domain": "string",
        "path": "string",
        "expires": "string",
        "httpOnly": "boolean",
        "secure": "boolean",
        "sameSite": "string"
      }
    },
    "cookie-delete": {
      "help": "playwright-cli cookie-delete <name>\n\nDelete a specific cookie\n\nArguments:\n  <name>                      cookie name",
      "flags": {}
    },
    "cookie-clear": {
      "help": "playwright-cli cookie-clear \n\nClear all cookies\n",
      "flags": {}
    },
    "localstorage-list": {
      "help": "playwright-cli localstorage-list \n\nList all localStorage key-value pairs\n",
      "flags": {}
    },
    "localstorage-get": {
      "help": "playwright-cli localstorage-get <key>\n\nGet a localStorage item by key\n\nArguments:\n  <key>                       key to get",
      "flags": {}
    },
    "localstorage-set": {
      "help": "playwright-cli localstorage-set <key> <value>\n\nSet a localStorage item\n\nArguments:\n  <key>                       key to set\n  <value>                     value to set",
      "flags": {}
    },
    "localstorage-delete": {
      "help": "playwright-cli localstorage-delete <key>\n\nDelete a localStorage item\n\nArguments:\n  <key>                       key to delete",
      "flags": {}
    },
    "localstorage-clear": {
      "help": "playwright-cli localstorage-clear \n\nClear all localStorage\n",
      "flags": {}
    },
    "sessionstorage-list": {
      "help": "playwright-cli sessionstorage-list \n\nList all sessionStorage key-value pairs\n",
      "flags": {}
    },
    "sessionstorage-get": {
      "help": "playwright-cli sessionstorage-get <key>\n\nGet a sessionStorage item by key\n\nArguments:\n  <key>                       key to get",
      "flags": {}
    },
    "sessionstorage-set": {
      "help": "playwright-cli sessionstorage-set <key> <value>\n\nSet a sessionStorage item\n\nArguments:\n  <key>                       key to set\n  <value>                     value to set",
      "flags": {}
    },
    "sessionstorage-delete": {
      "help": "playwright-cli sessionstorage-delete <key>\n\nDelete a sessionStorage item\n\nArguments:\n  <key>                       key to delete",
      "flags": {}
    },
    "sessionstorage-clear": {
      "help": "playwright-cli sessionstorage-clear \n\nClear all sessionStorage\n",
      "flags": {}
    },
    "route": {
      "help": "playwright-cli route <pattern>\n\nMock network requests matching a URL pattern\n\nArguments:\n  <pattern>                   url pattern to match (e.g., \"**/api/users\")\nOptions:\n  --status                    http status code (default: 200)\n  --body                      response body (text or json string)\n  --content-type              content-type header\n  --header                    header to add in \"name: value\" format (repeatable)\n  --remove-header             comma-separated header names to remove",
      "flags": {
        "status": "string",
        "body": "string",
        "content-type": "string",
        "header": "string",
        "remove-header": "string"
      }
    },
    "route-list": {
      "help": "playwright-cli route-list \n\nList all active network routes\n",
      "flags": {}
    },
    "unroute": {
      "help": "playwright-cli unroute [pattern]\n\nRemove routes matching a pattern (or all routes)\n\nArguments:\n  [pattern]                   url pattern to unroute (omit to remove all)",
      "flags": {}
    },
    "network-state-set": {
      "help": "playwright-cli network-state-set <state>\n\nSet the browser network state to online or offline\n\nArguments:\n  <state>                     set to \"offline\" to simulate offline mode, \"online\" to restore network connectivity",
      "flags": {}
    },
    "config-print": {
      "help": "playwright-cli config-print \n\nPrint the final resolved config after merging CLI options, environment variables and config file.\n",
      "flags": {}
    },
    "install": {
      "help": "playwright-cli install \n\nInitialize workspace\n\nOptions:\n  --skills                    install skills to \".claude\" (default) or \".agents\" dir",
      "flags": {
        "skills": "string"
      }
    },
    "install-browser": {
      "help": "playwright-cli install-browser [browser]\n\nInstall browser\n\nArguments:\n  [browser]                   browser to install\nOptions:\n  --with-deps                 install system dependencies for browsers\n  --dry-run                   do not execute installation, only print information\n  --list                      prints list of browsers from all playwright installations\n  --force                     force reinstall of already installed browsers\n  --only-shell                only install headless shell when installing chromium\n  --no-shell                  do not install chromium headless shell",
      "flags": {
        "with-deps": "boolean",
        "dry-run": "boolean",
        "list": "boolean",
        "force": "boolean",
        "only-shell": "boolean",
        "no-shell": "boolean"
      }
    },
    "network": {
      "help": "playwright-cli network \n\nList all network requests since loading the page\n\nOptions:\n  --static                    whether to include successful static resources like images, fonts, scripts, etc. defaults to false.\n  --request-body              whether to include request body. defaults to false.\n  --request-headers           whether to include request headers. defaults to false.\n  --filter                    only return requests whose url matches this regexp (e.g. \"/api/.*user\").\n  --clear                     whether to clear the network list",
      "flags": {
        "static": "boolean",
        "request-body": "boolean",
        "request-headers": "boolean",
        "filter": "string",
        "clear": "boolean"
      }
    },
    "tracing-start": {
      "help": "playwright-cli tracing-start \n\nStart trace recording\n",
      "flags": {}
    },
    "tracing-stop": {
      "help": "playwright-cli tracing-stop \n\nStop trace recording\n",
      "flags": {}
    },
    "video-start": {
      "help": "playwright-cli video-start [filename]\n\nStart video recording\n\nArguments:\n  [filename]                  filename to save the video.\nOptions:\n  --size                      video frame size, e.g. \"800x600\". if not specified, the size of the recorded video will fit 800x800.",
      "flags": {
        "size": "string"
      }
    },
    "video-stop": {
      "help": "playwright-cli video-stop \n\nStop video recording\n",
      "flags": {}
    },
    "video-chapter": {
      "help": "playwright-cli video-chapter <title>\n\nAdd a chapter marker to the video recording\n\nArguments:\n  <title>                     chapter title.\nOptions:\n  --description               chapter description.\n  --duration                  duration in milliseconds to show the chapter card.",
      "flags": {
        "description": "string",
        "duration": "string"
      }
    },
    "show": {
      "help": "playwright-cli show \n\nShow browser DevTools\n",
      "flags": {}
    },
    "pause-at": {
      "help": "playwright-cli pause-at <location>\n\nRun the test up to a specific location and pause there\n\nArguments:\n  <location>                  location to pause at. format is <file>:<line>, e.g. \"example.spec.ts:42\".",
      "flags": {}
    },
    "resume": {
      "help": "playwright-cli resume \n\nResume the test execution\n",
      "flags": {}
    },
    "step-over": {
      "help": "playwright-cli step-over \n\nStep over the next call in the test\n",
      "flags": {}
    },
    "list": {
      "help": "playwright-cli list \n\nList browser sessions\n\nOptions:\n  --all                       list all browser sessions across all workspaces",
      "flags": {
        "all": "boolean"
      }
    },
    "close-all": {
      "help": "playwright-cli close-all \n\nClose all browser sessions\n",
      "flags": {}
    },
    "kill-all": {
      "help": "playwright-cli kill-all \n\nForcefully kill all browser sessions (for stale/zombie processes)\n",
      "flags": {}
    },
    "tray": {
      "help": "playwright-cli tray \n\nRun tray\n",
      "flags": {}
    }
  },
  "booleanOptions": [
    "extension",
    "headed",
    "persistent",
    "submit",
    "clear",
    "full-page",
    "httpOnly",
    "secure",
    "with-deps",
    "dry-run",
    "list",
    "force",
    "only-shell",
    "no-shell",
    "static",
    "request-body",
    "request-headers",
    "all"
  ]
}