patchright-cli 0.9.1__py3-none-any.whl → 0.10.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- patchright_cli/__init__.py +1 -1
- patchright_cli/__main__.py +1 -1
- patchright_cli/_entry.py +26 -0
- patchright_cli/_skills/patchright-cli/SKILL.md +169 -39
- patchright_cli/agent_hooks.py +470 -0
- patchright_cli/cli.py +1288 -284
- patchright_cli/daemon.py +173 -58
- patchright_cli/daemon_pid.py +168 -0
- patchright_cli/ref_registry.py +7 -9
- patchright_cli/toon.py +281 -0
- {patchright_cli-0.9.1.dist-info → patchright_cli-0.10.0.dist-info}/METADATA +70 -8
- patchright_cli-0.10.0.dist-info/RECORD +25 -0
- patchright_cli-0.10.0.dist-info/entry_points.txt +2 -0
- patchright_cli-0.9.1.dist-info/RECORD +0 -21
- patchright_cli-0.9.1.dist-info/entry_points.txt +0 -2
- {patchright_cli-0.9.1.dist-info → patchright_cli-0.10.0.dist-info}/WHEEL +0 -0
- {patchright_cli-0.9.1.dist-info → patchright_cli-0.10.0.dist-info}/licenses/LICENSE +0 -0
patchright_cli/__init__.py
CHANGED
patchright_cli/__main__.py
CHANGED
patchright_cli/_entry.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Console-script entry point with a `--version` fast path.
|
|
2
|
+
|
|
3
|
+
Agents probe `--version` constantly, so a bare version flag is answered here
|
|
4
|
+
from the leaf `patchright_cli/__init__.py`, before cli.py pulls in click and
|
|
5
|
+
the daemon (and with it Patchright). Everything else goes to cli.main().
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import sys
|
|
9
|
+
|
|
10
|
+
_VERSION_FLAGS = ("-v", "-V", "--version")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def main() -> None:
|
|
14
|
+
if len(sys.argv) == 2 and sys.argv[1] in _VERSION_FLAGS:
|
|
15
|
+
from patchright_cli import __version__
|
|
16
|
+
|
|
17
|
+
sys.stdout.write(__version__ + "\n")
|
|
18
|
+
return
|
|
19
|
+
|
|
20
|
+
from patchright_cli.cli import main as cli_main
|
|
21
|
+
|
|
22
|
+
cli_main()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
if __name__ == "__main__":
|
|
26
|
+
main()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: patchright-cli
|
|
3
|
-
description: Anti-detect browser automation using Patchright (undetected Playwright fork). Use when you need to interact with websites that block regular Playwright/Chrome DevTools, such as Akamai/Cloudflare-protected sites.
|
|
3
|
+
description: Anti-detect browser automation using Patchright (undetected Playwright fork). Use when you need to interact with websites that block regular Playwright/Chrome DevTools, such as Akamai/Cloudflare-protected sites. Uses playwright-cli style commands (not a drop-in replacement) but bypasses bot detection. Use this skill whenever the user asks to automate a browser, scrape a website, fill forms, log into sites, take screenshots, or do anything involving Chrome automation — especially if the target site has bot protection like Cloudflare or Akamai.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Anti-Detect Browser Automation with patchright-cli
|
|
@@ -101,6 +101,8 @@ These go before the command:
|
|
|
101
101
|
--show-port=9322 # Dashboard port (default: 9322)
|
|
102
102
|
--raw # Strip page/snapshot decorations from output
|
|
103
103
|
--json # Wrap full response as JSON ({success, output, ...})
|
|
104
|
+
--toon # TOON for results with structured data (list, tab-list, cookie-list,
|
|
105
|
+
# find, console, network, url, title, ...); others print as usual
|
|
104
106
|
```
|
|
105
107
|
|
|
106
108
|
These go *after* the command instead:
|
|
@@ -235,14 +237,6 @@ press <key> # Keypress (Enter, ArrowDown, etc.)
|
|
|
235
237
|
keydown <key> / keyup <key> # Hold/release key
|
|
236
238
|
```
|
|
237
239
|
|
|
238
|
-
### Mouse
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
mousemove <x> <y> # Move to coordinates
|
|
242
|
-
mousedown / mouseup # Button down/up
|
|
243
|
-
mousewheel <dx> <dy> # Scroll wheel
|
|
244
|
-
```
|
|
245
|
-
|
|
246
240
|
### Tabs
|
|
247
241
|
|
|
248
242
|
```bash
|
|
@@ -352,36 +346,172 @@ set-media print # screen | print
|
|
|
352
346
|
clear-media
|
|
353
347
|
```
|
|
354
348
|
|
|
355
|
-
###
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
349
|
+
### Network mocking
|
|
350
|
+
|
|
351
|
+
`route "<pattern>"` mocks matching requests (`--status`, `--body`,
|
|
352
|
+
`--content-type`, `--header`); `route-list` and `unroute` manage them, and
|
|
353
|
+
`network-state-set offline|online` simulates connectivity.
|
|
354
|
+
|
|
355
|
+
## Command reference
|
|
356
|
+
|
|
357
|
+
Every command, its flags and what it does. `patchright-cli <command> --help`
|
|
358
|
+
shows one command's flag defaults and examples; `patchright-cli` with no
|
|
359
|
+
arguments shows whether the daemon is up and which sessions are open.
|
|
360
|
+
|
|
361
|
+
<!-- BEGIN GENERATED: commands (scripts/gen_skill.py from COMMAND_SPECS; do not edit by hand) -->
|
|
362
|
+
```bash
|
|
363
|
+
# Core
|
|
364
|
+
open [url] [--block-networks] [--headed] # Open browser (starts daemon if needed)
|
|
365
|
+
attach --cdp=<url> [--cdp-headers] [--cdp-timeout] [--block-networks] # Attach to running Chrome via CDP
|
|
366
|
+
goto <url> # Navigate to URL
|
|
367
|
+
click <ref> [button] [--modifiers] # Click element
|
|
368
|
+
dblclick <ref> [button] [--modifiers] # Double-click element
|
|
369
|
+
fill <ref> <value> [--submit] # Fill text into element
|
|
370
|
+
type <text> [--submit] # Type text via keyboard
|
|
371
|
+
hover <ref> # Hover over element
|
|
372
|
+
select <ref> <value> # Select dropdown option
|
|
373
|
+
check <ref> # Check checkbox/radio
|
|
374
|
+
uncheck <ref> # Uncheck checkbox/radio
|
|
375
|
+
snapshot [ref] [--selector] [--filename] [--depth] [--interactive] [--boxes] # Take accessibility snapshot
|
|
376
|
+
find <text> [--regex] [--all] [--limit] # Search the snapshot for matching elements
|
|
377
|
+
eval <expr> [ref] [--file] # Evaluate JavaScript (expression, --file or stdin)
|
|
378
|
+
text <ref|selector> # Get text content of element
|
|
379
|
+
screenshot [ref] [--full-page] [--hires] [--filename] # Save screenshot
|
|
380
|
+
drag <from> <to> # Drag element to target
|
|
381
|
+
drop <ref> [--path] [--data] # Drop file/data onto element
|
|
382
|
+
close # Close browser session (or the --tab it is addressed to)
|
|
383
|
+
detach # Detach attached session (keep external browser running)
|
|
384
|
+
|
|
385
|
+
# Navigation
|
|
386
|
+
go-back # Go back
|
|
387
|
+
go-forward # Go forward
|
|
388
|
+
reload # Reload page
|
|
389
|
+
url # Print current URL
|
|
390
|
+
title # Print page title
|
|
391
|
+
|
|
392
|
+
# Keyboard
|
|
393
|
+
press <key> # Press key
|
|
394
|
+
keydown <key> # Key down
|
|
395
|
+
keyup <key> # Key up
|
|
396
|
+
|
|
397
|
+
# Mouse
|
|
398
|
+
mousemove <x> <y> # Move mouse
|
|
399
|
+
mousedown [button] # Mouse button down
|
|
400
|
+
mouseup [button] # Mouse button up
|
|
401
|
+
mousewheel <dx> <dy> # Scroll mouse wheel
|
|
402
|
+
|
|
403
|
+
# Scroll & Wait
|
|
404
|
+
scroll <dx> <dy> # Scroll by pixel offset
|
|
405
|
+
scroll-to <ref> # Scroll element into view
|
|
406
|
+
wait [ms] [--url] # Wait for milliseconds, or for a URL
|
|
407
|
+
wait-for <ref> [--state] # Wait for element to reach a state
|
|
408
|
+
|
|
409
|
+
# Tabs
|
|
410
|
+
tab-list # List tabs
|
|
411
|
+
tab-new [url] # Open new tab
|
|
412
|
+
tab-close [index] # Close tab
|
|
413
|
+
tab-select <index> # Switch to tab (default tab only)
|
|
414
|
+
|
|
415
|
+
# Dialog
|
|
416
|
+
dialog-accept [text] # Accept next dialog
|
|
417
|
+
dialog-dismiss # Dismiss next dialog
|
|
418
|
+
|
|
419
|
+
# Upload/Resize
|
|
420
|
+
upload <file> [ref] # Upload file to input
|
|
421
|
+
resize <w> <h> # Resize viewport
|
|
422
|
+
|
|
423
|
+
# Emulation
|
|
424
|
+
set-color-scheme <dark|light|no-preference> # Emulate prefers-color-scheme
|
|
425
|
+
clear-color-scheme # Stop emulating prefers-color-scheme
|
|
426
|
+
set-reduced-motion <reduce|no-preference> # Emulate prefers-reduced-motion
|
|
427
|
+
clear-reduced-motion # Stop emulating prefers-reduced-motion
|
|
428
|
+
set-forced-colors <active|none> # Emulate forced-colors
|
|
429
|
+
clear-forced-colors # Stop emulating forced-colors
|
|
430
|
+
set-contrast <more|no-preference> # Emulate prefers-contrast
|
|
431
|
+
clear-contrast # Stop emulating prefers-contrast
|
|
432
|
+
set-media <screen|print> # Emulate CSS media type
|
|
433
|
+
clear-media # Stop emulating the CSS media type
|
|
434
|
+
|
|
435
|
+
# State
|
|
436
|
+
state-save [file] # Save cookies+storage to JSON
|
|
437
|
+
state-load <file> # Load saved state
|
|
438
|
+
|
|
439
|
+
# Storage
|
|
440
|
+
cookie-list [--domain] [--path] # List cookies
|
|
441
|
+
cookie-get <name> # Get cookie
|
|
442
|
+
cookie-set <name> <value> [--domain] [--path] [--expires] [--httpOnly] [--secure] [--sameSite] # Set cookie
|
|
443
|
+
cookie-delete <name> # Delete cookie
|
|
444
|
+
cookie-clear # Clear all cookies
|
|
445
|
+
cookie-import <file> # Import cookies from JSON
|
|
446
|
+
cookie-export [file] # Export cookies to JSON
|
|
447
|
+
localstorage-list # List localStorage
|
|
448
|
+
localstorage-get <key> # Get localStorage item
|
|
449
|
+
localstorage-set <key> <value> # Set localStorage item
|
|
450
|
+
localstorage-delete <key> # Delete localStorage item
|
|
451
|
+
localstorage-clear # Clear localStorage
|
|
452
|
+
sessionstorage-list # List sessionStorage
|
|
453
|
+
sessionstorage-get <key> # Get sessionStorage item
|
|
454
|
+
sessionstorage-set <key> <value> # Set sessionStorage item
|
|
455
|
+
sessionstorage-delete <key> # Delete sessionStorage item
|
|
456
|
+
sessionstorage-clear # Clear sessionStorage
|
|
457
|
+
|
|
458
|
+
# Permissions
|
|
459
|
+
grant-permissions <perms> [--origin] # Grant comma-separated permissions
|
|
460
|
+
|
|
461
|
+
# Route
|
|
462
|
+
route <pattern> [--status] [--body] [--content-type] [--header] [--remove-header] # Mock requests matching a URL pattern
|
|
463
|
+
route-list # List active routes
|
|
464
|
+
unroute [pattern] # Remove route(s)
|
|
465
|
+
network-state-set <online|offline> # Set online/offline
|
|
466
|
+
|
|
467
|
+
# Code
|
|
468
|
+
run-code <code> [--file] # Run raw JS in page context (code, --file or stdin)
|
|
469
|
+
|
|
470
|
+
# Tracing
|
|
471
|
+
tracing-start # Start Playwright tracing
|
|
472
|
+
tracing-stop # Stop tracing and save
|
|
473
|
+
|
|
474
|
+
# Video
|
|
475
|
+
video-start # Start video recording
|
|
476
|
+
video-stop [--filename] # Stop recording and save
|
|
477
|
+
video-chapter <title> # Add chapter marker to video
|
|
478
|
+
video-show-actions [--duration] [--position] # Annotate actions in the recording
|
|
479
|
+
video-hide-actions # Stop annotating actions
|
|
480
|
+
|
|
481
|
+
# PDF
|
|
482
|
+
pdf [--filename] # Save page as PDF
|
|
483
|
+
|
|
484
|
+
# DevTools
|
|
485
|
+
console [level] [--clear] # Show console messages
|
|
486
|
+
network [--static] [--clear] # Show network requests
|
|
487
|
+
requests [--static] [--clear] # Alias for `network`
|
|
488
|
+
request <id> [--body] # Show full detail for a network request
|
|
489
|
+
generate-locator <ref> # Emit Playwright locator expression for a ref
|
|
490
|
+
highlight <ref> [--style] [--hide] # Show overlay on element
|
|
491
|
+
|
|
492
|
+
# Session
|
|
493
|
+
list # List sessions
|
|
494
|
+
close-all # Close all sessions
|
|
495
|
+
kill-all [--force] # Kill all sessions and stop the daemon
|
|
496
|
+
delete-data # Delete this session's profile
|
|
497
|
+
|
|
498
|
+
# Profiles
|
|
499
|
+
profile-list # List profiles, their size and which session uses them
|
|
500
|
+
profile-delete <name> # Delete a named profile
|
|
501
|
+
|
|
502
|
+
# Dashboard
|
|
503
|
+
show [--annotate] [--wait] [--no-open] # Open session dashboard
|
|
504
|
+
|
|
505
|
+
# Codegen
|
|
506
|
+
codegen [file] # Start recording interactions
|
|
507
|
+
codegen-stop [file] # Stop recording and save script
|
|
508
|
+
|
|
509
|
+
# Setup
|
|
510
|
+
install --skills | --hooks [--uninstall] # Install agent skill files, or session-start hooks
|
|
511
|
+
mcp [--http] [--host=HOST] [--port=N] # Start MCP server (stdio by default)
|
|
512
|
+
daemon-info --json # Show daemon client protocol and token path without starting it
|
|
513
|
+
```
|
|
514
|
+
<!-- END GENERATED -->
|
|
385
515
|
|
|
386
516
|
---
|
|
387
517
|
|