Ghidra installation manager and Python library
Project description
GhidraCtl
A Python library and CLI tool to effortlessly install, manage, and automate Ghidra environments.
Install, update, and manage multiple Ghidra versions from the command line — or use it as an importable library in your Python tools.
Features
- Install/update/uninstall multiple Ghidra versions side-by-side
- Auto-detect and manage Java/JDK dependencies (Adoptium Temurin)
- Cross-platform: macOS (ARM64 + x86-64), Linux, Windows
- Rich terminal UI with progress bars and tables
- Importable Python API for toolchain integration
- Extension and settings management
Installation
pip install ghidractl
CLI Usage
# Install the latest Ghidra
ghidractl install
# Install a specific version
ghidractl install 11.3
# List installed versions
ghidractl list
# List all available versions
ghidractl list --all
# Set active version
ghidractl use 11.3
# Launch Ghidra GUI
ghidractl run
# Update to latest
ghidractl update
# Uninstall a version
ghidractl uninstall 11.2.1
# Print install path
ghidractl locate
Java Management
# Check Java status
ghidractl java check
# Install JDK via Adoptium
ghidractl java install
# Install a specific JDK version
ghidractl java install --version 17
# Manual install instructions
ghidractl java guide
Extensions
# List extensions
ghidractl ext list
# Install from ZIP
ghidractl ext install ./my-extension.zip
# Remove an extension
ghidractl ext uninstall MyExtension
Settings
# Backup Ghidra settings
ghidractl settings backup
# Restore from backup
ghidractl settings restore ghidra_settings_backup.zip
Configuration
# Show config
ghidractl config show
# Set GitHub token (for higher API rate limits)
ghidractl config set github_token ghp_your_token_here
Library API
import ghidractl
# Install Ghidra
path = ghidractl.install("latest")
# List available versions
versions = ghidractl.list_versions()
# List installed versions
installed = ghidractl.installed()
# Set active version
ghidractl.use("11.3")
# Get install path
path = ghidractl.get_path()
# Launch Ghidra
ghidractl.run()
# Java management
java = ghidractl.java.check()
ghidractl.java.install(version=21)
Requirements
- Python 3.10+
- Java/JDK (auto-installable via
ghidractl java install)
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 ghidractl-0.1.2.tar.gz.
File metadata
- Download URL: ghidractl-0.1.2.tar.gz
- Upload date:
- Size: 31.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba0c6d470a5c782dfca7d4bef625235c3aa39a651a0863093c62c48a441d146b
|
|
| MD5 |
5068802d0a68d8bdb865732f302f3052
|
|
| BLAKE2b-256 |
3e15f5346fc7b39fe4cd1b884c71d8105ca6acbea41e087e77962e76e0c06419
|
Provenance
The following attestation bundles were made for ghidractl-0.1.2.tar.gz:
Publisher:
publish.yml on monkeywave/ghidractl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghidractl-0.1.2.tar.gz -
Subject digest:
ba0c6d470a5c782dfca7d4bef625235c3aa39a651a0863093c62c48a441d146b - Sigstore transparency entry: 1028671033
- Sigstore integration time:
-
Permalink:
monkeywave/ghidractl@ce1f5d3cf73c3fc4f749875ef66522ee73f65cd1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/monkeywave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce1f5d3cf73c3fc4f749875ef66522ee73f65cd1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ghidractl-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ghidractl-0.1.2-py3-none-any.whl
- Upload date:
- Size: 40.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6f5a9d91ee9ba0fefa81f9cd3177a9b57ff196ff23ef3ed898bd21e1931db8e
|
|
| MD5 |
4959d36d57fafb43445b38f93d996a00
|
|
| BLAKE2b-256 |
ffe211e5560d519ea90c209fdec09e418759286222f83754fe24dfa0b2e2fc16
|
Provenance
The following attestation bundles were made for ghidractl-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on monkeywave/ghidractl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghidractl-0.1.2-py3-none-any.whl -
Subject digest:
e6f5a9d91ee9ba0fefa81f9cd3177a9b57ff196ff23ef3ed898bd21e1931db8e - Sigstore transparency entry: 1028671090
- Sigstore integration time:
-
Permalink:
monkeywave/ghidractl@ce1f5d3cf73c3fc4f749875ef66522ee73f65cd1 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/monkeywave
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce1f5d3cf73c3fc4f749875ef66522ee73f65cd1 -
Trigger Event:
push
-
Statement type: