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

📅 From , the apt mirror will require a subscription. See pricing · 🆓 There is an always-free mirror

🔐 apt says 401 Unauthorized

What it means when it comes from deb.griffo.io, and the three ways forward

⚡ The short answer. Nothing on your system is broken and no package has been removed. From 1 October 2026, 12:00 UK time, downloading packages from deb.griffo.io requires a subscription. apt update still works for everyone; apt install and apt upgrade need credentials. You have three ways forward, all below: add your credentials, switch to the always-free mirror, or take the .deb straight from GitHub, which is free and always will be.

🧾 The error you are seeing

E: Failed to fetch https://deb.griffo.io/apt/pool/main/g/ghostty/ghostty_1.3.1-5~trixie_amd64.deb  401  Unauthorized [IP: 2a01:… 443]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Running apt-get update --fix-missing will not help, because nothing is missing — the server answered, and the answer was "you are not authenticated". Some apt versions phrase it as The repository … is not signed only when the key is the problem; a bare 401 is always authentication.

🚦 What still works without a subscription

CommandNeeds a subscription?
apt updateNo — the indexes stay open to everyone
apt policy / apt-cacheNo
Browsing /apt/dists/No
apt install / apt upgradeYes, from 1 October 2026
Packages already installedNo — they keep working, nothing expires
deb-free.griffo.ioNo — free forever, no account
The .deb files on GitHubNo — free forever

1. You have a subscription — store the credentials

Credentials go in /etc/apt/auth.conf.d/, never in the sources.list line, where every user on the machine could read them and apt would leak them in error messages:

Run the commands
sudo tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
sudo chmod 600 /etc/apt/auth.conf.d/deb.griffo.io.conf
sudo apt update
tee /etc/apt/auth.conf.d/deb.griffo.io.conf > /dev/null <<'EOF'
machine deb.griffo.io
login your-email@example.com
password your-subscription-password
EOF
chmod 600 /etc/apt/auth.conf.d/deb.griffo.io.conf
apt update

Then sudo apt install <package> works exactly as before. If it still returns 401, check these in order:

2. Switch to the always-free mirror

deb-free.griffo.io needs no account and no payment, ever. It serves the newest release that is at least two months old, and publishes security and patch fixes for that release immediately. It currently carries Ghostty, Oh My Posh and Zed — any other tool can be enrolled on request, so ask in Discord if you need one.

Run the commands
sudo rm -f /etc/apt/sources.list.d/deb.griffo.io.list
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb-free.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb-free.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb-free.griffo.io.gpg] https://deb-free.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb-free.griffo.io.list > /dev/null
sudo apt update
rm -f /etc/apt/sources.list.d/deb.griffo.io.list
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb-free.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb-free.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb-free.griffo.io.gpg] https://deb-free.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb-free.griffo.io.list > /dev/null
apt update

Do not enable both repositories at once. apt would install whichever version is higher — the subscription one — and you would be back to a 401. Full details of the free mirror →

3. Take the .deb from GitHub

Every package here is built in public, and the build artifacts are attached to a public GitHub release. Those downloads are free and unauthenticated, today and after 1 October:

wget https://github.com/dariogriffo/ghostty-debian/releases/latest/download/ghostty_1.3.1-5~trixie_amd64.deb
sudo apt install ./ghostty_1.3.1-5~trixie_amd64.deb
wget https://github.com/dariogriffo/ghostty-debian/releases/latest/download/ghostty_1.3.1-5~trixie_amd64.deb
apt install ./ghostty_1.3.1-5~trixie_amd64.deb

You lose automatic upgrades — that is the thing the subscription pays for — but you never lose access to the software. Each tool's packaging repository is listed on how packages are built.

☕ You supported the project on Buy Me a Coffee

Then you get a free lifetime subscription. Come to Discord and it will be sorted out — that promise stands regardless of when you supported.

❓ Why this happened

Building 40+ tools for 8 Debian and Ubuntu suites, within hours of each upstream release, costs money and time every single day. The subscription pays for that; the free mirror exists so that nobody is locked out of software they have every right to run. The packages themselves are open source and always will be — what you are paying for is the automation that keeps them current. Pricing →