{% extends "base.html" %} {% block title %}About - garuda-pilot{% endblock %} {% block content %}

How it works

garuda-pilot is a local web dashboard for managing system upgrades on any Arch-based distro — Garuda, CachyOS, EndeavourOS, Manjaro, vanilla Arch, and more. Despite the name, it is not Garuda-specific. It runs as a local web server on your machine — no data leaves your system, no accounts needed.

Start it with garuda-pilot and open http://127.0.0.1:8471 in your browser. There is no systemd service — run it when you want to review upgrades.

Distro support

DistroRecommended upgradeHealth checksSnapshots
Garuda Linuxgaruda-updategaruda-healthgaruda-update manages them
CachyOSpacman + paru/yayBuilt-in (11 checks)snapper pre/post (if snap-pac absent)
EndeavourOSeos-updateBuilt-insnapper pre/post (if snap-pac absent)
Manjaropamac upgradeBuilt-insnapper pre/post (if snap-pac absent)
Vanilla Archpacman + paru/yayBuilt-insnapper pre/post (if snap-pac absent)

Upgrade commands and health check backend are detected automatically at runtime.

Features

Upgrade Preview

See all pending updates before upgrading, sorted by risk score. Each package gets a 0-100 risk score based on category (kernel, graphics, system), news mentions, security advisories, hardware context, and version bump magnitude.

Data source: Runs checkupdates (from pacman-contrib) and queries pacman -Si for package details.

Risk Scoring

Each pending package is scored 0-100 with multiple factors combined additively:

Kernel package+40
Graphics (nvidia, vulkan, etc.)+30
System (systemd, glibc, etc.)+25
Mesa+20
Xorg / Wayland+15
Critical CVE (security.archlinux.org)+35
High CVE+25
Medium CVE+15
NVIDIA module loaded + kernel update+30
Mentioned in Arch news+20
Mentioned in Garuda news+15
Major version bump (e.g. 1.x → 2.x)+15
Flagged out-of-date on archlinux.org+10
High reverse dependency count (>10)+10
Trivial package (docs, fonts, themes)capped at 5
Patch-only update (same base version)capped at 10

Labels: low 0-19, medium 20-39, high 40-59, critical 60-100

Upgrade History

Every past pacman transaction is imported from /var/log/pacman.log and searchable. Drill into any transaction to see what was upgraded, installed, downgraded, or removed.

Data source: Parses /var/log/pacman.log on first startup. Each transaction is stored in the local SQLite database.

News

Arch Linux and Garuda Linux news are fetched and displayed with automatic package name extraction. You can see which of your installed packages are mentioned in news articles, and "manual intervention" posts are prominently flagged.

Data sources: archlinux.org/feeds/news/ (RSS) + forum.garudalinux.org announcements (RSS). Auto-refreshes when stale (>2 hours).

Security Advisories

Vulnerability advisories from the Arch Security Tracker, filterable by severity (Critical/High/Medium/Low) and status (Vulnerable/Fixed). Packages with active CVEs get security badges on the preview page.

Data source: security.archlinux.org/issues/all.json. Auto-refreshes when stale (>2 hours).

System Health

On Garuda Linux, runs garuda-health for 25+ system checks. On all other Arch-based distros, runs 11 built-in parallel checks: disk space (/, /home, /boot), failed systemd services, orphan packages, pacnew/pacsave files, pacman DB lock, NTP sync, journal errors (24h), swap usage, core dumps, and mirror freshness. Results are stored as snapshots so you can track changes over time.

Data source: garuda-health on Garuda; standard system tools (systemctl, pacman, journalctl, timedatectl, coredumpctl) on other distros.

Hardware Detection

Detects your GPU vendor and loaded kernel modules at startup using lspci and /proc/modules. This is used to flag dangerous combinations — for example, a kernel update when the NVIDIA proprietary module is loaded.

Data source: lspci (from pciutils), /proc/modules, uname -r.

FAQ

Does garuda-pilot perform upgrades?

No. garuda-pilot is read-only — it shows you what would be upgraded and helps you assess the risk. You still run sudo pacman -Syu yourself.

Does it send any data to the internet?

It only fetches public data: Arch news RSS, Garuda forum RSS, Arch security advisories JSON, and Arch package metadata. It never uploads or sends any of your system information anywhere.

Does it run as a systemd service?

No. Start it with garuda-pilot when you want to review upgrades, stop it with Ctrl+C.

Where is the database stored?

By default at ~/.local/share/garuda-pilot/garuda-pilot.db (SQLite). You can change this in ~/.config/garuda-pilot/config.toml.

How often is external data refreshed?

News, security advisories, and Garuda forum posts are auto-refreshed when older than 2 hours. You can also click the Refresh button on each page to force a fetch. Package metadata from archlinux.org is fetched fresh on each preview refresh.

Does it work on non-Garuda Arch distros?

Yes — fully. All features work on any Arch-based distro. The upgrade launcher detects your distro and recommends the right command. The health page uses garuda-health on Garuda and 11 built-in checks (disk space, failed services, orphan packages, NTP sync, etc.) everywhere else.

What is a "trivial" package?

Packages like documentation, fonts, themes, locales, and shell completions that are unlikely to cause issues when upgraded. These are capped at a risk score of 5.

Technical Overview

FrameworkPython 3.11+ / FastAPI (async)
DatabaseSQLite via aiosqlite (WAL mode)
TemplatesJinja2 with HTMX for dynamic updates
HTTP clienthttpx (async, for RSS/JSON/API fetches)
ServerUvicorn on 127.0.0.1:8471 (localhost only)
DependenciesHTMX vendored locally — no CDN, works offline
ConfigOptional TOML at ~/.config/garuda-pilot/config.toml

Database Backup

Your upgrade history, news read states, health snapshots, and security data are stored in a local SQLite database. Use the button below to create a timestamped backup, or restore from a previous one.

{% include "backup_list.html" %}

README

{{ readme_html | safe }}
garuda-pilot v{{ version }} — MIT License
{% endblock %}