⚑ 64 developer tools, always updated, new upstream releases land in apt within hours. Join the Discord

🎁 The apt mirror needs a subscription. Try every tool free for 14 days, no card needed. See pricing Β· πŸ†“ There is an always-free mirror Β· πŸ” apt returning 401?

Latest developer tools on elementary OS

61 developer tools at their latest upstream versions, one apt command, GPG-signed

⚑ The short answer. Yes, deb.griffo.io works on elementary OS. 61 developer tools install with plain apt on elementary OS 8 and elementary OS 7, with the same setup command as Debian and Ubuntu: it reads UBUNTU_CODENAME from /etc/os-release and asks for the matching suite, noble on elementary OS 8 (Circe).

elementary OS is built on Ubuntu LTS, and its AppCenter is built around Flatpak apps, so command-line developer tools are left to apt and to whatever versions the Ubuntu base froze. deb.griffo.io serves the current upstream release of each tool below as an apt package for that base.

πŸ” Which suite your release gets

ReleaseBuilt onSuiteTools available
elementary OS 8 (Circe)Ubuntu 24.04 LTS β€œNoble Numbat”noble61
elementary OS 7 (Horus)Ubuntu 22.04 LTS β€œJammy Jellyfish”jammy59

elementary OS puts its own name in VERSION_CODENAME (circe on OS 8), which is not an apt suite. It also sets UBUNTU_CODENAME to the Ubuntu release underneath, and the setup command reads that first, so it asks for noble. Guides that use lsb_release -sc fail on elementary OS for this reason.

πŸ“¦ Add the repository

Step 1: Add the repository & key

Run the commands
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(. /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(. /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update

πŸ†“ There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud and Zed; any other tool can be enrolled on request.

How the free mirror works β†’

Step 2: Install any tool

sudo apt install -y neovim ripgrep fzf
apt install -y neovim ripgrep fzf

To check what the command will pick on your machine before running it: . /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}. It should print one of the suites in the table above.

πŸ“‹ Every tool available on elementary OS

Versions are what the repository serves for noble right now (updated 2026-10-19). Older releases get the same version wherever the tool is built for them; the last column says which are.

Toolapt packageVersionelementary OS 7
Atuinatuin18.24.1-2~griffoβœ“
ble.shble.sh0.4.0-git20260908.d81fd54-2~griffoβœ“
bottombtm0.14.9-2~griffoβœ“
Bunbun1.4.3-3~griffoβœ“
cliampcliamp2.3.0-2~griffoβœ“
Denodeno2.9.7-3~griffoβœ“
difftasticdifftastic0.70.0-2~griffoβœ“
DuckDBduckdb1.5.6-3~griffoβœ“
ezaeza0.23.5-3~griffoβœ“
Fastfetchfastfetch2.66.0-3~griffoβœ“
fishfish4.9.3-2~griffoβœ“
Forgejoforgejo15.0.2-2~griffoβœ“
Forgejo Runnerforgejo-runner13.2.0-2~griffoβœ“
fresh-editorfresh-editor0.5.3-2~griffoβœ“
fzffzf0.74.5-2~griffoβœ“
Garagegarage2.4.1-2~griffoβœ“
GitUIgitui0.28.1-2~griffoβœ“
GPU Screen Recordergpu-screen-recorder-cli6.1.4-1~nobleβœ—
Headscaleheadscale0.29.5-2~griffoβœ“
Helixhelix25.07.1-3~griffoβœ“
herdrherdr0.9.5-2~griffoβœ“
Jujutsujujutsu0.46.0-2~griffoβœ“
justjust1.59.0-2~griffoβœ“
k9sk9s0.51.0-2~griffoβœ“
kittykitty0.49.2-2~griffoβœ“
lazydockerlazydocker0.25.2-2~griffoβœ“
lazygitlazygit0.66.2-2~griffoβœ“
lazyjiralazyjira2.19.2-2~griffoβœ“
lowfilowfi2.0.7-3~griffoβœ—
mitmproxymitmproxy12.2.3-3~griffoβœ“
Neovimneovim0.12.6-2~griffoβœ“
Nushellnushell0.116.1-2~griffoβœ“
Oh My Poshoh-my-posh31.8.0-2~griffoβœ“
rclonerclone1.75.2-2~griffoβœ“
resticrestic0.19.1-2~griffoβœ“
rgrcrgrc0.6.35-2~griffoβœ“
ripgrepripgrep15.2.0-2~griffoβœ“
Ruffruff0.17.1-2~griffoβœ“
rumdlrumdl0.3.0-2~griffoβœ“
Serieserie0.10.0-2~griffoβœ“
Spotifastspotifast0.13.3-2~griffoβœ“
Starshipstarship1.27.0-2~griffoβœ“
superfilesuperfile1.6.0-2~griffoβœ“
Televisiontelevision0.15.9-2~griffoβœ“
Termusictermusic0.13.2-3~griffoβœ“
TigerBeetletigerbeetle0.17.9-2~griffoβœ“
tree-sitter-clitree-sitter-cli0.27.1-2~griffoβœ“
Unclouduncloud0.21.0-2~griffoβœ“
Unregistryunregistry0.4.3-2~griffoβœ“
uvuv0.13.1-2~griffoβœ“
viuviu1.6.1-3~griffoβœ“
workmuxworkmux0.1.276-2~griffoβœ“
Yaziyazi26.9.1-2~griffoβœ“
yqyq4.54.1-2~griffoβœ“
yt-dlpyt-dlp2026.08.19-2~griffoβœ“
ZapZapzapzap7.5.1-2~griffoβœ“
Zedzed1.24.3-1~griffoβœ“
Zellijzellij0.45.1-2~griffoβœ“
Zigzig-stable0.17.0-2~griffoβœ“
ZLSzls0.16.1-2~griffoβœ“
zoxidezoxide0.10.0-2~griffoβœ“

❓ Common questions

Why does a guide using lsb_release -sc fail on elementary OS?

lsb_release -sc prints elementary's own codename (circe on OS 8), and no apt repository is built for it. The setup command here reads UBUNTU_CODENAME, which elementary OS sets to the Ubuntu base (noble).

Is deb.griffo.io an official elementary OS repository?

No. It is an unofficial repository maintained by Dario Griffo, not affiliated with elementary OS. Every package is built automatically from the official upstream release, the packaging is open source on GitHub, and the archive is GPG-signed.

Does it cost anything?

The repository is a subscription (€15 a year or €150 once) with a free trial. A free mirror, deb-free.griffo.io, serves a smaller set of tools at a delay, with the same setup on this distro.

How do I remove the repository?

Delete /etc/apt/sources.list.d/deb.griffo.io.list and /etc/apt/keyrings/deb.griffo.io.gpg, then run sudo apt update. Tools you installed stay until you apt remove them.

πŸ”— Related

Start your 14-day free trial

Enter your email and we will send your apt credentials within minutes. No card needed.

This becomes your apt login. If you stay, pay with the same address and nothing on your machines changes.

One trial per email address. Two days before it ends we email you a link to keep access. If you do nothing, access stops and nothing is charged.