README.md
July 9, 2026 ยท View on GitHub

Powered by
About
Shelly is a modern package manager for Arch Linux designed to be a more user-friendly alternative. Offering a visual interface with a focus on user experience and ease of use. Shelly interfaces directly with libalpm. It is a complete reimagination of how a user interacts with their Arch Linux system, providing a more intuitive experience.
Quick Install
The recommended installation method for Shelly is for CachyOS or using CachyOS packages
sudo pacman -S shelly
This will download and install the latest release, including the UI and CLI tools.
To install with an AUR helper like yay or paru.
yay -S shelly
or
paru -S shelly
Uninstall
For standard package removal
sudo pacman -Rns shelly
If installed from AUR
yay -Rns shelly
or
paru -Rns shelly
Features
- Modern-CLI: Provides a command-line interface for advanced users and automation, with a focus on ease of use.
- Native Arch Integration: Directly interacts with
libalpmfor accurate and fast package management. - Native Wayland Support: Front end built using GTK4.
- Package Management: Supports searching and filtering for, installing, updating, and removing packages.
- Repository Management: Synchronizes with official repositories to keep package lists up to date.
- AUR Support: Integration with the Arch User Repository for a wider range of software.
- Flatpak Support: Manage Flatpak applications alongside native packages.
Roadmap
Upcoming features and development targets:
- Repository Modification: Allow modification of supported repositories (In progress).
- Package Import: Allow for import of a previously existing package list to bring the system back to a saved package state. (Not yet started)
- Multi Language Support: Translation layer for supporting languages outside english
- Offline Updates: Similar functionality to pacman-offline script
- Layout Customization: Allow for customization of the individual user experience.
Prerequisites
- Arch Linux (or an Arch-based distribution)
- .NET 10.0 SDK (for building)
- vala (for building)
- libalpm (provided by
pacman)
Optional Prerequisites
- Flatpak: Can be installed via shelly inside settings by turning flatpak on.
Installation
Using PKGBUILD
Since Shelly is designed for Arch Linux, you can build and install it using the provided PKGBUILD:
git clone https://github.com/ZoeyErinBauer/Shelly-ALPM.git
cd Shelly-ALPM
makepkg -si
Manual Build
You can also build the project manually using the .NET CLI:
dotnet publish Shelly.Gtk/Shelly.Gtk.csproj -c Release -o publish/shelly-ui
dotnet publish Shelly-CLI/Shelly-CLI.csproj -c Release -o publish/shelly-cli
dotnet publish Shelly-CLI/Shelly-CLI.csproj -c Release -o publish/shelly-notifications
alternatively, you can run
sudo ./local-install.sh
This will build and perform the functions of install.sh
The binary will be located in the /opt/shelly directory.
Usage
Run the application from your terminal:
For ui:
shelly-ui
For cli:
shelly
Notifications will be started with the ui, or it can be configured to launch at startup using your systems startup configuration to run:
shelly-notifications
Shelly-CLI
Shelly also includes a command-line interface (shelly-cli) for users who prefer terminal-based package management. The
CLI provides the same core functionality as the UI but in a scriptable, terminal-friendly format.
CLI Commands
Full documentation can be viewed on the Shelly CLI Reference page.
CLI Configuration
Shelly-CLI uses a JSON configuration file to customize its behavior. On the first run, it automatically creates a default configuration file at:
~/.config/shelly/config.json
Configuration Options
These are listed on the Shelly Configuration page.
Development
Shelly is structured into several components:
- Shelly.Gtk: The main GUI desktop application.
- Shelly-CLI: Command-line interface for terminal-based package management.
- Shelly-Notifications: Tray service to manage notifactions the Shelly-UI.
- PackageManager: The core logic library providing bindings and abstractions for
libalpm. - PackageManager.Tests: Comprehensive tests for the package management logic.
Building for Development
dotnet build
Running Tests
dotnet test
Generate CLI References
dotnet run --file help_compiler.cs
License
This project is licensed under the GPL-3.0 License โ see the LICENSE file for details.