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
| Command | Needs a subscription? |
|---|---|
apt update | No — the indexes stay open to everyone |
apt policy / apt-cache | No |
| Browsing /apt/dists/ | No |
apt install / apt upgrade | Yes, from 1 October 2026 |
| Packages already installed | No — they keep working, nothing expires |
| deb-free.griffo.io | No — free forever, no account |
The .deb files on GitHub | No — 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:
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 updatetee /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 updateThen sudo apt install <package> works exactly as before. If it
still returns 401, check these in order:
- The
machineline isdeb.griffo.io— nohttps://, no trailing slash, no/aptpath. - The file is in
/etc/apt/auth.conf.d/and its name ends in.conf. apt silently ignores any other extension. - The file is owned by root and mode
600. apt refuses to read credentials that other users can read. - No stray quotes around the password, and no trailing whitespace.
- Still stuck? Ask in Discord — that is the fastest way to get it sorted.
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.
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 updaterm -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 updateDo 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.debwget 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.debYou 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 →