pyarmor
A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
Decision gist · record as of 2026-08-14
Yes, if you need to protect Python source code and the non-standard license terms are acceptable for your use case. The tool is actively maintained, has no dependencies, and installs easily. However, verify the 'Free To Use But Restricted' license carefully before using it in commercial or open-source projects, and test obfuscated output thoroughly in your target environment.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with no runtime dependencies.
- Actively maintained with a recent release 22 days ago and ongoing repository activity.
License · maintenance · safety
Free To Use But Restricted (unclear) — License is marked 'Free To Use But Restricted' with no SPDX identifier, meaning terms are non-standard and unclear—review the actual license before relying on this tool in commercial or open-source projects.
last release 2026-07-23 (22 days) · last repo commit 2026-08-14 · 5,168 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 649,651 downloads/mo, #5,571 on PyPI
Alternatives
Verify before relying
pip install pyarmor
pyarmor gen foo.py
python dist/foo.py- Whether 'Free To Use But Restricted' license permits commercial distribution of obfuscated scripts
- Whether obfuscated output maintains full compatibility with all Python 3.7–3.15 features in practice
- Performance overhead of obfuscated scripts compared to originals
What it is and what it does
Pyarmor is a command-line tool that transforms Python scripts into obfuscated versions that remain valid `.py` files but with renamed identifiers and optional C-compiled functions. It supports binding obfuscated scripts to specific machines or adding expiration dates, making it useful for protecting proprietary code before distribution.
The tool generates obfuscated output that can typically replace original scripts without modification. It offers multiple obfuscation strategies to balance security and performance, and supports Python 3.7–3.15 across Windows, Linux, macOS (Intel and Apple Silicon), and embedded systems. No runtime dependencies are required beyond the pyarmor command itself.
Use it for
- Obfuscate proprietary Python applications before shipping to customers or deploying to untrusted environments
- Bind obfuscated scripts to specific machines to prevent unauthorized copying or redistribution
- Add expiration dates to obfuscated scripts for time-limited licenses or trial periods
- Convert performance-critical Python functions to compiled C code while protecting the overall codebase
- Protect intellectual property in closed-source Python tools distributed as standalone executables
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to protect Python source code and the non-standard license terms are acceptable for your use case.
The tool is actively maintained, has no dependencies, and installs easily. However, verify the 'Free To Use But Restricted' license carefully before using it in commercial or open-source projects, and test obfuscated output thoroughly in your target environment.
Install
pyarmor on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained with a recent release 22 days ago and ongoing repository activity.
License in practice
License is marked 'Free To Use But Restricted' with no SPDX identifier, meaning terms are non-standard and unclear—review the actual license before relying on this tool in commercial or open-source projects.
Quickstart
pip install pyarmor
pyarmor gen foo.py
python dist/foo.py
Verify before relying
- Whether 'Free To Use But Restricted' license permits commercial distribution of obfuscated scripts
- Whether obfuscated output maintains full compatibility with all Python 3.7–3.15 features in practice
- Performance overhead of obfuscated scripts compared to originals
Package facts
| License | Free To Use But Restricted unclear |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 22 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 649,651 / month, #5,571 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: Free To Use But RestrictedOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: Python :: 2Programming Language :: Python :: 3Topic :: SecurityTopic :: Software Development :: Build ToolsTopic :: System :: Software DistributionTopic :: Utilities |
Evidence: pyarmor-9.2.6-2-py3-none-any.whl; pyarmor-9.2.6-3-py3-none-any.whl; pyarmor-9.2.6-4-py3-none-any.whl; pyarmor-9.2.6-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “protect python source code”
- pyarmorPyarmor obfuscates Python scripts to protect source code, and can…
- pyarmor.cli.coreProvides prebuilt extension modules required by Pyarmor to obfuscate…
- pyarmor.cli.core.linuxPyarmor.cli.core.linux provides pre-built extension modules for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also pyarmor.cli.core · pyarmor.cli.core.alpine · pyarmor.cli.core.linux · hashids · jsbeautifier · expiring-dict · pyrage · pyAesCrypt · django-session-timeout · nono-py