foxyz 1.0.4__tar.gz
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.
- foxyz-1.0.4/PKG-INFO +348 -0
- foxyz-1.0.4/README.md +306 -0
- foxyz-1.0.4/foxyz/__init__.py +13 -0
- foxyz-1.0.4/foxyz/__main__.py +1012 -0
- foxyz-1.0.4/foxyz/__version__.py +19 -0
- foxyz-1.0.4/foxyz/_warnings.py +44 -0
- foxyz-1.0.4/foxyz/addons.py +96 -0
- foxyz-1.0.4/foxyz/async_api.py +305 -0
- foxyz-1.0.4/foxyz/browserforge.yml +70 -0
- foxyz-1.0.4/foxyz/exceptions.py +196 -0
- foxyz-1.0.4/foxyz/fingerprint-presets.json +6033 -0
- foxyz-1.0.4/foxyz/fingerprints.py +358 -0
- foxyz-1.0.4/foxyz/font_profiles.json +125 -0
- foxyz-1.0.4/foxyz/fonts.json +11 -0
- foxyz-1.0.4/foxyz/geolocation.py +64 -0
- foxyz-1.0.4/foxyz/gui/__init__.py +16 -0
- foxyz-1.0.4/foxyz/gui/assets/SegUIVar.ttf +0 -0
- foxyz-1.0.4/foxyz/gui/assets/icon.ico +0 -0
- foxyz-1.0.4/foxyz/gui/assets/segmdl2.ttf +0 -0
- foxyz-1.0.4/foxyz/gui/backend.py +1054 -0
- foxyz-1.0.4/foxyz/gui/qml/main.qml +1326 -0
- foxyz-1.0.4/foxyz/ip.py +120 -0
- foxyz-1.0.4/foxyz/launchServer.js +40 -0
- foxyz-1.0.4/foxyz/locales.py +472 -0
- foxyz-1.0.4/foxyz/multiversion.py +745 -0
- foxyz-1.0.4/foxyz/page_init.py +269 -0
- foxyz-1.0.4/foxyz/pkgman.py +879 -0
- foxyz-1.0.4/foxyz/py.typed +1 -0
- foxyz-1.0.4/foxyz/repos.yml +67 -0
- foxyz-1.0.4/foxyz/server.py +72 -0
- foxyz-1.0.4/foxyz/setup.cfg +3 -0
- foxyz-1.0.4/foxyz/sync_api.py +232 -0
- foxyz-1.0.4/foxyz/territoryInfo.xml +2024 -0
- foxyz-1.0.4/foxyz/utils.py +1150 -0
- foxyz-1.0.4/foxyz/virtdisplay.py +146 -0
- foxyz-1.0.4/foxyz/voices.json +250 -0
- foxyz-1.0.4/foxyz/warnings.yml +51 -0
- foxyz-1.0.4/foxyz/webgl/__init__.py +3 -0
- foxyz-1.0.4/foxyz/webgl/sample.py +108 -0
- foxyz-1.0.4/foxyz/webgl/webgl_data.db +0 -0
- foxyz-1.0.4/pyproject.toml +54 -0
foxyz-1.0.4/PKG-INFO
ADDED
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: foxyz
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: Wrapper around Playwright to help launch Foxyz
|
|
5
|
+
License: MIT
|
|
6
|
+
Keywords: client,fingerprint,browser,scraping,injector,firefox,playwright
|
|
7
|
+
Author: AntifoxyzDev
|
|
8
|
+
Requires-Python: >=3.10,<4.0
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Topic :: Internet :: WWW/HTTP
|
|
17
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
+
Provides-Extra: geoip
|
|
20
|
+
Provides-Extra: gui
|
|
21
|
+
Requires-Dist: PySide6 ; extra == "gui"
|
|
22
|
+
Requires-Dist: browserforge (>=1.2.4,<2.0.0)
|
|
23
|
+
Requires-Dist: geoip2 ; extra == "geoip"
|
|
24
|
+
Requires-Dist: inquirer
|
|
25
|
+
Requires-Dist: language-tags
|
|
26
|
+
Requires-Dist: lxml
|
|
27
|
+
Requires-Dist: numpy
|
|
28
|
+
Requires-Dist: orjson
|
|
29
|
+
Requires-Dist: platformdirs
|
|
30
|
+
Requires-Dist: playwright
|
|
31
|
+
Requires-Dist: pysocks
|
|
32
|
+
Requires-Dist: pyyaml
|
|
33
|
+
Requires-Dist: requests
|
|
34
|
+
Requires-Dist: rich
|
|
35
|
+
Requires-Dist: rich-click
|
|
36
|
+
Requires-Dist: screeninfo
|
|
37
|
+
Requires-Dist: typing_extensions
|
|
38
|
+
Requires-Dist: ua_parser
|
|
39
|
+
Project-URL: Repository, https://github.com/foxyzcoding/foxyz
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
|
|
42
|
+
<div align="center">
|
|
43
|
+
|
|
44
|
+
# Foxyz Python Interface
|
|
45
|
+
|
|
46
|
+
#### Lightweight wrapper around the Playwright API to help launch Foxyz.
|
|
47
|
+
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
> [!NOTE]
|
|
51
|
+
> All the the latest documentation is avaliable [here](https://github.com/AntifoxyzDev/foxyz).
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## What is this?
|
|
56
|
+
|
|
57
|
+
This Python library wraps around Playwright's API to help automatically generate & inject unique device characteristics (OS, CPU info, navigator, fonts, headers, screen dimensions, viewport size, WebGL, addons, etc.) into Foxyz.
|
|
58
|
+
|
|
59
|
+
It uses [BrowserForge](https://github.com/daijro/browserforge) under the hood to generate fingerprints that mimic the statistical distribution of device characteristics in real-world traffic.
|
|
60
|
+
|
|
61
|
+
In addition, it will also calculate your target geolocation, timezone, and locale to avoid proxy protection ([see demo](https://i.imgur.com/UhSHfaV.png)).
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
66
|
+
|
|
67
|
+
First, install the `foxyz` package:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pip install -U foxyz[geoip]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The `geoip` parameter is optional, but heavily recommended if you are using proxies. It will download an extra dataset to determine the user's longitude, latitude, timezone, country, & locale.
|
|
74
|
+
|
|
75
|
+
Next, download the Foxyz browser:
|
|
76
|
+
|
|
77
|
+
**Windows**
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
foxyz fetch
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**MacOS & Linux**
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python3 -m foxyz fetch
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
To uninstall, run `foxyz remove`.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
# Installing multiple Foxyz versions & from other repos
|
|
94
|
+
|
|
95
|
+
## UI Manager
|
|
96
|
+
|
|
97
|
+
Manage installed browsers, active version, IP geolocation databases, and package info. Basically a Qt front end for the Python CLI tool.
|
|
98
|
+
|
|
99
|
+
More updates on it will be coming soon.
|
|
100
|
+
|
|
101
|
+
<img width="802" height="552" alt="ui-screenshot" src="https://github.com/user-attachments/assets/6668f8f0-5b08-4c36-bbea-fea4baeccc9c" />
|
|
102
|
+
|
|
103
|
+
<hr width=50>
|
|
104
|
+
|
|
105
|
+
To use the gui, install Foxyz with the `[gui]` extra:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
pip install 'foxyz[gui]'
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
To launch:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
foxyz gui
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## CLI Mananger
|
|
120
|
+
|
|
121
|
+
#### Demonstration
|
|
122
|
+
|
|
123
|
+
https://github.com/user-attachments/assets/992b1830-6b21-4024-9165-728854df1473
|
|
124
|
+
|
|
125
|
+
<details>
|
|
126
|
+
<summary>See help message</summary>
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
$ python -m foxyz --help
|
|
130
|
+
|
|
131
|
+
Usage: python -m foxyz [OPTIONS] COMMAND [ARGS]...
|
|
132
|
+
|
|
133
|
+
╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
|
|
134
|
+
│ --help Show this message and exit. │
|
|
135
|
+
╰───────────────────────────────────────────────────────────────────────────────────────╯
|
|
136
|
+
╭─ Commands ────────────────────────────────────────────────────────────────────────────╮
|
|
137
|
+
│ active Print the current active version │
|
|
138
|
+
│ fetch Install the active version, or a specific version │
|
|
139
|
+
│ gui Launch the Foxyz Manager GUI (requires PySide6) │
|
|
140
|
+
│ list List Foxyz versions │
|
|
141
|
+
│ path Print the install directory path │
|
|
142
|
+
│ remove Remove downloaded data. By default, this removes everything. │
|
|
143
|
+
│ Pass --select to pick a browser version to remove. │
|
|
144
|
+
│ server Launch a Playwright server │
|
|
145
|
+
│ set Set the active Foxyz version to use & fetch. │
|
|
146
|
+
│ By default, this opens an interactive selector for versions and settings. │
|
|
147
|
+
│ You can also pass a specifier to activate directly: │
|
|
148
|
+
│ Pin version: │
|
|
149
|
+
│ foxyz set official/stable/134.0.2-beta.20 │
|
|
150
|
+
│ Automatically find latest in a channel source: │
|
|
151
|
+
│ foxyz set official/stable │
|
|
152
|
+
│ sync Sync available versions from remote repositories │
|
|
153
|
+
│ test Open the Playwright inspector │
|
|
154
|
+
│ version Display version, package, browser, and storage info │
|
|
155
|
+
╰───────────────────────────────────────────────────────────────────────────────────────╯
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
</details>
|
|
159
|
+
|
|
160
|
+
### `sync`
|
|
161
|
+
|
|
162
|
+
Pull a list of release assets from GitHub.
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
> foxyz sync
|
|
166
|
+
Syncing repositories...
|
|
167
|
+
Official... 24 versions
|
|
168
|
+
CoryKing... 2 versions
|
|
169
|
+
|
|
170
|
+
Synced 26 versions from 2 repos.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
<hr width=50>
|
|
174
|
+
|
|
175
|
+
### `set`
|
|
176
|
+
|
|
177
|
+
Choose a version channel or pin a specific version. Can also be called with a specifier to activate directly.
|
|
178
|
+
|
|
179
|
+
Interactive selector:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
> foxyz set
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
You can also pass a specifier to pin a specific version or choose a channel to follow directly. This will pull the latest stable version from the official repo on `foxyz fetch`.
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
> foxyz set official/stable # Default setting
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Follow latest prerelease version from the official repo, if applicable:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
> foxyz set official/prerelease
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Pin a specific version:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
> foxyz set official/stable/134.0.2-beta.20
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
<hr width=50>
|
|
204
|
+
|
|
205
|
+
### `active`
|
|
206
|
+
|
|
207
|
+
Prints the current active version string:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
> foxyz active # Default channel is active
|
|
211
|
+
official/stable
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
> foxyz set coryking/stable/142.0.1-fork.26
|
|
216
|
+
Pinned: coryking/stable/142.0.1-fork.26
|
|
217
|
+
Run 'foxyz fetch' to install.
|
|
218
|
+
|
|
219
|
+
> foxyz active # A specific version is pinned
|
|
220
|
+
coryking/stable/142.0.1-fork.26 (not installed)
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
<hr width=50>
|
|
224
|
+
|
|
225
|
+
### `fetch`
|
|
226
|
+
|
|
227
|
+
Install the latest version from the active channel. By default, this is official/stable. This will also automatically sync repository assets.
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
> foxyz fetch # Install the latest in the channel
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
To download the latest from a different channel, or pin a version:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
> foxyz set coryking/stable
|
|
237
|
+
> foxyz fetch # Will download the latest release from CoryKing's repo for now on
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Or pass in the identifier to download directly without activating it:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
> foxyz fetch official/stable/135.0-beta.25 # Install a specific version
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
<hr width=50>
|
|
247
|
+
|
|
248
|
+
### `list`
|
|
249
|
+
|
|
250
|
+
List installed or all available Foxyz versions as a tree.
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
> foxyz list # show installed versions
|
|
254
|
+
> foxyz list all # show all available versions from synced repos
|
|
255
|
+
> foxyz list --path # show full install paths
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
<hr width=50>
|
|
259
|
+
|
|
260
|
+
### `remove`
|
|
261
|
+
|
|
262
|
+
By default, removes the entire foxyz data directory.
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
> foxyz remove
|
|
266
|
+
> foxyz remove -y # skip confirmation prompt
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Remove a specific version:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
> foxyz remove official/stable/134.0.2-beta.20
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Interactively select a version to remove:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
> foxyz remove --select
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
<hr width=50>
|
|
282
|
+
|
|
283
|
+
### `version`
|
|
284
|
+
|
|
285
|
+
Display the Python package version, active browser version, channel, and update status.
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
> foxyz version
|
|
289
|
+
Python Packages
|
|
290
|
+
Foxyz v0.5.0
|
|
291
|
+
Browserforge v1.2.4
|
|
292
|
+
Apify Fingerprints v0.10.0
|
|
293
|
+
Playwright v1.57.1.dev0+g732639b35.d20251217
|
|
294
|
+
Browser
|
|
295
|
+
Active official/stable/135.0.1-beta.24
|
|
296
|
+
Current browser v135.0.1-beta.24
|
|
297
|
+
Installed Yes
|
|
298
|
+
Latest in official/stable? Yes
|
|
299
|
+
Last Sync 2026-03-07 00:23
|
|
300
|
+
GeoIP
|
|
301
|
+
Database MaxMind GeoLite2
|
|
302
|
+
Updated 2026-03-07 00:24
|
|
303
|
+
Storage
|
|
304
|
+
Install path /home/name/.cache/foxyz
|
|
305
|
+
Browser(s) directory size 1.2 GB
|
|
306
|
+
GeoIP database size 40.7 MB
|
|
307
|
+
Config file /home/name/.cache/foxyz/config.json
|
|
308
|
+
Repo cache /home/name/.cache/foxyz/repo_cache.json
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
<hr width=50>
|
|
312
|
+
|
|
313
|
+
### `path`
|
|
314
|
+
|
|
315
|
+
Print the install directory path.
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
> foxyz path
|
|
319
|
+
/home/name/.cache/foxyz
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
<hr width=50>
|
|
323
|
+
|
|
324
|
+
### `test`
|
|
325
|
+
|
|
326
|
+
Open Foxyz with the Playwright inspector for debugging.
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
> foxyz test
|
|
330
|
+
> foxyz test https://example.com
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
<hr width=50>
|
|
334
|
+
|
|
335
|
+
### `server`
|
|
336
|
+
|
|
337
|
+
Launch a remote Playwright server.
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
> foxyz server
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Usage
|
|
346
|
+
|
|
347
|
+
All of the latest stable documentation is avaliable at [foxyz.com/python](https://github.com/AntifoxyzDev/foxyz).
|
|
348
|
+
|
foxyz-1.0.4/README.md
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# Foxyz Python Interface
|
|
4
|
+
|
|
5
|
+
#### Lightweight wrapper around the Playwright API to help launch Foxyz.
|
|
6
|
+
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
> [!NOTE]
|
|
10
|
+
> All the the latest documentation is avaliable [here](https://github.com/AntifoxyzDev/foxyz).
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## What is this?
|
|
15
|
+
|
|
16
|
+
This Python library wraps around Playwright's API to help automatically generate & inject unique device characteristics (OS, CPU info, navigator, fonts, headers, screen dimensions, viewport size, WebGL, addons, etc.) into Foxyz.
|
|
17
|
+
|
|
18
|
+
It uses [BrowserForge](https://github.com/daijro/browserforge) under the hood to generate fingerprints that mimic the statistical distribution of device characteristics in real-world traffic.
|
|
19
|
+
|
|
20
|
+
In addition, it will also calculate your target geolocation, timezone, and locale to avoid proxy protection ([see demo](https://i.imgur.com/UhSHfaV.png)).
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Installation
|
|
25
|
+
|
|
26
|
+
First, install the `foxyz` package:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install -U foxyz[geoip]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The `geoip` parameter is optional, but heavily recommended if you are using proxies. It will download an extra dataset to determine the user's longitude, latitude, timezone, country, & locale.
|
|
33
|
+
|
|
34
|
+
Next, download the Foxyz browser:
|
|
35
|
+
|
|
36
|
+
**Windows**
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
foxyz fetch
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**MacOS & Linux**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
python3 -m foxyz fetch
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
To uninstall, run `foxyz remove`.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# Installing multiple Foxyz versions & from other repos
|
|
53
|
+
|
|
54
|
+
## UI Manager
|
|
55
|
+
|
|
56
|
+
Manage installed browsers, active version, IP geolocation databases, and package info. Basically a Qt front end for the Python CLI tool.
|
|
57
|
+
|
|
58
|
+
More updates on it will be coming soon.
|
|
59
|
+
|
|
60
|
+
<img width="802" height="552" alt="ui-screenshot" src="https://github.com/user-attachments/assets/6668f8f0-5b08-4c36-bbea-fea4baeccc9c" />
|
|
61
|
+
|
|
62
|
+
<hr width=50>
|
|
63
|
+
|
|
64
|
+
To use the gui, install Foxyz with the `[gui]` extra:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install 'foxyz[gui]'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
To launch:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
foxyz gui
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## CLI Mananger
|
|
79
|
+
|
|
80
|
+
#### Demonstration
|
|
81
|
+
|
|
82
|
+
https://github.com/user-attachments/assets/992b1830-6b21-4024-9165-728854df1473
|
|
83
|
+
|
|
84
|
+
<details>
|
|
85
|
+
<summary>See help message</summary>
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
$ python -m foxyz --help
|
|
89
|
+
|
|
90
|
+
Usage: python -m foxyz [OPTIONS] COMMAND [ARGS]...
|
|
91
|
+
|
|
92
|
+
╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
|
|
93
|
+
│ --help Show this message and exit. │
|
|
94
|
+
╰───────────────────────────────────────────────────────────────────────────────────────╯
|
|
95
|
+
╭─ Commands ────────────────────────────────────────────────────────────────────────────╮
|
|
96
|
+
│ active Print the current active version │
|
|
97
|
+
│ fetch Install the active version, or a specific version │
|
|
98
|
+
│ gui Launch the Foxyz Manager GUI (requires PySide6) │
|
|
99
|
+
│ list List Foxyz versions │
|
|
100
|
+
│ path Print the install directory path │
|
|
101
|
+
│ remove Remove downloaded data. By default, this removes everything. │
|
|
102
|
+
│ Pass --select to pick a browser version to remove. │
|
|
103
|
+
│ server Launch a Playwright server │
|
|
104
|
+
│ set Set the active Foxyz version to use & fetch. │
|
|
105
|
+
│ By default, this opens an interactive selector for versions and settings. │
|
|
106
|
+
│ You can also pass a specifier to activate directly: │
|
|
107
|
+
│ Pin version: │
|
|
108
|
+
│ foxyz set official/stable/134.0.2-beta.20 │
|
|
109
|
+
│ Automatically find latest in a channel source: │
|
|
110
|
+
│ foxyz set official/stable │
|
|
111
|
+
│ sync Sync available versions from remote repositories │
|
|
112
|
+
│ test Open the Playwright inspector │
|
|
113
|
+
│ version Display version, package, browser, and storage info │
|
|
114
|
+
╰───────────────────────────────────────────────────────────────────────────────────────╯
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
</details>
|
|
118
|
+
|
|
119
|
+
### `sync`
|
|
120
|
+
|
|
121
|
+
Pull a list of release assets from GitHub.
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
> foxyz sync
|
|
125
|
+
Syncing repositories...
|
|
126
|
+
Official... 24 versions
|
|
127
|
+
CoryKing... 2 versions
|
|
128
|
+
|
|
129
|
+
Synced 26 versions from 2 repos.
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
<hr width=50>
|
|
133
|
+
|
|
134
|
+
### `set`
|
|
135
|
+
|
|
136
|
+
Choose a version channel or pin a specific version. Can also be called with a specifier to activate directly.
|
|
137
|
+
|
|
138
|
+
Interactive selector:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
> foxyz set
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
You can also pass a specifier to pin a specific version or choose a channel to follow directly. This will pull the latest stable version from the official repo on `foxyz fetch`.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
> foxyz set official/stable # Default setting
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Follow latest prerelease version from the official repo, if applicable:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
> foxyz set official/prerelease
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Pin a specific version:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
> foxyz set official/stable/134.0.2-beta.20
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
<hr width=50>
|
|
163
|
+
|
|
164
|
+
### `active`
|
|
165
|
+
|
|
166
|
+
Prints the current active version string:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
> foxyz active # Default channel is active
|
|
170
|
+
official/stable
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
> foxyz set coryking/stable/142.0.1-fork.26
|
|
175
|
+
Pinned: coryking/stable/142.0.1-fork.26
|
|
176
|
+
Run 'foxyz fetch' to install.
|
|
177
|
+
|
|
178
|
+
> foxyz active # A specific version is pinned
|
|
179
|
+
coryking/stable/142.0.1-fork.26 (not installed)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
<hr width=50>
|
|
183
|
+
|
|
184
|
+
### `fetch`
|
|
185
|
+
|
|
186
|
+
Install the latest version from the active channel. By default, this is official/stable. This will also automatically sync repository assets.
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
> foxyz fetch # Install the latest in the channel
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
To download the latest from a different channel, or pin a version:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
> foxyz set coryking/stable
|
|
196
|
+
> foxyz fetch # Will download the latest release from CoryKing's repo for now on
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Or pass in the identifier to download directly without activating it:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
> foxyz fetch official/stable/135.0-beta.25 # Install a specific version
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
<hr width=50>
|
|
206
|
+
|
|
207
|
+
### `list`
|
|
208
|
+
|
|
209
|
+
List installed or all available Foxyz versions as a tree.
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
> foxyz list # show installed versions
|
|
213
|
+
> foxyz list all # show all available versions from synced repos
|
|
214
|
+
> foxyz list --path # show full install paths
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
<hr width=50>
|
|
218
|
+
|
|
219
|
+
### `remove`
|
|
220
|
+
|
|
221
|
+
By default, removes the entire foxyz data directory.
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
> foxyz remove
|
|
225
|
+
> foxyz remove -y # skip confirmation prompt
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Remove a specific version:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
> foxyz remove official/stable/134.0.2-beta.20
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Interactively select a version to remove:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
> foxyz remove --select
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
<hr width=50>
|
|
241
|
+
|
|
242
|
+
### `version`
|
|
243
|
+
|
|
244
|
+
Display the Python package version, active browser version, channel, and update status.
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
> foxyz version
|
|
248
|
+
Python Packages
|
|
249
|
+
Foxyz v0.5.0
|
|
250
|
+
Browserforge v1.2.4
|
|
251
|
+
Apify Fingerprints v0.10.0
|
|
252
|
+
Playwright v1.57.1.dev0+g732639b35.d20251217
|
|
253
|
+
Browser
|
|
254
|
+
Active official/stable/135.0.1-beta.24
|
|
255
|
+
Current browser v135.0.1-beta.24
|
|
256
|
+
Installed Yes
|
|
257
|
+
Latest in official/stable? Yes
|
|
258
|
+
Last Sync 2026-03-07 00:23
|
|
259
|
+
GeoIP
|
|
260
|
+
Database MaxMind GeoLite2
|
|
261
|
+
Updated 2026-03-07 00:24
|
|
262
|
+
Storage
|
|
263
|
+
Install path /home/name/.cache/foxyz
|
|
264
|
+
Browser(s) directory size 1.2 GB
|
|
265
|
+
GeoIP database size 40.7 MB
|
|
266
|
+
Config file /home/name/.cache/foxyz/config.json
|
|
267
|
+
Repo cache /home/name/.cache/foxyz/repo_cache.json
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
<hr width=50>
|
|
271
|
+
|
|
272
|
+
### `path`
|
|
273
|
+
|
|
274
|
+
Print the install directory path.
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
> foxyz path
|
|
278
|
+
/home/name/.cache/foxyz
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
<hr width=50>
|
|
282
|
+
|
|
283
|
+
### `test`
|
|
284
|
+
|
|
285
|
+
Open Foxyz with the Playwright inspector for debugging.
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
> foxyz test
|
|
289
|
+
> foxyz test https://example.com
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
<hr width=50>
|
|
293
|
+
|
|
294
|
+
### `server`
|
|
295
|
+
|
|
296
|
+
Launch a remote Playwright server.
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
> foxyz server
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Usage
|
|
305
|
+
|
|
306
|
+
All of the latest stable documentation is avaliable at [foxyz.com/python](https://github.com/AntifoxyzDev/foxyz).
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from .addons import DefaultAddons
|
|
2
|
+
from .async_api import AsyncFoxyz, AsyncNewBrowser
|
|
3
|
+
from .sync_api import Foxyz, NewBrowser
|
|
4
|
+
from .utils import launch_options
|
|
5
|
+
|
|
6
|
+
__all__ = [
|
|
7
|
+
"Foxyz",
|
|
8
|
+
"NewBrowser",
|
|
9
|
+
"AsyncFoxyz",
|
|
10
|
+
"AsyncNewBrowser",
|
|
11
|
+
"DefaultAddons",
|
|
12
|
+
"launch_options",
|
|
13
|
+
]
|