Installation
There are six main ways to install medusa
:
- Using Go Install
- Using Homebrew
- Using Nix
- Using Docker
- Building from source
- Using Precompiled binaries
If you have any difficulty with installing medusa
, please open an issue on GitHub.
Installing with Go Install
Prerequisites
You need to have Go installed (version 1.20 or later). Installation instructions for Go can be found here.
Install medusa
Run the following command to install the latest version of medusa
:
go install github.com/crytic/medusa@latest
This will download, compile, and install the medusa
binary to your $GOPATH/bin
directory. Make sure this directory is in your PATH
environment variable.
Installing with Homebrew
Note that using Homebrew is only viable (and recommended) for macOS and Linux users. For Windows users, you must use one of the other installation methods.
Prerequisites
Installation instructions for Homebrew can be found here.
Install medusa
Run the following command to install the latest stable release of medusa
:
brew install medusa
To install the latest development version:
brew install --HEAD medusa
Installing with Nix
Prerequisites
Make sure nix is installed and that nix-command
and flake
features are enabled. The Determinate Systems nix-installer will automatically enable these features and is the recommended approach. If nix is already installed without these features enabled, run the following commands:
mkdir -p ~/.config/nix
echo 'experimental-features = nix-command flakes' > ~/.config/nix/nix.conf
Build medusa
To build medusa with nix:
# Clone the repository if you haven't already
git clone https://github.com/crytic/medusa
cd medusa
# Build medusa
nix build
The resulting binary can be found at ./result/bin/medusa
.
Install medusa
After building, you can add the build result to your PATH using nix profiles by running the following command:
nix profile install ./result
Installing with Docker
Prerequisites
You need to have Docker installed. Installation instructions for Docker can be found here.
Using the Docker image
Pull the latest Docker image:
docker pull crytic/medusa
Run medusa in a container:
docker run -it --rm -v $(pwd):/src crytic/medusa <command>
This will mount your current directory to /src
in the container and run the specified medusa command.
Building from source
Prerequisites
Before building medusa
from source, you will need:
- Go (version 1.20 or later) - Installation instructions
crytic-compile
- Installation instructions- Note that
crytic-compile
requires a Python environment - Python installation instructions
- Note that
slither
(Optional) - For improved valuegeneration we recommend also installing Slither
Build medusa
Run the following commands to build medusa
(this should work on all OSes):
# Clone the repository
git clone https://github.com/crytic/medusa
# Build medusa
cd medusa
go build -trimpath
You will now need to move the binary (medusa
or medusa.exe
) to somewhere in your PATH
environment variable so that
it is accessible via the command line. Please review the instructions
here (if you are a Windows user, we
recommend using the Windows GUI).
Precompiled binaries
The precompiled binaries can be downloaded on medusa
's GitHub releases page.
NOTE: macOS may set the quarantine extended attribute on the downloaded zip file. To remove this attribute, run the following command:
sudo xattr -rd com.apple.quarantine <my_file.tar.gz>
.
Once downloaded, you will need to unzip the file and move the binary to somewhere in your $PATH
. Please review the instructions
here (if you are a Windows user, we
recommend using the Windows GUI).