Skip to main content

Wrapper around Playwright to help launch Foxyz

Project description

Foxyz Python Interface

Lightweight wrapper around the Playwright API to help launch Foxyz.

[!NOTE] All the the latest documentation is avaliable here.


What is this?

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.

It uses BrowserForge under the hood to generate fingerprints that mimic the statistical distribution of device characteristics in real-world traffic.

In addition, it will also calculate your target geolocation, timezone, and locale to avoid proxy protection (see demo).


Installation

First, install the foxyz package:

pip install -U foxyz[geoip]

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.

Next, download the Foxyz browser:

Windows

foxyz fetch

MacOS & Linux

python3 -m foxyz fetch

To uninstall, run foxyz remove.


Installing multiple Foxyz versions & from other repos

UI Manager

Manage installed browsers, active version, IP geolocation databases, and package info. Basically a Qt front end for the Python CLI tool.

More updates on it will be coming soon.

ui-screenshot

To use the gui, install Foxyz with the [gui] extra:

pip install 'foxyz[gui]'

To launch:

foxyz gui

CLI Mananger

Demonstration

https://github.com/user-attachments/assets/992b1830-6b21-4024-9165-728854df1473

See help message
$ python -m foxyz --help

 Usage: python -m foxyz [OPTIONS] COMMAND [ARGS]...

╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
│ --help  Show this message and exit.                                                   │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────╮
│ active    Print the current active version                                            │
│ fetch     Install the active version, or a specific version                           │
│ gui       Launch the Foxyz Manager GUI (requires PySide6)                          │
│ list      List Foxyz versions                                                      │
│ path      Print the install directory path                                            │
│ remove    Remove downloaded data. By default, this removes everything.                │
│           Pass --select to pick a browser version to remove.                          │
│ server    Launch a Playwright server                                                  │
│ set       Set the active Foxyz version to use & fetch.                             │
│           By default, this opens an interactive selector for versions and settings.   │
│           You can also pass a specifier to activate directly:                         │
│           Pin version:                                                                │
│               foxyz set official/stable/134.0.2-beta.20                            │
│           Automatically find latest in a channel source:                              │
│               foxyz set official/stable                                            │
│ sync      Sync available versions from remote repositories                            │
│ test      Open the Playwright inspector                                               │
│ version   Display version, package, browser, and storage info                         │
╰───────────────────────────────────────────────────────────────────────────────────────╯

sync

Pull a list of release assets from GitHub.

> foxyz sync
Syncing repositories...
  Official... 24 versions
  CoryKing... 2 versions

Synced 26 versions from 2 repos.

set

Choose a version channel or pin a specific version. Can also be called with a specifier to activate directly.

Interactive selector:

> foxyz set

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.

> foxyz set official/stable  # Default setting

Follow latest prerelease version from the official repo, if applicable:

> foxyz set official/prerelease

Pin a specific version:

> foxyz set official/stable/134.0.2-beta.20

active

Prints the current active version string:

> foxyz active  # Default channel is active
official/stable
> foxyz set coryking/stable/142.0.1-fork.26
Pinned: coryking/stable/142.0.1-fork.26
Run 'foxyz fetch' to install.

> foxyz active  # A specific version is pinned
coryking/stable/142.0.1-fork.26 (not installed)

fetch

Install the latest version from the active channel. By default, this is official/stable. This will also automatically sync repository assets.

> foxyz fetch  # Install the latest in the channel

To download the latest from a different channel, or pin a version:

> foxyz set coryking/stable
> foxyz fetch  # Will download the latest release from CoryKing's repo for now on

Or pass in the identifier to download directly without activating it:

> foxyz fetch official/stable/135.0-beta.25   # Install a specific version

list

List installed or all available Foxyz versions as a tree.

> foxyz list          # show installed versions
> foxyz list all      # show all available versions from synced repos
> foxyz list --path   # show full install paths

remove

By default, removes the entire foxyz data directory.

> foxyz remove
> foxyz remove -y  # skip confirmation prompt

Remove a specific version:

> foxyz remove official/stable/134.0.2-beta.20

Interactively select a version to remove:

> foxyz remove --select

version

Display the Python package version, active browser version, channel, and update status.

> foxyz version
Python Packages
  Foxyz                    v0.5.0
  Browserforge                v1.2.4
  Apify Fingerprints          v0.10.0
  Playwright                  v1.57.1.dev0+g732639b35.d20251217
Browser
  Active                      official/stable/135.0.1-beta.24
  Current browser             v135.0.1-beta.24
  Installed                   Yes
  Latest in official/stable?  Yes
  Last Sync                   2026-03-07 00:23
GeoIP
  Database                    MaxMind GeoLite2
  Updated                     2026-03-07 00:24
Storage
  Install path                /home/name/.cache/foxyz
  Browser(s) directory size   1.2 GB
  GeoIP database size         40.7 MB
  Config file                 /home/name/.cache/foxyz/config.json
  Repo cache                  /home/name/.cache/foxyz/repo_cache.json

path

Print the install directory path.

> foxyz path
/home/name/.cache/foxyz

test

Open Foxyz with the Playwright inspector for debugging.

> foxyz test
> foxyz test https://example.com

server

Launch a remote Playwright server.

> foxyz server

Usage

All of the latest stable documentation is avaliable at foxyz.com/python.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foxyz-1.0.4.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foxyz-1.0.4-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file foxyz-1.0.4.tar.gz.

File metadata

  • Download URL: foxyz-1.0.4.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for foxyz-1.0.4.tar.gz
Algorithm Hash digest
SHA256 ed03eb2e917e82fd9e1ccc0e5f1b35431d761145b715193662d9bb21f5018833
MD5 94d5022bfd07d49a2ffefa268c71f1f9
BLAKE2b-256 072b9bf470a45c9471b7b9dcf4f12f98fb5eca9b637939739e223c40f2f82ec4

See more details on using hashes here.

File details

Details for the file foxyz-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: foxyz-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for foxyz-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8f848120719edd7b9cba6786e5e0b709abb16922af6a20894a6efc3ba40d9683
MD5 63d6fdc43326fb792cfcfcf6be5cef12
BLAKE2b-256 53fd9ffd650b46e16df7afe7b659e128d383248e87f8c4747518f15e30db4867

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page