Online Python .pyc Decompiler (pycdc, in your browser)
Decompile a compiled Python .pyc back to readable source with pycdc — in your browser via WebAssembly. Python 3.0–3.12 clean, 3.13/3.14 supported. Nothing uploaded.
Why use this tool?
Use the .pyc Decompiler to see exactly how much a compiled Python file gives away. Drop in a .pyc and it reconstructs the original source — names, strings, and logic — using a decompiler engine compiled to WebAssembly, so everything runs locally and nothing is uploaded. It's the fastest way to prove to yourself that shipping .pyc is not protection.
Drop a .pyc here, or click to choose
Runs entirely in your browser — nothing is uploaded. Max 8 MB.
Recovers source for Python 1.x through ~3.12 (best on ≤3.11; very new versions may be partial), running entirely in your browser via WebAssembly — nothing is uploaded. Use it to inspect your own compiled Python and see how little a .pyc actually hides — then obfuscate so it can't be read back. See also: why .pyc isn't protection.
About Python .pyc Decompiler
Most Python decompilers are limited: the popular pure-Python tools (uncompyle6, decompyle3) only cover up to Python 3.8–3.9 and won't even run on newer interpreters. This tool instead runs pycdc (Decompyle++), a C++ decompiler engine, compiled to WebAssembly so it works entirely in your browser. It recovers clean source for Python 3.0 through 3.12, returns a partial reconstruction for 3.13 (most of the source plus inlined disassembly for the newest opcodes), and shows the full disassembly for brand-new 3.14 bytecode — so you get usable output even on versions the pip-based decompilers can't touch at all.
Drop a .pyc file and you get the recovered .py source back, including variable names and string literals. Where the newest bytecode can't be perfectly rebuilt, the engine inlines the raw disassembly so nothing is lost. Because .pyc decompiles this easily, the takeaway is simple: to actually protect Python, obfuscate the source first so even the decompiled bytecode is unreadable.
Frequently Asked Questions
Explore Other Tools
Python Bytecode Disassembler
Disassemble Python to CPython bytecode with the dis module — explore opcodes, code objects, jumps and constants. Runs in your browser; nothing uploaded.
Python Type Checker
Type-check your Python online with mypy — runs 100% in your browser via WebAssembly. Pick a target Python version (3.8–3.14) and strict mode. Nothing is uploaded.
AST Python Obfuscator
Free online Python obfuscator: rename identifiers, encrypt strings, hide imports and flatten control flow at the AST level, then download standalone Python.
Python Script Formatter
Format Python to PEP 8 instantly with Black, autopep8, YAPF or isort — with a before/after diff view and Black options (keep quotes, no magic comma).