PyLocket CLI - Protect and distribute Python applications
Project description
PyLocket CLI v1.1.1
Protect and distribute Python applications from the command line.
Installation
pip install pylocket
Or download platform-specific binaries from your Developer Portal.
Supported Python Versions
- Python 3.12
- Python 3.13
- Python 3.14
Quick Start
# Authenticate with your PyLocket account
pylocket login
# List your apps
pylocket apps list
# Protect a PyInstaller executable
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 | Description |
|---|---|
pylocket login |
Authenticate with your PyLocket account |
pylocket apps list |
List all your applications |
pylocket apps create |
Create a new application |
pylocket protect |
Upload and protect an artifact |
pylocket status |
Check build protection status |
pylocket fetch |
Download a protected artifact |
Protection Flow
The CLI uses a two-step upload architecture when protecting an artifact:
- Create Build —
POST /v1/apps/{app_id}/buildssends build metadata and receives a presigned S3 upload URL. - Upload to S3 — The artifact bytes are
PUTdirectly to the presigned S3 URL (bypasses the API server). - Confirm Build —
POST /v1/apps/{app_id}/builds/{build_id}/confirmtells the backend the upload is complete and triggers the protection pipeline. - Poll Status —
GET /v1/apps/{app_id}/builds/{build_id}is polled until the build reachesreadyorfailedstatus. The response includesprogress_percentandprogress_messagefields computed server-side. - Download —
GET /v1/apps/{app_id}/builds/{build_id}/downloadreturns a JSON body with adownload_urlpointing to S3. The CLI then fetches the protected artifact from that URL.
Key details:
- Build routes are nested under apps:
/v1/apps/{app_id}/builds/{build_id}(NOT/v1/builds/) - Login returns
access_token(nottoken); app listings use adatakey (notapps) - The S3 presigned URL upload is a raw
PUTwithout the API authorization header
What's New in v1.1.1
- Real-time progress bar — the
protectcommand now displays a live progress bar with server-computedprogress_percentandprogress_messageshowing each pipeline stage (downloading, scanning, protecting, uploading) - Malware rejection handling — builds flagged by security scanning now display a clear "Build Rejected" message instead of a generic failure
- API compatibility fixes — corrected response model alignment with backend (two-step upload flow, presigned S3 URLs, nested build routes)
Documentation
Full documentation: docs.pylocket.com
Support
- Documentation: https://docs.pylocket.com
- Developer Portal: https://portal.pylocket.com
- Email: support@pylocket.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylocket-1.1.1.tar.gz.
File metadata
- Download URL: pylocket-1.1.1.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
922a9976d911c3571511534f4a27d27a997fc6dc1ca158d34821ecc7c5bdb7c3
|
|
| MD5 |
33697be20a1b1ddf4249cc78f49389b4
|
|
| BLAKE2b-256 |
753822f3fc9c4faf8a8225f026affbc0186e88e033831712092506f21c65b2b5
|
File details
Details for the file pylocket-1.1.1-py3-none-any.whl.
File metadata
- Download URL: pylocket-1.1.1-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
deee2ea59269cc29b45a5325a0e86261b9b428134a07ec3c590b15b0f8247ea4
|
|
| MD5 |
adb769debddffa37ec8878a5eaa471a8
|
|
| BLAKE2b-256 |
2210a2dcdd22aa9588f542125cf19f1c1b28d185efcbd9ee7a0dbfb99c5e27bd
|