Installation
Obfy installs as a single package. It gives you the obfy CLI that you run at
build time and bundles the native runtime that gets packaged into your
protected output — no second install.
Requirements
- CPython 3.10–3.13. The marshal/bytecode format is version-specific, so you must build with the same Python version you ship for.
- A supported platform: macOS (Apple Silicon or Intel), Linux (x86_64 / aarch64), or Windows (x64).
1. Install Obfy
pip install obfy
Install it into the interpreter you will ship for — obfy build bundles the
runtime from this install into every distribution. Verify it:
obfy --help
If you ship for Python 3.11, build with Python 3.11. A dist built against one CPython version will not import under another.
2. Authorize this machine
Obfy is licensed per seat. Authorize this machine once — sign in, then claim a
seat slot (obfy build is refused until both are done):
obfy login # opens your browser to authorize the device
obfy register # claims a seat slot for this machine
On an air-gapped machine, use the offline flow instead (obfy register --offline
→ obfy activate <file>); see Seats and devices.
On success, the machine holds a seat and caches credentials locally. Check who
you're signed in as:
obfy whoami
To sign out and forget the cached credentials:
obfy logout
Next steps
You're ready to protect a project — continue to the Tutorial.