SkillAgentSearch skills...

Pikaur

AUR helper with minimal dependencies. Review PKGBUILDs all in once, next build them all without user interaction.

Install / Use

/learn @actionless/Pikaur
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

pikaur

Tests Coverage Status Commit Activity Support Project

AUR helper with minimal dependencies. Review PKGBUILDs all in once, next build them all without user interaction.

Inspired by pacaur, yaourt and yay.

Instead of trying to be smarter than pacman (by using --nodeps, --force, --ask, --noconfirm and so) it just interactively tells pacman what to do. If pacman asks some unexpected question, the user will be just able to answer it manually.

Notable features:

  • build local PKGBUILDs with AUR deps (-P/--pkgbuild)
  • retrieve PKGBUILDs from AUR and ABS (-G/--getpkgbuild)
  • interactively handle common build problems (like untrusted GPG key or checksum mismatch, wrong architecture)
  • show unread Arch news before sysupgrade
  • [m]anual package selection in install prompt using text editor (ignore unwanted updates or select package provider)
  • show AUR package diff and review PKGBUILD and .install files
  • upgrade -git, -svn and other dev packages
  • AUR package names in shell completion (bash, fish, zsh)
  • quickly search&install package by pikaur <search-query>

The following pacman operations are extended with AUR capabilities:

  • -S (build AUR packages, --needed, --ignore and --noconfirm are supported as in pacman, other args are just bypassed to it)
  • -Sw (build AUR packages but don't install)
  • -Ss (search or list all AUR packages, -q also supported)
  • -Si (package info)
  • -Su / -Syu (sysupgrade)
  • -Sc / -Scc (build dir/built packages cache clean)
  • -Qu (query upgradeable, -q supported)

Also see pikaur -Sh, -Qh, -Ph, -Gh and -Xh for pikaur-specific flags.

Pikaur wraps all the pacman options accurately except for -Syu which is being split into -Sy (to refresh package list first) and -Su (to install upgrades after user confirmed the package list or altered it via [M]anual package selection).

Installation

sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/pikaur.git
cd pikaur
makepkg -fsri

Screenshot

Screenshot

Run without installation

Pikaur-Static

To avoid situations during upgrading the system when you can't run Pikaur anymore (for example due breaking changes in Python, Pyalpm or other system dep) it's recommended to have pikaur-static ⚡️ installed, which doesn't depend on Python (or Pyalpm) and doesn't conflict with the regular pikaur installation.

You can download it from the Releases Page (or downgrade Python/[other pkg which broke the update] to the previous version if it broke due to update, build+install pikaur-static from aur, upgrade python/[that pkg] again).

Running directly from git repo for development purposes/etc

git clone https://github.com/actionless/pikaur.git
cd pikaur
python3 ./pikaur.py -S AUR_PACKAGE_NAME

File locations

~/.cache/pikaur/
├── build/  # build directory (removed after successful build)
├── pkg/  # built packages directory
~/.config/pikaur.conf  # config file
~/.local/share/pikaur/
└── aur_repos/  # keep aur repos there; show diff when updating
    └── last_installed.txt  # aur repo hash of last successfully installed package

Configuration

~/.config/pikaur.conf

[sync]

DevelPkgsExpiration (default: -1)

When doing sysupgrade, count all devel (-git, -svn, -bzr, -hg, -cvs) packages older than N days as being upgradeable. -1 disables this. 0 means always upgrade. Passing --devel argument will override this option to 0.

AlwaysShowPkgOrigin (default: no)

When installing new packages, show their repository name, even if they are coming from one of the official Arch Linux repositories.

UpgradeSorting (default: versiondiff)

When upgrading packages, sort them by versiondiff, pkgname or repo.

ShowDownloadSize (default: no)

When installing repository packages, show their download size.

IgnoreOutofdateAURUpgrades (default: no)

When doing sysupgrade ignore AUR packages which have outofdate mark.

[build]

GpgDir (default: ) (root default: /etc/pacman.d/gnupg)

Provides an override path for the GPG home directory used when validating aur package sources. See explanations of --homedir and ${GNUPGHOME} in the gpg man pages for more details. Will be overridden by --build_gpgdir argument.

KeepBuildDir (default: no)

Don't remove ~/.cache/pikaur/build/${PACKAGE_NAME} directory between the builds. Will be overridden by -k/--keepbuild flag.

KeepDevBuildDir (default: yes)

When building dev packages (-git, -svn, etc), don't remove ~/.cache/pikaur/build/${PACKAGE_NAME} directory between the builds. No value will be overridden by KeepBuildDir option and -k/--keepbuild flag.

KeepBuildDeps (default: no)

Don't remove build dependencies between and after the builds. Will be overridden by --keepbuilddeps flag.

SkipFailedBuild (default: no)

Always skip the build if it fails and don't show recovery prompt.

IgnoreArch (default: no)

Ignore specified architectures (arch-array) in PKGBUILDs.

[review]

DontEditByDefault (default: no)

Always default to no when prompting to edit PKGBUILD and install files.

NoEdit (default: no)

Don't prompt to edit PKGBUILD and install files. Will be overridden by --noedit and --edit flags.

NoDiff (default: no)

Don't prompt to show the build files diff. Will be overridden by --nodiff flag.

GitDiffArgs (default: --ignore-space-change,--ignore-all-space)

Flags to be passed to git diff command when reviewing build files. Should be separated by commas (,).

DiffPager (default: auto)

Wherever to use less pager when viewing AUR packages diff. Choices are always, auto or never.

HideDiffFiles (default: .SRCINFO)

Hide git diff for file paths, separated by commas (,).

[colors]

Terminal colors, from 0 to 15:

Version (default: 10)
VersionDiffOld (default: 11)
VersionDiffNew (default: 9)

[ui]

RequireEnterConfirm (default: yes)

Require enter key to be pressed when answering questions.

PrintCommands (default: no)

Print each command which pikaur is currently spawning.

GroupByRepo (default: yes)

Groups official packages by repository when using commands like pikaur -Ss <query> or pikaur <query>.

AurSearchSorting (default: hottest)

Sorting key for AUR packages when using commands like pikaur -Ss <query> or pikaur <query>. Accepts hottest, numvotes, lastmodified, popularity, pkgname. Only pkgname is sorted ascendingly. The metric for hottest is weighted by both numvotes and popularity.

DisplayLastUpdated (default: no)

Display the date a package is last updated on search results when using commands like pikaur -Ss <query> or pikaur <query>.

ReverseSearchSorting (default: no)

Reverse search results of the commands like pikaur -Ss <query> or pikaur <query>.

WarnAboutPackageUpdates (default: )

Comma-separated list of packages names or globs, which upgrade should have additional warning message in the UI.

WarnAboutNonDefaultPrivilegeEscalationTool (default: yes)

Print warning when using privilege escalation tool other than sudo.

[misc]

PacmanPath (default: pacman)

Path to pacman executable. Will be overriden by --pacman-path flag.

PreserveEnv (default: PKGDEST,VISUAL,EDITOR,http_proxy,https_proxy,ftp_proxy,HTTP_PROXY,HTTPS_PROXY,FTP_PROXY,ALL_PROXY)

Preserve environment variables of current user when running pikaur as root (comma-separated). Will be overriden by --preserve-env flag.

PrivilegeEscalationTool (default: sudo)

A tool used to escalate user privileges. Currently supported options are sudo and doas.

PrivilegeEscalationTarget (default: pikaur)

Choices: pikaur, pacman. In case of elevating privilege for pacman - pikaur would ask for password every time pacman runs.

UserId (default: 0)

User ID to run makepkg if pikaur started from root. 0 - means disabled, not that it will use uid=0. The config value would be overriden by --user-id flag.

GroupId (default: 0)

Group ID to run makepkg if pikaur started from root. 0 - means disabled, not that it will use gid=0. The config value would be overriden by --group-id flag.

CachePath (default: ~/.cache)

Path to package cache location. Will be overridden by --xdg-cache-home argument or environment variable XDG_CACHE_HOME, if set.

DataPath (default: ~/.local/share)

Path to database location. Will be overridden by --xdg-data-home argument or environment variable XDG_DATA_HOME, if set.

[network]

AurUrl (default: https://aur.archlinux.org)

AUR H

View on GitHub
GitHub Stars940
CategoryDevelopment
Updated10h ago
Forks89

Languages

Python

Security Score

100/100

Audited on Mar 29, 2026

No findings