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.19.tar.gz (37.5 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.19-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pylocket-1.1.19.tar.gz
  • Upload date:
  • Size: 37.5 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.19.tar.gz
Algorithm Hash digest
SHA256 24358d06a1e51d8cf3b4b0251804763f287bc067fabe20261bd9840302994eb4
MD5 df11ca3c64a135a010bbf343c89c501e
BLAKE2b-256 aa91b3f0f5da6df926d6cc51c6c691d7096a0a9f7020eb77489dfc553fa8a916

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pylocket-1.1.19-py3-none-any.whl
  • Upload date:
  • Size: 44.4 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.19-py3-none-any.whl
Algorithm Hash digest
SHA256 30dc3413ad23099c9ee5a704e46dcc341ef0b8eee40f3f048aa257d63befb939
MD5 73988aa25644d0dcc8ac18a9e3b4c5a1
BLAKE2b-256 6a046e9cbb58749bcb4afaa2cd3029c1cb0f7da9e3457e06a22932590d9167ce

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.20

2 files

This release

1.1.19 This release

2 files

1.1.18

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