One app for everything you install. Search, install, update, and clean across pacman, AUR (live search), Flatpak, and npm — from a native PyQt6 desktop app or a headless
neoCLI with--jsonautomation.
Note
📖 Read before use — the Wiki covers every feature with screenshots, tips, and a video tutorial. Start here before your first install. For the complete feature overview and full Install instructions, read the wiki and docs below.
Install the stable release with your AUR helper:
yay -S neoarch # or: paru -S neoarchThen run it — a GUI and a CLI come together:
neoarch # launch the desktop app (also in your app menu)
neo --help # scriptable CLI; try: neo search cmatrixNew to it? In a nutshell NeoArch lets you search, install, and update packages from pacman, AUR, Flatpak, and npm in one place, keep those packages clean (orphans, cache, .pacnew diffs), snapshot before risky operations, and scan PKGBUILDs for dangerous code before you install from the AUR. Full capability list under App features; the complete CLI lives under CLI reference, and dependencies/source builds are in Install below.
** Save your setup for life** — NeoArch bundles let you capture every package you love into a portable bundle. Fresh install? One click brings your entire setup back. Share bundles with friends or sync them across your machines. Learn more → Bundles
Jump to: Quick start · App features · CLI reference · Install · Support · License
App — GUI & features (click to view)
- Unified search — browse pacman, AUR (live RPC search), Flatpak, and npm in one list, with filters per source.
- One-click actions — install, remove, hold, downgrade, mark-as-dependency, view package details, and manage
IgnorePkg/HoldPkg— all from a single screen. - Update center — see updates from every source with snapshot-before-update and ignition for staged updates.
- Local files — install
.pkg.tar.zst,.pacman,.AppImage, and.flatpakrefby drag-and-drop with automatic type detection.
- Snapshots — pick your engine, Timeshift or Snapper (BTRFS): list, create, revert, delete — automatically before risky operations, with optional pacman hooks so every update captures a Snapper snapshot.
- System backups — Btrfs-aware backups (package list + config export) with auto-prune keeping the last 5.
- Hygiene tools — orphan removal,
.pacnew/.pacsavediffs and merging, cache + BleachBit cleaning, and Arch news with offline caching. - Partial-update guard — warnings on selection-only Arch upgrades, with a Block partial updates switch in Settings → Security to enforce full-system upgrades.
- PKGBUILD scanner — static analysis mode flags risky post-install tools, elevation, dynamic shell, local binaries, and Unicode homograph spoofing (rules ported from ArchCanary).
- Docker manager — pull, run, stop, clean containers; port mappings, volumes, env, GPU passthrough, restart policies.
- Git manager — clone, build, update, clean; auto-detects Cargo, Autotools, Makefile, and custom builds.
- Bundles — save your favourite packages for life; export, import, install, share locally or as community bundles. Never lose your setup again.
- Plugin system — 50+ built-in plugins with Python lifecycle hooks (
on_startup,on_tick,on_view_changed) and a community store. - Cloud sync — Supabase OAuth sign-in; favorites and bundles sync across devices with exp-aware token caching.
![]() |
![]() |
Python 3.8+ · PyQt6 (Signals & Slots, QThread workers) · subprocess-bounded pacman calls · AUR RPC live search (rate-limited) · Flatpak user remotes · npm globals · Supabase Auth with cached session tokens · sudo/pkexec credential caching · config at ~/.config/neoarch · ignored updates at ~/.config/neoarch/ignored_updates.json.
CLI — full command reference (click to view)
neo is the shorthand for neoarch-cli; both are identical. Every command accepts --json, -y/--yes, and --no-confirm.
Search & install
neo search cmatrix # indexed results + source badges
neo search code --aur -l 5 # AUR only, 5 results
neo install 3 # install result #3 from last search
neo install yay # auto-fallback repo → AUR
neo install --flatpak spotify # force a Flatpak
neo install --aur yay-bin # force AUR
neo install https://host/app.pkg.tar.zst # install from URL
neo install-url https://host/app.pkg.tar.zst
neo remove firefox -c # remove + cascade unneeded deps
neo down firefox -l # list cached versions
neo down firefox -p # downgrade + pin to IgnorePkg
neo build yay --check --install # AUR build (chroot/check/commit)Updates & upgrades
neo upgrade # full system upgrade
neo upgrade --aur # AUR packages only
neo upgrade --flatpak / --npm # that source only
neo updates # list available updates (alias: list-updates)
neo updates --flatpak # include Flatpak updates
neo update firefox # update specific packages
neo list -e # explicitly installed packages
neo list -m # foreign (AUR) packagesMarks, ignores & keys
neo hold list # show IgnorePkg / HoldPkg
neo hold linux # hold (alias: neo marks hold)
neo hold reason firefox explicit # set install reason
neo hold unhold linux
neo ignore -a linux-lts # add to ignore list
neo ignore -l # list ignored packages
neo keys list # trusted pacman keys
neo keys init # initialize keyring
neo keys populate # official Arch keyrings
neo keys refresh # refresh from keyserver
neo keys sign <KEYID> # locally sign a keyHygiene & safety
neo clean orphans # remove orphaned packages
neo clean cache --keep 2 # trim package cache (paccache)
neo clean corrupt # find corrupted archives
neo clean flatpak # remove unused Flatpak runtimes
neo clean merge /etc/x.pacnew --accept # three-way .pacnew merge
neo backup # create a backup (default)
neo backup -l # list backups
neo backup -r /path/to/backup # restore from a backup
neo doctor # system health check
neo scan ./PKGBUILD # static security scanSystem & automation
neo reboot --check --json # is a reboot recommended?
neo parallel # show ParallelDownloads
neo parallel 10 # set it (root)
neo schedule # show weekly schedule (default)
neo schedule set --days 1,3,5 --time 05:30 --enable
neo recommend -n 5 # curated recommendations
neo recommend -n 10 --installed # include installed
neo news -l 5 # latest Arch news
neo news --mark-read # read + mark as read
neo appimage list # managed AppImages
neo appimage add ./Some.AppImage # add a local file
neo appimage add-repo Code ossia/score
neo appimage check --json # check for updates
neo appimage update # update all managed apps
neo config get theme # read a config key
neo config set theme dark # write a config keyWorked example — search, then install by number:
$ neo search cmatrix
[1] cmatrix [pacman] A curses-based scrolling 'Matrix'-like screen
[2] libcmatrix [pacman] Matrix client library written in GObject
[3] cmatrix-git [aur] A curses-based scrolling 'Matrix'-like screen
Tip: neo install <number> installs that result
$ neo install 3
[neoarch] selected [3] cmatrix-git [aur]
→ cmatrix-git [aur]
Install cmatrix-git? [y/N]Output adapts to terminal width (tables on wide, compact lists on small), and colors turn off with NO_COLOR=1.
Option A — AUR package (easiest, recommended)
yay -S neoarch # stable release — or: paru -S neoarch
yay -S neoarch-git # latest development build (adds neo/neoarch-cli to PATH)Launch the app from your application menu or run neoarch; the CLI runs as neo (same as neoarch-cli). The AUR packages install the runtime dependencies for you.
Option B — from source
Requirements: Arch Linux · Python 3.8+ · PyQt6 · sudo.
sudo pacman -S --needed python python-pyqt6 python-requests qt6-svg git flatpak nodejs npm
python Neoarch.pyVirtual environment (avoids Arch's "externally-managed-environment" pip guard):
python -m venv .venv && source .venv/bin/activate && pip install -r requirements_pyqt.txt
python Neoarch.pyOn Arch, system pip usually triggers externally-managed-environment — prefer pacman, a venv, or pipx.
Thank you, Ferreol. You were the very first person to back NeoArch, and your early support kept the project alive from day one — long before anyone else put a coin in the jar. Every release since has been built on top of that backing.
Your words live on in this sponsorship note — the very same page the app's About → Community tab links to. If you would like to join him and keep NeoArch independent and ad-free, you can buy the project a coffee.
- Ferreol — our first sponsor, and the reason this project is still here. See Sponsors for the full thank-you.
- ArchCanary — the PKGBUILD security scanner is built on rule sets ported from ArchCanary (MIT) by musqz, our pre-install scan gate. Thanks for the groundwork.
- Built on the shoulders of the Arch Linux ecosystem — pacman, AUR helpers (yay, paru), Flatpak, npm, PyQt6, and the snapshot backends Timeshift & Snapper.
Something missing or broken? Open an issue — or pull request it.
GPL-3.0-or-later · Project · Website · Built by Sanjaya Danushka

