aMule is an eMule-like client for the eDonkey and Kademlia networks.
aMule is a multi-platform client for the eD2k / Kad file-sharing network, originally a fork of the Windows client eMule (via xMule and lMule). aMule started in August 2003.
Supported platforms today: Linux, FreeBSD, OpenBSD, macOS, and Windows (MSYS2 / mingw-w64), on both x86_64 and ARM64.
aMule aims to stay close to eMule in look-and-feel so users moving between the two have minimal friction. New eMule protocol-level features are generally adopted into aMule shortly after.
amule— all-in-one GUI client.amuled— headless daemon, no GUI.amulegui— remote GUI; connects to a local or remoteamuledover the EC (External Connection) protocol.amuleweb— HTTP interface to a runningamuled.amulecmd— interactive CLI for a runningamuled.
aMule uses CMake. Quick start:
cmake -B build -DBUILD_MONOLITHIC=YES -DBUILD_REMOTEGUI=YES
cmake --build build -j"$(nproc)"
sudo cmake --install buildSee docs/INSTALL.md for the full list of dependencies,
build options (BUILD_DAEMON, BUILD_AMULECMD, ENABLE_NLS, ENABLE_UPNP,
ENABLE_IP2COUNTRY, etc.), and platform-specific notes. The CI workflow
.github/workflows/ccpp.yml is the
authoritative reference for the exact deps and flags used to build aMule
on Linux, macOS, and Windows.
aMule comes with reasonable default settings and should be usable as-is. However, to receive a HighID you need to open aMule's ports on your firewall and/or forward them on your router. The wiki has articles on getting a HighID and setting up firewall rules.
If you find a bug or miss a feature, please open an issue on
GitHub (preferred) or report it on the forum. A good bug report
includes the exact aMule version (amuled --version), the platform you're
on, and steps to reproduce.
Contributions are always welcome!
You can contribute to aMule in several ways:
- Code — fix a bug, implement a feature, improve performance. The preferred path is a pull request on GitHub; patches on the forum also work.
- Translation — translate aMule, translate the wiki, or translate aMule's documentation into your language.
- Wiki — aMule's wiki contains historical content that no longer matches current behaviour. Updating outdated pages is genuinely helpful.
