Skip to content


Repository files navigation


BitTorrent Client written in GO (as a joke)


Packaging status


MIT License Logo is ebin



  • i2p only, no chances of cross network contamination, aka no way to leak IP.
  • works with i2pd and Java I2P using the SAM api
  • also works with lokinet
  • Magnet URIs
  • memes


  • transmission compatible RPC


  • DHT Support
  • Maggot Support


  • GNU Make
  • GO 1.16 or higher


right now the best way to build is with make

$ git clone
$ cd XD
$ make

if you do not want to build with embedded webui instead run:

$ make no-webui

you can build with go get using:

$ go get -u -v

please note that using go get disables the webui.

to compile XD to use lokinet by default use:

$ make LOKINET=1

or use go get:

$ go get -u -v -tags lokinet

cross compile for Raspberry PI

Set GOARCH and GOOS when building with make:

$ make GOARCH=arm GOOS=linux


To autogenerate a new config and start:

$ ./XD torrents.ini

after started put torrent files into ./storage/downloads/ to start downloading

to seed torrents put data files into ./storage/downloads/ first then add torrent files

if you compiled with web ui it will be up at

To use the RPC Tool symlink XD to XD-CLI

$ ln -s XD XD-CLI

to list torrents run:

$ ./XD-CLI list

to add a torrent from http server:

$ ./XD-CLI add http://somehwere.i2p/some_torrent_that_is_not_fake.torrent

Optionally on non windows systems you can install XD to /usr/local/

# make install

Or your home directory, make sure $HOME/bin is in your $PATH

$ make install PREFIX=$HOME

Tunnel length and quanity along with all other i2cp options are set in the i2p section of the configuration: