This is Radicle’s download page, which references various ways of downloading Radicle to your machine.
Package Manager
Note that all packages are maintained on a best-effort basis, it might take some time for them to catch up after a release. Thanks to all community members that help distributing Radicle!
Advanced Package Tool (and compatible)
To use our repository at <{{ site.url }}/apt>, first install the signing key:
curl -LO {{ site.url }}/apt/radicle-archive-keyring.deb
chmod a+r radicle-archive-keyring.deb
sudo apt install ./radicle-archive-keyring.deb
Then add the URL to your /etc/apt/sources.list:
echo "deb [signed-by=/usr/share/radicle/radicle-archive-keyring.asc] {{ site.url }}/apt release main" | sudo tee -a "/etc/apt/sources.list"
Now install radicle, e.g.:
sudo apt-get install radicle
Pacman
Install radicle-bin from AUR.
Nix
Install radicle-node from Nixpkgs.
Reproducible Binary
Radicle uses a reproducible build pipeline to ensure that anyone can reproduce the binaries on this page from source.
Radicle
| OS | Arch | File | Signature | Checksum |
|---|---|---|---|---|
| Linux | Loading… | 💾 Loading… | Loading… | Loading… |
| Loading… | 💾 Loading… | Loading… | Loading… | |
| macOS | Loading… | 💾 Loading… | Loading… | Loading… |
| Loading… | 💾 Loading… | Loading… | Loading… |
| Signer | |
|---|---|
| Key | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL460KIEccS4881p7PPpiiQBsxF+H5tgC6De6crw9rbU |
| Fingerprint | SHA256:iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw |
| Owner | cloudhead@radicle.dev |
| Key | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBrJyJTwj/xG7F7qY0HDFXbb8A+xNNH8eILQ8hlvKW7/ |
| Fingerprint | SHA256:MOkcQvljDqQn8y+zlHFssx6gdH0rXdC+Wn88bsTPp6g |
| Owner | erik@radicle.dev |
| Key | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEFsaRqAJ1r6bBFwlcWzJKN7DdjItQDumCNc0wqw6Dvk |
| Fingerprint | SHA256:vV38nW5eSWfTMITdAoMCBOFzEEr0bDMXjSWHpwrpsKY |
| Owner | fintan@radicle.dev |
| Key | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFhK7CqgIIbSthoNn8ea32krOnMzC807Z+PpBkR2YOVj |
| Fingerprint | SHA256:xX6bpr+AeF5G0wIvU8nLisgYRM6XjQVNJs3hkMGt+T0 |
| Owner | lorenz@radicle.dev |
Radicle HTTP Daemon
| OS | Arch | File | Signature | Checksum |
|---|---|---|---|---|
| Linux | Loading… | 💾 Loading… | Loading… | Loading… |
| Loading… | 💾 Loading… | Loading… | Loading… | |
| macOS | Loading… | 💾 Loading… | Loading… | Loading… |
| Loading… | 💾 Loading… | Loading… | Loading… |
| Signer | |
|---|---|
| Key | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEFsaRqAJ1r6bBFwlcWzJKN7DdjItQDumCNc0wqw6Dvk |
| Fingerprint | SHA256:vV38nW5eSWfTMITdAoMCBOFzEEr0bDMXjSWHpwrpsKY |
| Owner | fintan@radicle.dev |
| Key | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPueml1FxzjvwbD7vRZfwoaoyuxLy0L+WLBwSNiVoJe5 |
| Fingerprint | SHA256:s/6EWLSAoeZWREZxj8vr6FtM6NaDjWhwsGB80eoaSzs |
| Owner | rudolfs@osins.org |
| Build host | Aarch64 Apple M1 |
Download
| OS | Arch | Target |
|---|---|---|
| Linux | x86_64 | x86_64-unknown-linux-musl |
| aarch64 (ARM) | aarch64-unknown-linux-musl | |
| macOS | x86_64 | x86_64-apple-darwin |
| aarch64 (ARM) | aarch64-apple-darwin |
You can download the appropriate tarball for your operating system with:
curl -O -L https://files.radicle.dev/releases/latest/radicle-$TARGET.tar.xz
For Radicle proper, and:
curl -O -L https://files.radicle.dev/releases/radicle-httpd/latest/radicle-httpd-$TARGET.tar.xz
For Radicle HTTP Daemon.
Replace $TARGET with the appropriate target for your system, from the table
above.
Verification
After you’ve downloaded the archive (ARCHIVE.tar.xz in the examples below),
verify the signature using the .sig file and ssh-keygen. The output must
match the following, including the respective signing key fingerprint from
the section above. For example:
$ ssh-keygen -Y check-novalidate -n file -s ARCHIVE.tar.xz.sig < ARCHIVE.tar.xz
Good "file" signature with ED25519 key SHA256:iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw
To verify the checksum, download the .sha256 file, and run:
$ sha256sum -c ARCHIVE.tar.xz.sha256
ARCHIVE.tar.xz: OK
The output must correspond to the above.
Installation
To install, simply extract the files to a location in your PATH, for example:
$ tar -xvJf ARCHIVE.tar.xz --strip-components=1 -C ~/.radicle/
This will place binaries in ~/.radicle/bin and manuals in ~/.radicle/man,
and overwrite any existing Radicle binaries.
---
title: Download Radicle
subtitle: Download a Radicle release
variant: wide
---
This is Radicle's <strong class="highlight">download</strong> page,
which references various ways of downloading Radicle to your machine.
# Package Manager
Note that all packages are maintained on a best-effort basis,
it might take some time for them to catch up after a release.
Thanks to all community members that help distributing Radicle!
## Advanced Package Tool (and compatible)
To use our repository at <{{ site.url }}/apt>,
first install the signing key:
```
curl -LO {{ site.url }}/apt/radicle-archive-keyring.deb
chmod a+r radicle-archive-keyring.deb
sudo apt install ./radicle-archive-keyring.deb
```
Then add the URL to your `/etc/apt/sources.list`:
```
echo "deb [signed-by=/usr/share/radicle/radicle-archive-keyring.asc] {{ site.url }}/apt release main" | sudo tee -a "/etc/apt/sources.list"
```
Now install `radicle`, e.g.:
```
sudo apt-get install radicle
```
## Pacman
Install [`radicle-bin`](https://aur.archlinux.org/packages?O=0&K=radicle) from AUR.
## Nix
Install [`radicle-node`](https://search.nixos.org/packages?show=radicle-node&query=radicle) from Nixpkgs.
# Reproducible Binary
Radicle uses a [reproducible build][rb] pipeline to ensure that anyone can
reproduce the binaries on this page from source.
[rb]: https://reproducible-builds.org/
<noscript>
<p class="notice">
<strong>Note</strong>: to load the latest release data, enable JavaScript in your browser.
</p>
</noscript>
<p id="radicle-release-header" class="loading">
<span class="release-loader"></span>
<span>
<h2 id="radicle-release-name">Radicle</h2>
<p id="radicle-release-info"><!-- Dynamic --></p>
</span>
</p>
<noscript>
<p>
Browse the latest release at
<a href="https://files.radicle.dev/releases/latest">https://files.radicle.dev/releases/latest</a>
</p>
</noscript>
<table class="hidden loading" id="radicle-releases">
<thead>
<th scope="col">OS</th>
<th scope="col" class="desktop">Arch</th>
<th scope="col">File</th>
<th scope="col">Signature</th>
<th scope="col">Checksum</th>
</thead>
<tr data-release-arch="x86_64" data-release-binary="unknown-linux-musl">
<th scope="row" rowspan="2">Linux</th>
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
<tr data-release-arch="aarch64" data-release-binary="unknown-linux-musl">
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
<tr data-release-arch="x86_64" data-release-binary="apple-darwin">
<th scope="row" rowspan="2">macOS</th>
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
<tr data-release-arch="aarch64" data-release-binary="apple-darwin">
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
</table>
<table>
<thead><th>Signer</th></thead>
<tr><td>Key</td><td><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL460KIEccS4881p7PPpiiQBsxF+H5tgC6De6crw9rbU</code></td></tr>
<tr><td>Fingerprint</td><td><code>SHA256:iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw</code></td></tr>
<tr><td>Owner</td><td>cloudhead@radicle.dev</td></tr>
<tr><td>Key</td><td><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBrJyJTwj/xG7F7qY0HDFXbb8A+xNNH8eILQ8hlvKW7/</code></td></tr>
<tr><td>Fingerprint</td><td><code>SHA256:MOkcQvljDqQn8y+zlHFssx6gdH0rXdC+Wn88bsTPp6g</code></td></tr>
<tr><td>Owner</td><td>erik@radicle.dev</td></tr>
<tr><td>Key</td><td><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEFsaRqAJ1r6bBFwlcWzJKN7DdjItQDumCNc0wqw6Dvk</code></td></tr>
<tr><td>Fingerprint</td><td><code>SHA256:vV38nW5eSWfTMITdAoMCBOFzEEr0bDMXjSWHpwrpsKY</code></td></tr>
<tr><td>Owner</td><td>fintan@radicle.dev</td></tr>
<tr><td>Key</td><td><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFhK7CqgIIbSthoNn8ea32krOnMzC807Z+PpBkR2YOVj</code></td></tr>
<tr><td>Fingerprint</td><td><code>SHA256:xX6bpr+AeF5G0wIvU8nLisgYRM6XjQVNJs3hkMGt+T0</code></td></tr>
<tr><td>Owner</td><td>lorenz@radicle.dev</td></tr>
</table>
<p id="radicle-httpd-release-header" class="loading">
<span class="release-loader"></span>
<span>
<h2 id="radicle-httpd-release-name">Radicle HTTP Daemon</h2>
<p id="radicle-httpd-release-info"><!-- Dynamic --></p>
</span>
</p>
<noscript>
<p>
Browse the latest release at
<a href="https://files.radicle.dev/releases/radicle-httpd/latest">https://files.radicle.dev/releases/radicle-httpd/latest</a>
</p>
</noscript>
<table class="hidden loading" id="radicle-httpd-releases">
<thead>
<th scope="col">OS</th>
<th scope="col" class="desktop">Arch</th>
<th scope="col">File</th>
<th scope="col">Signature</th>
<th scope="col">Checksum</th>
</thead>
<tr data-release-arch="x86_64" data-release-binary="unknown-linux-musl">
<th scope="row" rowspan="2">Linux</th>
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
<tr data-release-arch="aarch64" data-release-binary="unknown-linux-musl">
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
<tr data-release-arch="x86_64" data-release-binary="apple-darwin">
<th scope="row" rowspan="2">macOS</th>
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
<tr data-release-arch="aarch64" data-release-binary="apple-darwin">
<td class="release-arch desktop">Loading…</td>
<td>💾 <a class="release-url">Loading…</a></td>
<td><a class="release-sig">Loading…</a></td>
<td><a class="release-checksum">Loading…</a></td>
</tr>
</table>
<table>
<thead><th>Signer</th></thead>
<tr><td>Key</td><td><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEFsaRqAJ1r6bBFwlcWzJKN7DdjItQDumCNc0wqw6Dvk</code></td></tr>
<tr><td>Fingerprint</td><td><code>SHA256:vV38nW5eSWfTMITdAoMCBOFzEEr0bDMXjSWHpwrpsKY</code></td></tr>
<tr><td>Owner</td><td>fintan@radicle.dev</td></tr>
<tr><td>Key</td><td><code>ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPueml1FxzjvwbD7vRZfwoaoyuxLy0L+WLBwSNiVoJe5</code></td></tr>
<tr><td>Fingerprint</td><td><code>SHA256:s/6EWLSAoeZWREZxj8vr6FtM6NaDjWhwsGB80eoaSzs</code></td></tr>
<tr><td>Owner</td><td>rudolfs@osins.org</td></tr>
<tr><td>Build host</td><td>Aarch64 Apple M1</td></tr>
</table>
## Download
<table>
<thead>
<th scope="col">OS</th>
<th scope="col">Arch</th>
<th scope="col">Target</th>
</thead>
<tr data-release-arch="x86_64" data-release-binary="unknown-linux-musl">
<th scope="row" rowspan="2">Linux</th>
<td>x86_64</td>
<td>x86_64-unknown-linux-musl</td>
</tr>
<tr data-release-arch="aarch64" data-release-binary="unknown-linux-musl">
<td>aarch64 (ARM)</td>
<td>aarch64-unknown-linux-musl</td>
</tr>
<tr data-release-arch="x86_64" data-release-binary="apple-darwin">
<th scope="row" rowspan="2">macOS</th>
<td>x86_64</td>
<td>x86_64-apple-darwin</td>
</tr>
<tr data-release-arch="aarch64" data-release-binary="apple-darwin">
<td>aarch64 (ARM)</td>
<td>aarch64-apple-darwin</td>
</tr>
</table>
You can download the appropriate tarball for your operating system with:
curl -O -L https://files.radicle.dev/releases/latest/radicle-$TARGET.tar.xz
For Radicle proper, and:
curl -O -L https://files.radicle.dev/releases/radicle-httpd/latest/radicle-httpd-$TARGET.tar.xz
For Radicle HTTP Daemon.
Replace `$TARGET` with the appropriate target for your system, from the table
above.
## Verification
After you've downloaded the archive (`ARCHIVE.tar.xz` in the examples below),
verify the signature using the `.sig` file and `ssh-keygen`. The output must
match the following, including the respective signing key fingerprint from
the section above. For example:
$ ssh-keygen -Y check-novalidate -n file -s ARCHIVE.tar.xz.sig < ARCHIVE.tar.xz
Good "file" signature with ED25519 key SHA256:iTDjRHSIaoL8dpHbQ0mv+y0IQqPufGl2hQwk4TbXFlw
To verify the checksum, download the `.sha256` file, and run:
$ sha256sum -c ARCHIVE.tar.xz.sha256
ARCHIVE.tar.xz: OK
The output must correspond to the above.
## Installation
To install, simply extract the files to a location in your `PATH`, for example:
$ tar -xvJf ARCHIVE.tar.xz --strip-components=1 -C ~/.radicle/
This will place binaries in `~/.radicle/bin` and manuals in `~/.radicle/man`,
and overwrite any existing Radicle binaries.
<script>
getRelease("Radicle", "https://files.radicle.dev/releases/latest", "radicle");
getRelease("Radicle HTTP Daemon", "https://files.radicle.dev/releases/radicle-httpd/latest", "radicle-httpd");
function getRelease(name, urlBase, releaseId) {
const releases = document.getElementById(`${releaseId}-releases`);
releases.classList.remove("hidden");
fetch(`${urlBase}/${releaseId}.json`)
.then(res => res.json())
.then(data => {
const version = data.version;
const commit = data.commit;
const release = document.getElementById(`${releaseId}-release-header`);
const releaseName = document.getElementById(`${releaseId}-release-name`);
const releaseInfo = document.getElementById(`${releaseId}-release-info`);
document.querySelectorAll(`#${releaseId}-releases [data-release-binary]`).forEach((row) => {
const arch = row.dataset.releaseArch;
const binary = row.dataset.releaseBinary;
const archive = `${releaseId}-${version}-${arch}-${binary}.tar.xz`;
const url = `${urlBase}/${archive}`;
row.querySelector(".release-arch").innerText = arch;
row.querySelector(".release-url").innerText = archive;
row.querySelector(".release-sig").innerText = ".sig";
row.querySelector(".release-checksum").innerText = ".sha256";
row.querySelector(".release-url").href = url;
row.querySelector(".release-sig").href = `${url}.sig`;
row.querySelector(".release-checksum").href = `${url}.sha256`;
});
release.classList.remove("loading");
releaseName.innerText = `${name} ${version}`;
releaseInfo.innerHTML = `Built from commit <code>${commit}</code> on ${new Date(data.timestamp * 1000).toUTCString()}.`;
});
}
</script>