Ghidra Downloadindependent download & install guide
English
EXTENSIONS EXPLAINED

Ghidra Plugins and Extensions: How to Install, Enable, and Troubleshoot Them

The safest way to use Ghidra plugins is to treat every extension as executable software: verify its repository and release, check compatibility with your Ghidra version, install it through Ghidra's extension workflow, and test it on a disposable project. This guide uses the current Ghidra 12.1.3 and JDK 21 boundary, while keeping scripts, extensions, and developer tooling separate.

Open the official Ghidra documentation
Primary intentFind and install plugins
Current boundaryGhidra 12.1.3 + JDK 21
Best practiceVerify, install, test
Risk boundaryThird-party code
START HERE

Plugin, extension, or script? Choose the right workflow

People often use plugin, extension, and script as if they mean the same thing. They do not always require the same installation path. A script is usually a Java or Python file that runs inside the Script Manager. An extension is a packaged module that can add tools, analyzers, UI, or other capabilities to the Ghidra installation. GhidraDev is developer tooling for building and testing extensions; it is not a general plugin marketplace.

If your goal is a one-off action such as renaming functions, exporting a report, or searching a program, start with the Ghidra Script Manager guide. If the download is a packaged add-on with its own release notes or compatibility statement, use the extension workflow below. For Python that must run as native CPython outside the in-application runtime, use the PyGhidra guide instead.

A plugin is not automatically trusted

Ghidra can load third-party code with the same local access available to the application. Keep unknown extensions away from sensitive projects, credentials, and production machines until their source, release, and behavior are understood.

What you haveTypical jobBest next step
Java or Python scriptA repeatable analysis actionOpen Script Manager and inspect it first
Packaged extensionA new tool, analyzer, or UI moduleVerify the release, then use File > Install Extensions...
GhidraDev projectDevelop or rebuild an extensionUse the official developer workflow and matching source tag
Source archiveRead or build project sourceDo not treat it as a ready-to-run plugin package
BEFORE INSTALLING

Verify the plugin source and release

Start with the extension's own project repository, not a repackaged download page. Check the owner, release tag, README, license, supported Ghidra versions, Java requirements, operating-system notes, and issue history. A repository may contain source code while its Releases page contains the packaged artifact; those are different downloads.

The current site verification uses Ghidra 12.1.3, published August 18, 2026, with a 64-bit JDK 21 environment. That version boundary is useful for testing, not a promise that every third-party extension already supports it. If an extension says it targets an older Ghidra API, keep an older Ghidra folder beside the current one and test the extension there rather than weakening the current installation. Link back to the Ghidra release guide when you need version history or upgrade precautions.

Official Ghidra project window showing the separate project data that should be backed up before testing an extension
Keep project data separate from the application folder and make a copy before testing a new extension. Official Ghidra project-window image.
INSTALL

Install a Ghidra extension step by step

Use a clean, writable Ghidra installation for the first test. Do not extract an extension into a random folder and assume Ghidra will discover it. Follow the package's README when it adds a prerequisite or a version-specific step, then use Ghidra's own extension installation command when the package is supported by that workflow.

  1. 1

    Back up the test project

    Close Ghidra and copy the project data before installing anything. Use a disposable sample or an authorized training binary for the first launch.

    Project.gpr + Project.rep/
  2. 2

    Inspect the package

    Confirm the repository, release tag, checksum when published, supported Ghidra version, Java requirement, and whether the file is a packaged extension rather than Source code ZIP.

    README + Releases + compatibility notes
  3. 3

    Open the extension installer

    Start the verified Ghidra build, choose File > Install Extensions..., and select the package according to its documented format. Do not rename files to make an incompatible archive look supported.

    File > Install Extensions...
  4. 4

    Restart and confirm

    Restart Ghidra if requested. Check the new tool, analyzer, menu, or provider on the disposable project and read the application log if the expected entry is missing.

    Restart > open test project
  • Do not install into the old application folder when you are comparing compatibility.
  • Do not run a third-party installer merely because it claims to install a Ghidra plugin.
  • Keep the original archive and its release URL so you can reproduce or remove the test.
TEST

Enable the extension and test one small job

A successful copy operation is not proof that an extension is usable. Open the tool or analyzer it adds, run the smallest meaningful task, and compare the result with a built-in Ghidra view such as Listing, CodeBrowser, or the Decompiler. Record the Ghidra version, JDK build, extension release, input hash, and any options that affect the result.

Keep script execution and extension testing separate. The Ghidra search guide and Decompiler guide show how to validate findings against native views instead of trusting one automated output. Only analyze files you are authorized to inspect.

Ghidra Script Manager workflow used to contrast scripts with packaged extensions
The Script Manager is for in-application scripts; a packaged extension follows a separate install and compatibility path. Official Ghidra workflow image.
COMPATIBILITY

Why a Ghidra plugin stops working after an update

Compiled extensions can depend on Ghidra APIs, class names, tool services, native libraries, or exact Java behavior. A new Ghidra release may change one of those boundaries even when the extension's visible feature looks simple. Read the extension release notes before upgrading, and keep a side-by-side installation when a project depends on a pinned version.

The diagram below is an editorial concept illustration, not a Ghidra screenshot. The important decision remains in the surrounding text: source provenance first, installation second, compatibility test third.

Editorial illustration of verifying a plugin source, installing an extension, and checking compatibility
Editorial concept illustration: verify the source, install through Ghidra, then test the extension against the current environment. Not an official Ghidra interface.
TROUBLESHOOTING

Fix common Ghidra plugin and extension problems

When an extension fails, preserve the error text and undo only the smallest change. Do not delete project data or replace the current Ghidra installation with an unknown build just to make the message disappear. The installation guide covers JDK and launch problems; use the checks below for extension-specific failures.

  • Capture the Ghidra version from the release page and the Java output from java -version.
  • Test with one extension at a time so a failure has a clear cause.
  • Remove or quarantine a package you cannot identify; do not keep it enabled on a sensitive workstation.
SymptomLikely causeSafer response
The package is not listedWrong archive type, nested folder, or unsupported releaseRe-read the package README and select the published extension asset
The tool is installed but missingRestart, tool configuration, or provider visibilityRestart Ghidra, inspect the tool configuration, and test a fresh project
NoClassDefFoundError or API errorCompiled against another Ghidra API or Java environmentUse a compatible release or rebuild from the matching source tag
Ghidra becomes unstableExtension defect, native helper, or conflicting moduleClose Ghidra, restore the clean install, and report the exact version pair
It works on an older release onlyThe extension has not caught up with the current APIKeep the older version isolated and record the pinned toolchain
DEVELOPER BOUNDARY

GhidraDev is for building extensions, not browsing a plugin store

GhidraDev is the official development path for people who need to create or rebuild Ghidra modules in an Eclipse-based environment. It matters when a third-party extension has no compatible packaged release, when you need to inspect source changes, or when an internal team must build against a recorded Ghidra tag. It is more work than installing a published package and should not be presented as a beginner plugin manager.

If you only need automation, compare the PyGhidra workflow and the beginner tutorial before adding a development environment. A reproducible extension build should record the source commit, Ghidra tag, JDK, Gradle or Eclipse setup, operating system, and output artifact hash.

Keep the boundary explicit

A third-party plugin list can help you discover projects, but the project repository and release notes remain the evidence for installation and compatibility. This page does not endorse a particular extension.

FAQ

Ghidra plugins and extensions FAQ

Is a Ghidra plugin the same as a script?

No. A Java or Python script normally runs from Script Manager for a focused task. A packaged extension can add tools, analyzers, or UI and follows its own installation and compatibility rules.

How do I install a Ghidra extension?

Verify the repository and release first, back up a test project, then start the verified Ghidra build and use File > Install Extensions... when the package documentation supports that workflow. Restart and test the new capability on an authorized sample.

Can I install any ZIP from GitHub as a Ghidra plugin?

No. A GitHub repository can publish source archives, release assets, examples, and unrelated files. Use the package documented by the project, check its Ghidra and Java requirements, and do not rename an incompatible archive.

Why did my extension stop working after updating Ghidra?

The extension may depend on a changed Ghidra API, service, native helper, or Java environment. Check for a compatible release or rebuild it against the new source tag; keep the old installation separate until testing is complete.

Does this page recommend a specific third-party plugin?

No. It explains how to evaluate and test plugins without treating a directory listing as an endorsement. Use the project repository, release notes, license, and compatibility evidence for the extension you choose.

Start from a verified Ghidra installation

Download the current official Ghidra 12.1.3 ZIP, keep your test project separate, and add one verified extension at a time.