# aurtools A small set of shell scripts to manage AUR packages on Arch Linux **without** `yay`, `paru`, or any other AUR helper. This project follows the classic AUR workflow: clone the package repository, review the `PKGBUILD`, build with `makepkg`, and install with `pacman -U`. [web:22][web:303][web:305] ## Included scripts - `aurinstall` — clone or update an AUR package repository, optionally review `PKGBUILD`, build the package, and install it with `pacman -U`. [web:22][web:305] - `aurupdate` — iterate through local AUR package repositories, pull updates, rebuild selected packages, and reinstall them locally. [web:22][web:305] - `aurremove` — remove installed AUR packages with `pacman -Rns` and optionally delete the local repository directory. [web:46][web:107] - `_aurtools` — Zsh completion file for the scripts, including optional online package-name completion for `aurinstall` via the AUR RPC interface. [web:281] ## Why use this This setup is intended for users who want full visibility into what gets built and installed from the AUR. Instead of relying on a full AUR helper, it keeps each package as a normal Git repository under `~/Aur`, making updates and audits easier to understand and review. [web:22][web:189] ## Requirements Install the usual Arch build tools first: ```bash sudo pacman -S --needed base-devel git ``` Some optional features require additional tools: ```bash sudo pacman -S curl jq zsh ``` - `curl` and `jq` are used by the optional online completion for `aurinstall` through the AUR RPC API. [web:281] - `zsh` is needed only for the provided completion script. - An editor such as `nvim` is useful if `aurinstall` is run with review options like `-e`, `-E`, or `-d`. ## Installation Copy the scripts somewhere in your `PATH`, for example `~/.local/bin`: ```bash mkdir ~/Aur install -Dm755 aurinstall ~/.local/bin/aurinstall install -Dm755 aurupdate ~/.local/bin/aurupdate install -Dm755 aurremove ~/.local/bin/aurremove ``` Install the Zsh completion file: ```bash mkdir -p ~/.zsh/completions install -Dm644 completions/_aurtools ~/.zsh/completions/_aurtools ``` Then ensure the completion directory is in `fpath` and initialize completion in `~/.zshrc`: ```zsh fpath=("$HOME/.zsh/completions" $fpath) autoload -Uz compinit compinit ``` ## Repository layout The scripts assume that AUR repositories are stored under `~/Aur` by default: ```text ~/Aur/ ├── package-one/ ├── package-two/ └── package-three/ ``` Each package is kept as its own Git repository cloned from `https://aur.archlinux.org/.git`, which matches the documented AUR workflow. [web:22][web:189] ## Usage ### Install a package ```bash aurinstall proton-pass-bin ``` This clones the package if needed, builds it with `makepkg`, and installs the resulting package file with `pacman -U`. [web:22][web:305] ### Prompt before editing build files ```bash aurinstall -e swayfx ``` ### Always open `PKGBUILD` before building ```bash aurinstall -E swayfx ``` Reviewing `PKGBUILD` before building is an important AUR safety habit because `makepkg` executes build instructions defined there. [web:303][web:305] ### Download and audit only ```bash aurinstall -d swayfx ``` This mode updates or clones the repository and lets the user inspect package files without building or installing anything. ### Update local AUR repositories ```bash aurupdate ``` This walks through the repositories stored in `~/Aur`, pulls upstream changes, and rebuilds selected packages. ### Remove a package ```bash aurremove calcure ``` This removes the installed package with `pacman -Rns`, which removes the package, unneeded dependencies, and package-managed config files. [web:46][web:107][web:212] ## Zsh completion The included completion script supports: - local completion from existing repositories in `~/Aur` for `aurinstall` - optional remote name completion for `aurinstall` through the AUR RPC interface [web:281] - completion of installed foreign packages for `aurremove` via `pacman -Qm` [web:46] If completion behaves strangely after changes, rebuild the completion cache: ```zsh rm -f ~/.cache/zsh/zcompdump* autoload -Uz compinit compinit ``` ## Security note AUR packages are user-contributed build scripts, not official binary packages. The safest workflow is to inspect `PKGBUILD`, sources, checksums, and build steps before installation. [web:22][web:303][web:305] ## License A permissive license such as MIT or ISC fits this kind of shell-script project well. GitHub recommends adding an explicit license if the repository is meant to be reused by others. [web:317][web:322]