Skip to main content

unidecompiler-cli

unidecompiler-cli is the command-line host for installed unidecompiler frontend plugins. It discovers plugins through the unidecompiler.frontends entry-point group and uses the public DecompilerEngine facade.

Install the CLI and one or more frontend packages:

python -m pip install unidecompiler-cli unidecompiler-plugin-python-pyc

Run unidecompiler --help for command-line usage.

Progress is disabled by default so ordinary output remains clean for shell pipelines. Enable the single-line two-level progress bar explicitly with --progress (TTY auto mode) or --progress always; it is written only to stderr. Use --progress never to make the disabled behavior explicit.

Use -o/--output to write one successful artifact to a file, or --output-dir to export every successful artifact from a batch. Directory exports use sanitized basenames and never overwrite an existing file; these options leave stdout empty and report the destinations on stderr:

unidecompiler sample.pyc --output sample.pse
unidecompiler samples/ --output-dir decompiled/
unidecompiler samples/ --format ast-json --output-dir ast/

For a VS Code navigation sidecar, opt in explicitly and provide both paths. The sidecar is written after the pseudocode file and is never generated by a normal export. It is available only for one pseudocode --output export, not for --output-dir or --format ast-json:

unidecompiler sample.pyc \
  --output sample.pse \
  --vscode-metadata sample.pse.unidec.json

The sidecar contains the exported text's UTF-8 SHA-256, UTF-16 source-map offsets, and minimal instruction navigation facts. It does not repeat the pseudocode or include source paths, AST, IR, CFG, diagnostics, or other engine data.

Starter projects are exported through the host-side template package as well:

unidecompiler template frontend MyVM -o ./my-vm \
  --author "Your Name" \
  --description "My bytecode frontend" \
  --requirements "Decode and lift the VM" \
  --suffix .vm --version 1

unidecompiler template gui_plugin MyPanel -o ./my-panel \
  --author "Your Name" \
  --description "A read-only GUI panel" \
  --requirements "Show analysis data"

The same template export is available as an interactive wizard:

unidecompiler template --interactive

The short form is unidecompiler template -i. The wizard only collects template settings and then calls the same host-side exporter; it does not change decompilation or recovery behavior.

Frontend templates can opt into the simulator and AI kit explicitly:

unidecompiler template frontend MyVM -o ./my-vm \
  --author A --description D --requirements R \
  --suffix .vm --version 1 \
  --simulation --ai-guidance \
  --interpreter-source ./vm_interpreter.c \
  --bytecode-sample ./sample.bin \
  --entry-kind symbol --entry-value main

Both options also accept --no-simulation and --no-ai-guidance; they are disabled by default. AI guidance validates the supplied files for size, regular-file status, and likely credentials before copying them.

export-template is accepted as an alias. Template export is atomic and never overwrites an existing destination directory.

The optional simulator command is hosted here, while execution remains in the separate simulator library:

unidecompiler simulate sample.bytecode --function 'Example.run' --args '[1, 2]'

For trusted programs that require functions outside the lifted module, pass a Python environment file. Top-level functions are matched by name, while their stdout and stderr are returned as structured simulation events:

unidecompiler simulate sample.pyc --function main --environment runtime.py

Metadata

Release files for unidecompiler-cli 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unidecompiler-cli 0.2.2
File Size Uploaded
unidecompiler_cli-0.2.2.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unidecompiler-cli 0.2.2
File Interpreter ABI Platform
unidecompiler_cli-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 23.5 kB

Release files / unidecompiler_cli-0.2.2.tar.gz

Download URL unidecompiler_cli-0.2.2.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e14f71cf85597cb73b77e1eec0cd6354a237fa218f3f11a60365e461d451e6ff
BLAKE2b-256 checksum
How to use checksums
ad40d4cc66eec64839c73723e2b1f11588b8cf70eb15ca01c1eb417fa5273d8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release files / unidecompiler_cli-0.2.2-py3-none-any.whl

Download URL unidecompiler_cli-0.2.2-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c25a76f3a9b742ba918f9d72efbd4a274f205c5834bd792e9d7be54ba8bab936
BLAKE2b-256 checksum
How to use checksums
6df99f48f23ce0933d206c47db88ca30774c32ee9b6bdffa00d858089db31436
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release history Release notifications | RSS feed

0.2.3

2 release files

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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