System tray app for adguard-cli on Linux. Built because there was nothing decent for KDE Plasma or Hyprland — just a terminal and a service.
Works on Wayland and X11. Written in Python + PyQt6.
The UI language is detected automatically from the system locale. English is the default; German is included as an additional translation.
- Shows AdGuard status in the tray (green = running, grey = stopped, red = error)
- Start / stop / restart from the tray menu
- Toggle individual filters without opening a terminal
- Search / filter in the filter and userscript management dialogs
- Manage userscripts (install, enable/disable, remove)
- Update all filters with one click
- Install custom filter lists by URL
- Desktop notifications when status changes (with dedup to prevent spam)
- Autostart toggle right in the tray menu
--version/-Vflag
python>= 3.11python-pyqt6libnotify(for notifications)adguard-cli— install via official script (recommended) or AUR: adguard-cli-bin
Recommended (official upstream):
curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardCLI/release/install.sh | sh -s -- -vAlternative (Arch Linux AUR):
paru -S adguard-cli-binIf adguard-cli is not found at startup, the app shows a helpful dialog with install instructions and a copy-to-clipboard button.
sudo pacman -S python-pyqt6 libnotify
git clone https://github.com/RiDDiX/adguard-tray.git
cd adguard-tray
bash install.shIf ~/.local/bin isn't in your PATH yet (fish):
fish_add_path ~/.local/binThen just run:
adguard-trayEither tick "Autostart on login" in the tray menu, or add it via KDE System Settings → Autostart.
The entry goes to ~/.config/autostart/adguard-tray.desktop (standard XDG autostart).
● Status: Active – Protection running
──────────────────────────────
Toggle
Disable
Restart
──────────────────────────────
Filters ▶ (live list with checkboxes)
└ Manage filters…
Userscripts ▶ (live list with checkboxes)
└ Manage userscripts…
──────────────────────────────
Refresh status
──────────────────────────────
Open Manager… (full tabbed GUI)
AdGuard Configuration…(proxy.yaml editor)
Website Exceptions…
Settings…
Autostart on login [✓]
──────────────────────────────
adguard-tray vX.Y.Z · CLI vA.B.C
Quit
Start/stop requires root. The app tries in order:
adguard-cli start/stopdirectlypkexec adguard-cli start/stop(polkit dialog)pkexec systemctl start/stop adguard-cli
~/.config/adguard-tray/config.json — created automatically on first run.
{
"refresh_interval": 30,
"notifications_enabled": true,
"log_level": "INFO",
"adguard_cli_path": ""
}- adguard_cli_path: Leave empty to auto-detect via PATH. Set to a full path (e.g.
/opt/adguard-cli/adguard-cli) if installed in a non-standard location.
Logs go to ~/.local/share/adguard-tray/adguard-tray.log (auto-rotated, 5 MB max, 3 backups).
Needs a tray-capable status bar. With waybar, make sure "tray" is in your bar modules:
"tray": { "spacing": 8 }| Environment | Works |
|---|---|
| KDE Plasma 6 Wayland | ✅ |
| KDE Plasma 6 X11 | ✅ |
| Hyprland + waybar | ✅ |
| GNOME | needs AppIndicator extension |
MIT