bamboodeploy
Scan and code-sign Windows .exe and .msi files from PyInstaller, Nuitka, cx_Freeze, or any build script. No certificate to buy, no hardware token, no Windows VM. Files are signed with the Bamboo Deploy certificate after a malware scan, so the publisher shown to users is Bamboo Deploy.
pip install bamboodeploy
bamboo-sign sign dist/myapp.exe
Upload, sign, download the signed file in place. Pure standard library, Python 3.8 or later, works on Windows, macOS, and Linux. python -m bamboodeploy works too.
Why PyInstaller builds need this
A PyInstaller exe unpacks a Python runtime into a temp folder at start, which is the same shape as a lot of malware droppers, so heuristic antivirus engines flag unsigned PyInstaller output more than almost anything else. A valid signature is the main remedy. Check a build before you ship it, free:
bamboo-sign scan dist/myapp.exe --fail-on-findings
Setup
- Create an API key in the Bamboo Deploy dashboard under API Keys.
- Export it as
BAMBOO_API_KEY, or putBAMBOO_API_KEY=bd_live_...in a.bamboorcfile in the project or home directory. - Uploads and scans work on the free tier. Signing needs a Premium subscription.
In a build script
pyinstaller --onefile app.py
bamboo-sign sign dist/app.exe
Or from Python:
from bamboodeploy import sign_file, scan_file
sign_file("dist/app.exe", out="dist/app-signed.exe", log=print)
result = scan_file("dist/app.exe")
print(result["summary"])
Commands
bamboo-sign sign <file> [--out path] [--timeout 900] sign, replace in place by default
bamboo-sign scan <file> [--json] [--fail-on-findings] free: scan report + SmartScreen readiness
bamboo-sign status [app-id] list uploads, or one app's scan + sign state
bamboo-sign delete <app-id>
bamboo-sign config show which key and API base are in use
Exit codes: 0 ok, 1 error, 2 Premium required, 3 publisher verification required, 4 timeout or waiting for review, 5 scan findings (with --fail-on-findings).
More: developer docs.
License
MIT
Metadata
Release files for bamboodeploy 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bamboodeploy-1.0.0.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bamboodeploy-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.5 kB
Release files / bamboodeploy-1.0.0.tar.gz
| Download URL | bamboodeploy-1.0.0.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
201787408899b78ebca5bf311e8da993051beceec88b1a2113b214403ae2fe60
|
|
BLAKE2b-256 checksum How to use checksums |
d2c67bbc73ab5ad518a5d862dec7cffaca6bf1eaf97a3b0e8b8be14de329da80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / bamboodeploy-1.0.0-py3-none-any.whl
| Download URL | bamboodeploy-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad5c4a96bcfcfe87fa04771bfc8f0b358e2ace63c6dca9657e678b18aa4c4fb2
|
|
BLAKE2b-256 checksum How to use checksums |
ec308db5d1f24fbd8ac694d1865b95117b70bb094610ed7070273dc1d364ed1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|