All versions since v2.3.3.4
v2.3.3.4
The following changes have been made:
New Setup screen will give dialogue confirmation for AUR . AppImage cleanup of bad desktop entries on sync from updates. AppImage improved path handling for custom paths and logic flows. Flatpak updating filter patterns. Read and add hook dirs from pacman.conf to libalpm.
Thank you for the first contribution @moutazhaq
v2.4.0.0
Shelly-ALPM v2.4.0.0 Release Notes
This release centers on a major CLI refactor, maturing AppImage/Flatpak support, and a new layer of PKGBUILD security analysis.
On the safety side, Shelly now actively inspects install scriptlets for dynamic code execution and post_install risks — the new PostInstallValidator scans resolved scriptlets for risky network/code-fetching tools (npm, npx, bun, pip, curl, wget, etc.) and flags dynamic command construction that can’t be statically reviewed, including command substitution ($(...), backticks), eval, ${!var} indirection, and decode-into-shell pipelines (e.g. base64 -d | sh). It even performs lightweight de-obfuscation (collapsing tricks like b''u''n, cur\l, and n"p"m) so deliberately hidden tool names are caught and escalated to Critical as a sign of malicious intent. Complementing this, the new HomographValidator defends against homograph/IDN spoofing in attacker-controlled fields (package names, dependencies, URLs, and AUR metadata) by detecting zero-width/bidi/control characters, mixed-script tokens (e.g. Latin mixed with Cyrillic/Greek), fullwidth/compatibility forms, and confusable “skeletons” that map look-alike Unicode onto ASCII (e.g. Cyrillic а → a). Findings surface through the same PkgbuildReviewDialog security-status path so users can review them before installing.
Rounding out the CLI work, this release ships a pacman-style shortcode interface: a compact -<Type><Action><modifiers> syntax that translates familiar single-letter operations into Shelly’s full command surface, making the CLI feel native to anyone coming from pacman/yay.
🔑 Shortcode Examples
The first argument may be a shortcode of the form -<Type><Action>[modifiers], where the Type selects a domain (S = system/repo, A = AUR, F = Flatpak, I = AppImage, C = config, K = keyring, U = utility) and the Action/modifiers map to a verb and flags:
shelly -SIu firefox # install firefox -u (sync install, with upgrade)shelly -SQad # query -a -d (query available, fetch details of exact match)shelly -SRcr pkg # remove pkg -c -r (cascade + config removal) : The equivalent of `sudo pacman -Rns pkg`shelly -AS ripgrep # aur search zen-browser-binshelly -AI yay-bin # aur install zen-browser-binshelly -FR org.app.Id # flatpak uninstall org.app.Idshelly -KV ABCD1234 # keyring recv ABCD1234shelly -UC # cache-cleanInvalid combinations are rejected with helpful errors (e.g. an unknown action lists valid actions for that type, and an unknown modifier lists the allowed modifiers), and in shortcode mode --ui-mode is used in place of -U.
✨ Highlights
- New CLI Release with a substantial refactor and modernized command surface (#1059, #1103).
- AppImage support maturing: updates now shown in the UI, eventing improvements, and fixes to desktop-entry handling (#1053, #1058, #1075, #1087, #1092).
- Security additions: PKGBUILD review now shows security status, flags dynamic/
post_installcode execution, and detects potential homograph spoofing (#1099, #1100). - doas support added as an alternative privilege-elevation backend (#1078).
🚀 Features
- Add
doassupport (#1078) - Add manual language selection in settings (#1056) — thanks @nyx1d
- Add
docscommand, with printed command options and default cascade enabled (#1084, #1097) - Add Zsh completions for the Shelly CLI (#1090)
- Show AppImage updates in the UI (#1058)
- Add new version column to AUR update view (#1047)
- Add maintainer and last-updated columns to AUR search output (#1071)
- Add security status to
PkgbuildReviewDialog(#1099) - Add
HomographValidatorto flag homograph spoofing in PKGBUILDs (#1100)
🛠 Improvements & Refactors
- CLI refactor (#1059) and new CLI release (#1103)
- Refactor
CredentialManagerand addProcessExecutorservice (#1066) - Convert
PerformDownloadto async and refactor call sites (#1079) - Skip provider selection when only one distinct option is available (#1070)
- Replace
--elevatedflag inUpgradeAllwith aUserIdentity-based approach (#1093, #1094) - Refactor question handling to remove obsolete ALPM-specific protocols (#1091)
- Update file-size display to Megabytes and refactor progress-bar logic (#1082)
- Simplify query (#1076) and remove the
explorealias fromquery(#1085) - AppImage eventing and CLI output updates from the manager (#1087, #1092)
- Flatpak output and UI element updates (#1049, #1080)
- General small UI adjustments (#1046)
- Remove unused config options and delete unused/unwanted code (#1081, #1086)
🐞 Bug Fixes
- Fix AppImages creating an additional desktop entry (#1053)
- Fix Flatpak upgrade bug and remote selection (#1054)
- Fix Flatpak scrolling issue (#1061)
- Various AppImage fixes (#1075)
🌐 Localization
- Update
de-DE.po(#1089) — thanks @Henry2o1o
📦 Maintenance / Versioning
- Merge Dev into master and master back-merge (#1040, #1041)
- Update UI elements in Flatpak (#1049)
- Bump version to 2.3.3.5 across all projects and PKGBUILD files (#1101)
- Bump version to 2.4.0.0 across all projects and PKGBUILD files (#1102)
Contributors to Shelly-ALPM v2.4.0.0
- @caroberrie — #1040, #1041, #1046, #1049, #1053, #1054, #1058, #1061, #1075, #1080, #1081, #1086, #1087, #1092
- @ZoeyErinBauer — #1059, #1070, #1071, #1076, #1078, #1079, #1082, #1090, #1091, #1093, #1094, #1100, #1101, #1102, #1103
- @azdanov — #1066, #1084, #1085, #1097, #1099
- @Terrabade — #1047
- @nyx1d — #1056 (first contribution 🎉)
- @Henry2o1o — #1089
👋 New Contributors
- @nyx1d made their first contribution in #1056
Full Changelog: https://github.com/Seafoam-Labs/Shelly-ALPM/compare/v2.3.3.4...v2.4.0.0
v2.4.0.1
Bug Fix
- –no-confirm now works as intended on upgrade all
Full Changelog: https://github.com/Seafoam-Labs/Shelly-ALPM/compare/v2.4.0.0...v2.4.0.1
v2.4.0.2
Bug Fixes
- Oopsie we forgot to update the tray service
Full Changelog: https://github.com/Seafoam-Labs/Shelly-ALPM/compare/v2.4.0.1...v2.4.0.2
v2.4.0.3
What’s Changed
- Fix JSON serialization for
JsonOutputacross CLI commands by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1115 - Restore repo pkg selection to cli by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1116
Full Changelog: https://github.com/Seafoam-Labs/Shelly-ALPM/compare/v2.4.0.2...v2.4.0.3
v2.4.0.4
What’s Changed
- Correct Version selection pop up
- Fix install + upgrade UI path
Full Changelog: https://github.com/Seafoam-Labs/Shelly-ALPM/compare/v2.4.0.3...v2.4.0.4
v2.4.1.0 Latest
Shelly-ALPM v2.4.1.0 Release Notes
This release builds directly on the 2.4.0 line, hardening how Shelly talks to the network and to the system, deepening dependency resolution, and continuing the CLI refactor that began in 2.4.0.0. It also bundles a large batch of community translations and a steady stream of UI polish across the AppImage, Flatpak, and grid views.
🌐 Networking — Happy Eyeballs
Shelly’s HTTP stack now uses a Happy Eyeballs-style connection strategy in
OptimizedClient. Instead of waiting on a single resolved address, Shelly resolves
every address for a host, prefers IPv4 first so a missing IPv6 route can never block a
working connection, and races the candidates with a fast 3-second per-address
fallback. Critically, it waits for the first connection to succeed rather than the
first to complete, so a quick “network is unreachable” failure on one path no longer
aborts a request that a slower path would have served. Address-connection fallback in
OptimizedClient was further tuned for reliability on mixed IPv4/IPv6 hosts.
🔒 Security — More risky tools, smarter privileges
The PostInstallValidator scriptlet scanner was expanded well beyond the original
list. It now recognizes risky network- and code-fetching tooling across a wide range
of ecosystems — JavaScript/Node (npm, npx, yarn, pnpm, bun, deno), Python
(pip, pipx, uv, poetry, conda/mamba), Ruby, Rust, Go, PHP, Perl, Haskell,
Lua, Nim, OCaml, Elixir/Erlang, C/C++ (conan, vcpkg), JVM build tools, .NET,
Swift, Julia, R — alongside downloaders (curl, wget, aria2c, lftp, rsync,
scp/sftp), container/orchestration tools (docker, podman, kubectl, helm,
snap, flatpak), and version managers (nvm, pyenv, asdf, and friends). These
findings continue to surface through the existing PKGBUILD security-review path so you
can review them before installing.
On the privilege side, command execution in the privileged and unprivileged
services was reworked, with Polkit detection added throughout ProcessExecutor,
XdgPaths, and AurPackageManager. Package searches and lookups now run as
unprivileged operations wherever possible, and a dedicated Polkit policy was
added for privileged Shelly CLI execution (with refined icon and prompt messaging).
📦 Package management — Providers & group queries
Shelly can now resolve virtual dependencies via providers, presenting a provider
selection when more than one package satisfies a dependency. The query command
gained a --group / -g option for searching package groups (it defaults to
searching available packages), making it easier to discover and inspect grouped
packages from the CLI.
🐚 CLI refactor continues
Console creation across the CLI now flows through a single ShellyConsoleFactory,
and RunShellyCommand and related execution paths in ProcessExecutor were
refactored for clarity and consistency. PKGBUILD parsing learned to surface local
source files, and Shelly now correctly reports when pacman hooks have run during
an operation.
🖥️ UI, AppImage & Flatpak
- New grid layouts for the update and manage views, with reworked grid-selection logic.
- An alternate install view and an animated intro page.
- Continued Flatpak UI improvements and better handling of Flatpak progress callbacks.
- AppImage fixes, including corrected Forgejo-hosted AppImage updates.
- Fixed the updates count not appearing in the UI.
- Desktop cache ownership fix and refined lockout-service behavior.
- Removed the obsolete fingerprint warning and related UI elements.
🌍 Translations
This release ships a large localization update: refreshed Japanese, French (fr_FR), Turkish (tr_TR), German (de_DE) translations, a new Italian translation, and additional automated localization passes.
What’s Changed
- Master by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1118
- Merge Back by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1122
- Alternate install view by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1123
- Improve command execution in Privileged and Unprivileged services by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1131
- ownership of desktop cache fix. by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1128
- adding grid for update and manage by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1133
- Fix updates count not showing in UI by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1136
- Add Polkit detection in ProcessExecutor by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1137
- Refactor RunShellyCommand and related methods in ProcessExecutor by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1140
- Refactor package management to utilize unprivileged operations for package searches and retrievals by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1141
- Handle polkit in XdgPaths and AurPackageManager by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1143
- Appimage bug fix by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1144
- Master backmerge by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1146
- Flatpak updates by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1145
- Bump version to 2.4.0.5 across all projects and PKGBUILD files. by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1147
- Update Japanese translation by @utuhiro78 in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1142
- Updating French (fr_FR) translations to Shelly GTK by @Landeli7 in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1129
- Fix Forgejo AppImage updates by @Renari in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1138
- Update tr_TR.po by @celonfix in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1050
- Add Polkit policy for privileged Shelly CLI execution by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1153
- Update icon_name in Polkit policies by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1155
- Update Polkit message for privileged Shelly CLI execution by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1156
- Refactor getuid in XdgPaths to use
LibraryImportby @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1157 - Updating Flatpak ui by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1149
- Update UI elements packages by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1159
- Enhance CLI and UI with new features and documentation updates by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1161
- Remove fingerprint warning and related UI elements by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1162
- updating lockout service functionality to work without a prime from t… by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1163
- updating logic around gridview selections by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1165
- Add deployment step for Seafoam Labs website by @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1168
- Happy eyeballs by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1169
- chore(l10n): update translations by @juliazero in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1024
- Refactor
Settings.csfor improved readability and maintainability by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1170 - Improve address connection fallback in
OptimizedClientand adjust ports by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1171 - i18n: Add Italian translation by @Mattyan89 in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1044
- Update de_DE.po by @Henry2o1o in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1088
- adding animation to the intro page. by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1174
- updating flatpak ui elements by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1175
- 1108 bug shelly does not show that pacman hooks have been ran by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1177
- Fix by @Henry2o1o in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1096
- Add support for parsing and displaying local source files in PKGBUILD by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1178
- fixing how enums are saved by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1179
- updating how progress callbacks are handled in flatpak manager by @caroberrie in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1180
- Add
--groupoption toQuerycommand for package group searches by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1182 - Refactor to use
ShellyConsoleFactoryfor console creation by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1183 - Expand
restrictedCommandslist inPostInstallValidatorby @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1184 - Add additional risky tools to
PostInstallValidatorby @azdanov in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1185 - Add support for resolving virtual dependencies via providers by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1191
- chore(l10n): update translations by @juliazero in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1186
- Bump version to 2.4.1.0 across all modules and update corresponding PKGBUILD files by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1192
- 2.4.1.0 Release by @ZoeyErinBauer in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1193
Contributors
A huge thank you to everyone who contributed to this release — 10 unique contributors, 2 of them brand new to the project:
- @ZoeyErinBauer
- @caroberrie
- @azdanov
- @utuhiro78
- @Landeli7
- @Renari 🆕
- @celonfix
- @juliazero
- @Mattyan89 🆕
- @Henry2o1o
New Contributors
- @Renari made their first contribution in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1138
- @Mattyan89 made their first contribution in https://github.com/Seafoam-Labs/Shelly-ALPM/pull/1044
Full Changelog: https://github.com/Seafoam-Labs/Shelly-ALPM/compare/v2.4.0.4...v2.4.1.0
