Skip to content

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:

Terminal window
# See what would be removed
shelly purify standard --aur-cache --dry-run
# Review and confirm the cleanup
shelly purify standard --aur-cache

This 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:

Terminal window
shelly config set DisableCacheClean true

It 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:

Terminal window
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_EPOCH throughout 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 and noextract.
  • 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 pi that 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 --json for version and capability discovery.
  • JSON build review and result output, with review-digest validation.
  • Configurable package output destinations.
  • shelly resolve to 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:

Terminal window
shelly build --sync-deps --install
# Short form:
shelly build -s -l

Administrator 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:

Terminal window
shelly repo-db add ./myrepo.db.tar.zst ./example-1.0-1-x86_64.pkg.tar.zst
shelly repo-db list ./myrepo.db.tar.zst
shelly repo-db remove ./myrepo.db.tar.zst example
shelly repo-db verify ./myrepo.db.tar.zst

Database 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 standard and shelly -Ss search available repository packages by default again, including compound names such as phonon-qt6. Use --detail for one exact package’s metadata or --installed to search installed packages.
  • AUR installs now accept --needed to 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 Include parsing 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’s config.json; shelly config set does 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 .flatpakref and .flatpak files 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 .corrupt copy 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.

© 2026 Seafoam LabsShelly Chel