All versions since Shelly-ALPM v3.1.3 — A Little Housekeeping, a Lot of Building
Shelly-ALPM v3.1.3 — A Little Housekeeping, a Lot of Building
Shelly v3.1.3 gives your AUR cache a cleanup button, your AppImages their own environment settings, and the package builder another round of fixes for the PKGBUILDs you use every day.
There is plenty happening on the desktop, too: Flathub links take you to the app you wanted, package conflict prompts explain what is being removed, and the parallel download setting now does what it says. Behind the scenes, isolated builds gain Shelly’s own provisioning helper and new tools for build automation.
🧹 Give your AUR cache some breathing room
Built AUR packages can add up. You can now preview and remove those archives with --aur-cache:
# See what would be removedshelly purify standard --aur-cache --dry-run
# Review and confirm the cleanupshelly purify standard --aur-cacheThis removes all built AUR package archives and their matching signatures from Shelly’s cache. Your PKGBUILDs, checkout history, sources, and build directories stay in place. You can also combine it with --cache to clean the standard package cache in the same command.
Prefer to handle cleanup yourself after upgrades? There is a setting for that:
shelly config set DisableCacheClean trueIt skips the cleanup prompt and deletion during shelly upgrade all and its aliases. Cleanup remains enabled by default, and standalone shelly upgrade standard keeps its existing behavior.
🎛️ Your AppImages, your environment
Each installed AppImage can now have its own environment variables, configurable from the UI or CLI:
shelly config appimage "MyApp" --set-env "MY_VARIABLE=my-value"shelly config appimage "MyApp" --unset-env "MY_VARIABLE"Replace MyApp with the exact installed AppImage name. Overrides apply when launching from the desktop or through shelly run, and they survive AppImage updates. The CLI also supports clearing or replacing the full set of overrides.
StaticURL update checks now follow redirects correctly, too.
🏗️ More PKGBUILDs feeling at home
This release fixes several cases where valid package recipes could trip up Shelly’s native builder:
- Fixed shell here-string and command-substitution parsing that could leave build wrapper scripts with syntax errors.
- Added a consistent
SOURCE_DATE_EPOCHthroughout PKGBUILD evaluation, build steps, and package metadata. - Improved dependency planning for conditional arrays, architecture-specific dependencies, and split packages.
- Improved archive detection and extraction, including extensionless archives.
- Added standalone gzip/Unix compress, bzip2, xz, and zstd decompression before
prepare(), respecting source aliases andnoextract. - Fixed empty optional file assignments such as
install=''being rejected as unsafe paths. - Failed binary stripping now produces a warning and keeps the original file. This fixes builds such as
pithat include binaries the host’s strip tool cannot process. - Fixed source verification with multiple PGP signatures to follow signature-status handling, plus keyserver argument ordering during key imports.
🛠️ Shellystrap and build automation
Isolated builds now use shellystrap, Shelly’s own libalpm-based helper, to provision fresh build roots. This replaces the pacstrap dependency and keeps provisioning inside private namespaces.
Required public source-signing keys can now travel from the invoking user’s keyring into the isolated build. Reviewed-file staging, dependency checks against freshly synchronized private repository databases, and cancellation cleanup across privilege elevation have also been improved.
For automated builders, this release adds:
shelly --version --jsonfor version and capability discovery.- JSON build review and result output, with review-digest validation.
- Configurable package output destinations.
shelly resolveto map exact repository or AUR package names to package bases.
Using isolated builds? You need unshare from util-linux alongside systemd-nspawn. For unattended builds, import required source-signing keys into the invoking user’s keyring beforehand; --no-confirm does not approve missing-key imports.
✨ A smoother desktop
- Flathub links open the right app, even if Shelly is already running or still loading its catalog. Flatpak reference files and AppStream links are handled, too.
- Flatpak details gain uninstall controls, installed and verified indicators, better remote selection, and clearer loading feedback.
- Conflict prompts name the packages involved, including which installed package will be removed and what replaces it.
- Tray checks can follow your schedule with a cron mode that waits for the configured weekly time before the first check. Weekly scheduling also no longer depends on the symbolic tray icon setting.
- Fixed the installed AUR view failing to restore correctly after a reload.
- Improved dependency download progress, long package-name display, and error messages across the CLI, TUI, and GTK interface.
- Support setup now skips dependencies you already have installed.
⚡ Parallel means parallel
Repository database and package downloads now respect ParallelDownloadCount. The setting accepts 1–255, with a default of 100. Older configurations with invalid values fall back to the default.
🌍 Translations and thanks
Italian and Simplified Chinese translations have been updated. Thank you to everyone contributing translations, reporting troublesome packages, and helping test the fixes in this release!
Full Changelog: v3.1.2…234f1e0a
Release pull request: #1876
v3.1.4 A slice of builds
Shelly Pi 3.14 gives the native builder another round of fixes for real-world PKGBUILDs, adds a way to reclaim space from the AUR build cache, and makes package reviews easier to navigate.
There is plenty happening on the desktop, too: Flathub links open the app you wanted, package conflicts explain what will be removed, and package details are easier to read and copy. Behind the scenes, isolated builds gain Shelly’s own provisioning helper, stronger PGP support, and more reliable dependency handling.
🧹 Give your AUR cache some breathing room Built AUR packages can add up. You can now preview and remove cached build archives with –aur-cache, making it possible to recover disk space without manually digging through Shelly’s cache.
shelly purify standard –aur-cache
Standard purge behavior has also been corrected.
🏗️ A sturdier native builder The native builder now supports more complex PKGBUILDs and fixes failures involving SOURCE_DATE_EPOCH, install declarations, shell parsing, unsafe source paths, and sources that share the same filename.
Git sources are cloned from their original URLs, required files are detected more reliably, and regression tests cover the corrected behavior. Package-specific failures affecting Anydesk, Mandolin, Remora, and Pi have also been addressed.
🛠️ Shellystrap and isolated builds Isolated environments now use Shellystrap, Shelly’s own provisioning helper. Required PGP keys can be handed off to isolated builds, dependency handling has been improved, and systemd home-directory issues have been corrected.
🔍 Review upgrades your way AUR PKGBUILD reviews now support collapsed diffs, making large changes easier to navigate. Individual upgrades can also be reviewed separately before continuing.
Optional dependencies are handled more clearly, ignored packages remain visible in filtered lists, and conflict prompts identify which installed package will be removed.
✨ A smoother desktop experience Package columns now use ellipses instead of overflowing, while package-detail text can be selected and copied. Installation status updates display more reliably, and PGP key-import confirmations no longer crash the interface.
Flathub links open directly to the requested application, Flatpak pages show the correct installed and update versions, and dependency download progress is represented more accurately.
📦 AppImage, Flatpak, and tray improvements Each installed AppImage can now have its own environment variables, and StaticURL update checks correctly follow redirects.
Flatpak installation and update flows have been refined, including fixes for application selection and version display. The notification tray can now follow a cron schedule, and tray-service updates initiated from the CLI work correctly.
⚡ Downloads and package operations Parallel package and repository downloads now respect the configured setting. Package installation places –needed correctly, package status is updated more reliably, and command output uses clearer wording.
🌍 Translations This release updates the Simplified Chinese, Italian, Brazilian Portuguese, and Japanese translations. It also introduces Azerbaijani translations for the UI and notification components.
❤️ Thank you, contributors! Thank you to everyone who contributed fixes, translations, testing, and improvements to this release:
@VinnyQF, @caroberrie, @ZoeyErinBauer, @azdanov, @square-235, @Mattyan89, @StKob, @jamalkamaladdin, and @utuhiro78.
A special welcome to first-time contributors @square-235, @StKob, and @jamalkamaladdin!
v3.1.5 - A Better View, a Better Build
Release Notes
Shelly v3.1.5 brings an optional Atoll-powered AUR browser, a build-and-install command, and native tools for maintaining your own package repositories. The builder also gets another round of compatibility fixes, from dependency-only metapackages to packages with unusual permissions and source archives.
Everyday package management gets some attention, too: standard searches return matching packages again, AUR installs gain --needed, AppImages are easier to remove, and errors explain more of what went wrong.
🏝️ Explore the AUR with Atoll
Enable Atoll Powered AUR in Advanced settings to use the new AUR page. Browse a paginated package list, sort by votes or popularity, and choose Best Match, Name, Provides, or Words from the Search By dropdown. Package details include dependency information, with installed and out-of-date indicators in the list.
The option is off by default. Switching it on also points Shelly’s CLI AUR service at Atoll; switching it off restores the Arch AUR service.
Terminal AUR search results now include clickable package links when using the Arch AUR or Atoll. Other configured services keep plain-text package names, and failed AUR requests provide more useful diagnostics.
🏗️ Build it, then install it
shelly build now supports --install (-l). Combine it with --sync-deps to install missing build dependencies, build the package, and install the resulting archives:
shelly build --sync-deps --install# Short form:shelly build -s -lAdministrator credentials are requested up front, while the build runs as your regular user. Installation also works with isolated builds after the completed archives are exported.
The install shortcut is -l; -i remains the shortcut for --isolated.
🛠️ More PKGBUILDs, fewer build failures
This release improves several parts of the native builder:
- Dependency-only metapackages, including recipes without a
package()function, can now produce valid packages. - Empty or zero epochs no longer introduce a leading colon into package versions. AUR update comparisons also handle affected installed versions correctly, fixing repeated update offers.
- Packages with restrictive directory permissions, such as snapd, can be assembled and cleaned up without leaving failed builds that block retries.
- Global build dependencies are kept separate from split-package runtime dependencies, allowing conflicting outputs to be built together.
- Source extraction handles hard links, forward hard-link chains, and literal backslashes in filenames more accurately. Array expansion and here-string parsing have also been improved.
- Isolated builds run guest package hooks during provisioning, improve compatibility with restrictive umasks, and preserve virtual ownership for external packaging helpers.
These changes address build failures involving packages such as Heroic, GStreamer, libblockdev, CUPS, and FUSE, alongside improvements for automated builds.
⚙️ Take control of your build environment
Native builds now use a predictable system PATH, fixing failures caused by inheriting an unsuitable path from privilege elevation. Add custom toolchain directories through build.extra_path in shellybuild.conf.
The new build.env setting supplies literal environment variables to the unprivileged builder:
[build]extra_path = ["/home/your-user/.cargo/bin"]env = { JAVA_HOME = "/usr/lib/jvm/default" }Elevated native builds also preserve the caller’s locale settings, with C.UTF-8 as the fallback for a missing or empty LANG.
Upgrade note: tools previously found only through your terminal’s PATH must now be listed in build.extra_path. Use absolute paths; shell variables and ~ are not expanded. For isolated builds, configured paths must exist inside the guest.
📦 Repository tools built into Shelly
The new shelly repo-db commands maintain pacman-compatible repository databases directly:
shelly repo-db add ./myrepo.db.tar.zst ./example-1.0-1-x86_64.pkg.tar.zstshelly repo-db list ./myrepo.db.tar.zstshelly repo-db remove ./myrepo.db.tar.zst exampleshelly repo-db verify ./myrepo.db.tar.zstDatabase updates maintain both package and file indexes. Options cover signing, downgrade prevention, waiting for database locks, and removing replaced package archives after publication.
🔍 Search and install improvements
shelly search standardandshelly -Sssearch available repository packages by default again, including compound names such asphonon-qt6. Use--detailfor one exact package’s metadata or--installedto search installed packages.- AUR installs now accept
--neededto skip building and reinstalling matching installed versions, including individual split-package members. Dynamic versions and VCS packages may still require a build. - AUR installs verify that requested packages and AUR build dependencies are still listed by the configured service. Removed packages cannot be installed from a leftover checkout; when an exact repository match exists, Shelly suggests a standard install. Explicit local builds remain available.
- Fixed repository
Includeparsing so server URLs and policies stay associated with the correct repository. - Expanded TLS support fixes secure-connection failures with repositories such as BlackArch.
- Added Nerd Font progress-bar rendering for compatible terminal fonts. For this release, enable it by setting
"ProgressBarStyle": "Nerdfont"directly in the CLI’sconfig.json;shelly config setdoes not yet accept the new value.
✨ Desktop and AppImage improvements
- Install optional dependencies directly from package details, with clearer selection controls and installed-state indicators.
- Package details load more smoothly, reducing content flicker while navigating.
- Open local
.flatpakrefand.flatpakfiles with Shelly to start installation. Shelly now appears in the file manager’s Open With choices for these files. - Remove stale AppImage entries even when their files are missing, and correctly handle installations whose recorded name differs from the filename.
- Improved AppImage desktop-entry detection and icon selection, including choosing higher-resolution icons.
- Malformed JSON settings recover to defaults across the CLI, desktop, and tray, keeping a
.corruptcopy when possible. Settings writes also better withstand interruption. - Clearer errors across package operations explain the failure and retain technical details for troubleshooting.
🌍 Translations and thanks
This release completes the European Portuguese translation and updates German, Italian, Polish, Russian, and Turkish translations.
Thank you to everyone who contributed code, translations, testing, and reports: @ZoeyErinBauer, @caroberrie, @azdanov, @VinnyQF, @NateKing204, @Henry2o1o, @Mattyan89, @adem4ik, @juliazero, @pdf, @Ricardo-Simoes, and @mehmetakifongun.
Full Changelog: v3.1.4…4a0d0348
Release pull request: #1972
3.1.6 Bug Fix Latest
Fixes Bug in UI using wrong CLI command to fetch information.
