apt on Ubuntu 24.04 on WSL and Ubuntu 22.04 on WSL and Debian on WSL, with the same setup command as Debian and Ubuntu: it reads UBUNTU_CODENAME / VERSION_CODENAME from /etc/os-release and asks for the matching suite, noble on Ubuntu 24.04 on WSL.
WSL runs a real Ubuntu or Debian on Windows, which means it also inherits their archives, where most developer tools are frozen at the version each release shipped with. deb.griffo.io serves the current upstream release of each tool below as an apt package, so a WSL terminal gets the same current toolchain as a Linux workstation.
π Which suite your release gets
| Release | Built on | Suite | Tools available |
|---|---|---|---|
| Ubuntu 24.04 on WSL | Ubuntu 24.04 LTS βNoble Numbatβ | noble | 61 |
| Ubuntu 22.04 on WSL | Ubuntu 22.04 LTS βJammy Jellyfishβ | jammy | 59 |
| Debian on WSL | Debian 13 βTrixieβ | trixie | 63 |
Nothing about WSL changes the setup: the Ubuntu and Debian distributions in the Microsoft Store carry the normal /etc/os-release, so the command picks noble, jammy or the Debian suite on its own. Run it inside the WSL shell, not in PowerShell.
π¦ Add the repository
Step 1: Add the repository & key
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 updateinstall -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.
Step 2: Install any tool
sudo apt install -y neovim ripgrep fzfapt install -y neovim ripgrep fzfTo 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 WSL
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.
| Tool | apt package | Version | Ubuntu 22.04 on WSL | Debian on WSL |
|---|---|---|---|---|
| Atuin | atuin | 18.24.1-2~griffo | β | β |
| ble.sh | ble.sh | 0.4.0-git20260908.d81fd54-2~griffo | β | β |
| bottom | btm | 0.14.9-2~griffo | β | β |
| Bun | bun | 1.4.3-3~griffo | β | β |
| cliamp | cliamp | 2.3.0-2~griffo | β | β |
| Deno | deno | 2.9.7-3~griffo | β | β |
| difftastic | difftastic | 0.70.0-2~griffo | β | β |
| DuckDB | duckdb | 1.5.6-3~griffo | β | β |
| eza | eza | 0.23.5-3~griffo | β | β |
| Fastfetch | fastfetch | 2.66.0-3~griffo | β | β |
| fish | fish | 4.9.3-2~griffo | β | β |
| Forgejo | forgejo | 15.0.2-2~griffo | β | β |
| Forgejo Runner | forgejo-runner | 13.2.0-2~griffo | β | β |
| fresh-editor | fresh-editor | 0.5.3-2~griffo | β | β |
| fzf | fzf | 0.74.5-2~griffo | β | β |
| Garage | garage | 2.4.1-2~griffo | β | β |
| Ghostty | ghostty | not built | β | β |
| GitUI | gitui | 0.28.1-2~griffo | β | β |
| GPU Screen Recorder | gpu-screen-recorder-cli | 6.1.4-1~noble | β | β |
| Headscale | headscale | 0.29.5-2~griffo | β | β |
| Helix | helix | 25.07.1-3~griffo | β | β |
| herdr | herdr | 0.9.5-2~griffo | β | β |
| Jujutsu | jujutsu | 0.46.0-2~griffo | β | β |
| just | just | 1.59.0-2~griffo | β | β |
| k9s | k9s | 0.51.0-2~griffo | β | β |
| kitty | kitty | 0.49.2-2~griffo | β | β |
| lazydocker | lazydocker | 0.25.2-2~griffo | β | β |
| lazygit | lazygit | 0.66.2-2~griffo | β | β |
| lazyjira | lazyjira | 2.19.2-2~griffo | β | β |
| lowfi | lowfi | 2.0.7-3~griffo | β | β |
| mitmproxy | mitmproxy | 12.2.3-3~griffo | β | β |
| Neovim | neovim | 0.12.6-2~griffo | β | β |
| Nushell | nushell | 0.116.1-2~griffo | β | β |
| Oh My Posh | oh-my-posh | 31.8.0-2~griffo | β | β |
| rclone | rclone | 1.75.2-2~griffo | β | β |
| restic | restic | 0.19.1-2~griffo | β | β |
| rgrc | rgrc | 0.6.35-2~griffo | β | β |
| ripgrep | ripgrep | 15.2.0-2~griffo | β | β |
| Ruff | ruff | 0.17.1-2~griffo | β | β |
| rumdl | rumdl | 0.3.0-2~griffo | β | β |
| Serie | serie | 0.10.0-2~griffo | β | β |
| Spotifast | spotifast | 0.13.3-2~griffo | β | β |
| Starship | starship | 1.27.0-2~griffo | β | β |
| superfile | superfile | 1.6.0-2~griffo | β | β |
| Television | television | 0.15.9-2~griffo | β | β |
| Termusic | termusic | 0.13.2-3~griffo | β | β |
| TigerBeetle | tigerbeetle | 0.17.9-2~griffo | β | β |
| tldr | tldr | not built | β | β |
| tree-sitter-cli | tree-sitter-cli | 0.27.1-2~griffo | β | β |
| Uncloud | uncloud | 0.21.0-2~griffo | β | β |
| Unregistry | unregistry | 0.4.3-2~griffo | β | β |
| uv | uv | 0.13.1-2~griffo | β | β |
| viu | viu | 1.6.1-3~griffo | β | β |
| workmux | workmux | 0.1.276-2~griffo | β | β |
| Yazi | yazi | 26.9.1-2~griffo | β | β |
| yq | yq | 4.54.1-2~griffo | β | β |
| yt-dlp | yt-dlp | 2026.08.19-2~griffo | β | β |
| ZapZap | zapzap | 7.5.1-2~griffo | β | β |
| Zed | zed | 1.24.3-1~griffo | β | β |
| Zellij | zellij | 0.45.1-2~griffo | β | β |
| Zig | zig-stable | 0.17.0-2~griffo | β | β |
| ZLS | zls | 0.16.1-2~griffo | β | β |
| zoxide | zoxide | 0.10.0-2~griffo | β | β |
β Common questions
Do the tools work on WSL 1 and WSL 2?
They are ordinary Linux binaries, so they run on WSL 2. WSL 1 translates system calls and some tools that rely on newer kernel features may not run there; WSL 2 is the default and the one to use.
Is deb.griffo.io an official WSL repository?
No. It is an unofficial repository maintained by Dario Griffo, not affiliated with WSL. 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
- Latest dev tools on Linux Mint
- Latest dev tools on Linux Mint Debian Edition (LMDE)
- Latest dev tools on Pop!_OS
- Latest dev tools on Zorin OS
- Latest dev tools on elementary OS
- Latest dev tools on KDE neon
- Latest dev tools on Raspberry Pi OS
- Latest dev tools on Proxmox VE
- Latest dev tools on Kali Linux
- All packages served by deb.griffo.io