Skip to main content

PyLocket

Protect, license, and sell your Python apps, without ever shipping your source or your keys.

PyPI version Python versions License: Proprietary Downloads

PyLocket is the developer platform for shipping commercial Python desktop apps. It wraps your build in strong anti-reverse-engineering protection, issues and enforces per-device license keys, and delivers signed, ready-to-run downloads to your customers. No source rewrites. No percentage fees.

Protect a build in three lines:

pip install pylocket
pylocket login --sso
pylocket protect --app <APP_ID> --artifact dist/myapp.exe

Why PyLocket

Most "protection" tools encrypt your .py files and decrypt them back to your original source at import time. That means the key ships inside your app, and the original code is recoverable. Public one-click decryptors exist for that entire category.

PyLocket is built differently.

1. Unrecoverable by design

Your code is encrypted at the function level, and the keys are issued to each licensed device at activation. They are never embedded in your app. Decrypted code runs inside a hardened native runtime and is never written back to disk as source. There is no one-click PyLocket decryptor, and architecturally there cannot be one.

2. A platform, not a file utility

Protection is step one. PyLocket also gives you license keys with per-device activation limits and revocation, branded download pages, free-trial links, one-click push updates to your users, and hosted checkout, all from the CLI. One tool replaces your obfuscator, your license server, and your storefront.

3. Trusted, not flagged

Every PyLocket developer is identity-verified, and every build is code-signed (Windows Authenticode, macOS notarization, Linux GPG) and malware-scanned. Anonymous encryptors are exactly what malware authors abuse, which is why antivirus engines flag them. PyLocket apps carry a real identity and a real signature, so your users see trusted, not quarantined.

PyLocket does not claim to be unbreakable. Nothing is. The goal is to make reverse-engineering economically impractical: months of expert effort, not an afternoon.


Licensing and distribution

pylocket is a full license and delivery client, not just an obfuscator:

  • Issue, list, revoke, extend, and reset license keys (pylocket licenses ...)
  • Bind each license to a device limit you control
  • Generate one-time, branded download links (pylocket distribute)
  • Replace a protected build with your own code-signed copy while preserving notarization (pylocket replace-signed)
  • Wire build events into your own systems with webhooks (pylocket webhook ...)

Quick start

# Authenticate via browser (recommended for 2FA and password-manager users)
pylocket login --sso

# Or authenticate with email and password
pylocket login

# List your apps
pylocket apps list

# Protect a build (PyInstaller, cx_Freeze, Briefcase, wheel, .app, and more)
pylocket protect --app <APP_ID> --artifact dist/myapp.exe

# Check build status
pylocket status --build <BUILD_ID>

# Download the protected artifact
pylocket fetch --build <BUILD_ID> --out ./protected/

Commands

Command What it does
pylocket login Authenticate (--sso for browser OAuth2, recommended for 2FA)
pylocket apps Manage applications (list, create, update, delete)
pylocket protect Upload and protect a build, then fetch the output
pylocket status Show a build's protection status
pylocket fetch Download a completed protected artifact
pylocket replace-signed Swap in your own code-signed build (preserves notarization)
pylocket licenses Manage licenses (list, create, get, revoke, reset-devices, extend)
pylocket distribute Generate a one-time branded download link
pylocket webhook Configure build-event webhooks (set, remove, test, status)
pylocket auth Manage authentication and 2FA settings

Run pylocket <command> --help for full options.


Supported builds

Packaging: PyInstaller (onefile and onedir), cx_Freeze, BeeWare Briefcase, Python wheels (.whl), raw scripts, ZIP archives, and macOS .app bundles.

Platforms: Windows x64, Linux x64, Linux arm64, macOS Intel, macOS Apple Silicon.

Python: 3.12, 3.13, and 3.14. PyLocket targets modern Python; the hardened runtime requires a current CPython.


PyLocket vs source encryptors

Source encryptors (.pye) PyLocket
Decryption key ships with the app Yes No, issued per device at activation
Recovers to your original source Yes Never
Built-in licensing, device binding, revocation No Yes
Sell, deliver, and push updates No Yes
Identity-verified devs, code-signed builds No Yes
Pricing Per developer seat Flat, per account, no percentage fees

See the full comparison at pylocket.com.


Documentation and support

Download files

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

Source Distribution

pylocket-1.1.18.tar.gz (34.8 kB view details)

Uploaded Source

Built Distribution

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

pylocket-1.1.18-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

Details for the file pylocket-1.1.18.tar.gz.

File metadata

  • Download URL: pylocket-1.1.18.tar.gz
  • Upload date:
  • Size: 34.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pylocket-1.1.18.tar.gz
Algorithm Hash digest
SHA256 7c2690ff8e364840150051d32e5ecf6d938ae2d486e225750329c0d895635128
MD5 3a6f8be6ad5e8e627262701c1c6458fa
BLAKE2b-256 10360a2ed11bd8fa5e0dfcf386b22dfc96a50a6fe7109f0c5fb4a9efe6088f24

See more details on using hashes here.

File details

Details for the file pylocket-1.1.18-py3-none-any.whl.

File metadata

  • Download URL: pylocket-1.1.18-py3-none-any.whl
  • Upload date:
  • Size: 41.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pylocket-1.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 d8fae3f2065bb005b5ffc2138ce71b02341912b2c826423349feb8ab1441c4df
MD5 8eb927da34ba0d513dc0b0513e601a3f
BLAKE2b-256 f0886ea4959206db519eaf0d6c1a7b7b13e69249b374ab24bf46b54a031cdd06

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.20

2 files

1.1.19

2 files

This release

1.1.18 This release

2 files

1.1.17

2 files

1.1.16

2 files

1.1.15

2 files

1.1.14

2 files

1.1.13

2 files

1.1.12

2 files

1.1.11

2 files

1.1.10

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page