{ "global": "Usage: playwright-cli [args] [options]\nUsage: playwright-cli -s= [args] [options]\n\nCore:\n open [url] open the browser\n attach attach to a running playwright browser\n close close the browser\n goto navigate to a url\n type type text into editable element\n click [button] perform click on a web page\n dblclick [button] perform double click on a web page\n fill fill text into editable element\n drag perform drag and drop between two elements\n hover hover over element on page\n select select an option in a dropdown\n upload upload one or multiple files\n check check a checkbox or radio button\n uncheck uncheck a checkbox or radio button\n snapshot [element] capture page snapshot to obtain element ref\n eval [element] evaluate javascript expression on page or element\n dialog-accept [prompt] accept a dialog\n dialog-dismiss dismiss a dialog\n resize 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 press a key on the keyboard, `a`, `arrowleft`\n keydown press a key down on the keyboard\n keyup press a key up on the keyboard\n\nMouse:\n mousemove move mouse to a given position\n mousedown [button] press mouse down\n mouseup [button] press mouse up\n mousewheel 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 select a browser tab\n\nStorage:\n state-load 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 get a specific cookie by name\n cookie-set set a cookie with optional flags\n cookie-delete delete a specific cookie\n cookie-clear clear all cookies\n localstorage-list list all localstorage key-value pairs\n localstorage-get get a localstorage item by key\n localstorage-set set a localstorage item\n localstorage-delete delete a localstorage item\n localstorage-clear clear all localstorage\n sessionstorage-list list all sessionstorage key-value pairs\n sessionstorage-get get a sessionstorage item by key\n sessionstorage-set set a sessionstorage item\n sessionstorage-delete delete a sessionstorage item\n sessionstorage-clear clear all sessionstorage\n\nNetwork:\n route 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 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 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" ] }