Fast & Easy Package Management for Arch Linux
Archium is a command-line tool for managing packages on Arch Linux. It provides a simple and intuitive interface for common package management tasks using yay, paru, or pacman. Archium is a faithful fork of Archie by Gurov.
It's a simple wrapper around pacman/yay/paru that gives you short commands and tab completion. Written in C so it's fast and doesn't eat your RAM.
u # upgrade everything
i firefox # install firefox
r firefox # remove firefox
s neovim # search for neovim
That's it. No revolutionary new package format, no reinventing the wheel. Just less typing.
- Fast startup - C binary, not a Python script that takes 2 seconds to import modules
- Works with what you have - uses yay/paru if available, falls back to pacman
- Tab completion - actually works and completes package names
- Sane defaults - figures out your preferred AUR helper automatically
- Plugin system - write custom commands if you want (optional)
- 60KB binary
- Uses readline for proper command line editing
- Supports bash/fish/zsh completions
- Config lives in ~/.config/archium/ like it should
- MIT licensed
gcc- It's written in C, what do you expect?yayorparu- AUR helpers for Arch Linux [OPTIONAL]git- For installingyayif it is not already installed [OPTIONAL]readline- A library for command-line input (likely preinstalled)
git clone https://codeberg.org/keys/archium.git
cd archiummakesudo make installWhen you run archium, you will see the following prompt:
╔════════════════════════════════════════╗
║ Welcome to Archium v1.10.1 ║
║ Type "h" for help ║
╚════════════════════════════════════════╝
Archium $ u
Upgrading system...
| Argument | Description |
|---|---|
--exec <command> |
Execute a specific command directly |
--version, -v |
Display version information |
--verbose, -V |
Enable verbose logging |
--help, -h |
Display help for command-line arguments |
--self-update |
Update Archium to the latest version |
To update Archium itself (only for manual installations):
archium --self-updateNote: The --self-update option only works if you installed Archium manually.
If you installed Archium from the AUR, please use your AUR helper to update:
yay -Syu archium
# or
paru -Syu archiumArchium uses a centralized configuration system located at $HOME/.config/archium/:
- Configuration Directory:
$HOME/.config/archium/ - Log File:
$HOME/.config/archium/archium.log(when verbose mode is enabled) - Preferences:
$HOME/.config/archium/preferences - Cache Directory:
$HOME/.config/archium/cache/
You can set your preferred package manager using the built-in configuration command:
archium
Archium $ config
Archium Configuration
Available preferences:
1. Package manager preference (yay/paru)
2. View current configuration directory
3. View log file location
Enter your choice (1-3): 1
Current preference: yay (default)
Set package manager preference (yay/paru): paru
Package manager preference set to: paru
Note: Restart Archium for changes to take effect.Alternatively, for quick command-line usage:
archium --exec configIf you have an existing .archium-use-paru file in your home directory, Archium will automatically migrate it to the new configuration system and remove the old file.
Archium features an extensible plugin system that allows you to add custom commands and functionality through shared libraries (.so files).
Plugins are stored in: $HOME/.config/archium/plugins/
Use the built-in plugin management commands:
Available plugin management commands:
pl- List all currently loaded plugins with their commands and descriptionspd- Display the plugin directory path where .so files should be placedpe- Create an example plugin with template code and Makefile
Plugins are C shared libraries that implement a specific API. To create a plugin:
- Generate example: Use the
pecommand to createexample.candMakefile - Customize: Modify the generated code to implement your functionality
- Build: Run
makein the plugin directory to create the.sofile - Load: Restart Archium to automatically load the new plugin
Each plugin must implement these functions:
char *archium_plugin_get_name(void); // Plugin display name
char *archium_plugin_get_command(void); // Command name
char *archium_plugin_get_description(void); // Command description
ArchiumError archium_plugin_execute(const char *args, const char *package_manager);
void archium_plugin_cleanup(void); // Optional cleanupchar *archium_plugin_get_command(void) {
return "hello";
}
ArchiumError archium_plugin_execute(const char *args, const char *package_manager) {
printf("Hello from plugin! Package manager: %s\n", package_manager);
return ARCHIUM_SUCCESS;
}Build with: gcc -fPIC -shared -o hello.so hello.c
-
Archium uses
yayby default. If you only haveparuinstalled, it will useparu. -
Use the
configcommand within Archium to manage preferences and view configuration paths. -
Enable verbose logging with
--verboseor-Vto create detailed logs at$HOME/.config/archium/archium.log. -
If Archium fails to upgrade to a newer version, try cleaning the cache using your preferred AUR helper and reinstalling:
yay -Scc --noconfirm && yay -S archium --noconfirm paru -Scc --noconfirm && paru -S archium --noconfirm
This program is licensed under the MIT License.
See the LICENSE file for details.
For any questions or issues, please contact me at [email protected] or via Discord.
Disclaimer: Archium is not affiliated with Arch Linux or its official package managers.