morpheus is a universal tool for information gathering and system management on
Unix-like operating systems, designed to simplify interactions with UNIX-like operating
systems and streamline the development of system-related automation scripts.
Mainline version of morpheus is written in POSIX-compliant shell. Perl version is
experimental.
- Why?
- What does it solve?
- Use Cases
- Requirements
- Installation
- Supported Package Management Utilities (35)
- Supported Initialization Systems (7)
- Example Usage
- Legal
Because interacting with countless package managers and init systems across UNIX-like
platforms is painful — morpheus fixes that.
With morpheus, you:
-
Don't need to be a Unix maniac who knows every package manager and init system syntax and arguments by heart;
-
Don't waste time building utilities from scratch — core functions are prebuilt and ready;
-
Don't write bloated, error-prone scripts — your code stays clean, readable, and portable.
Managing packages and system services is inconsistent across distros. Whether you're
scripting for Arch, Debian, Void, Slackware, Red Hat, or others, morpheus provides a
unified interface to abstract those differences.
It gives you:
-
A standardized way to install, remove, purge, update, upgrade packages (any many more!);
-
Convenient tools to analyze running processes on the system;
-
Unified service control (status, start, stop, enable, etc.) across multiple init systems (and many more);
-
A modular approach to extend support for more tools and distros;
-
Shell-friendly integration for faster development and cleaner scripts.
-
Write portable installation scripts that “just work” on all Unix-like systems;
-
Build lightweight system provisioning tools in pure shell;
-
Create consistent automation for servers, containers, or virtual machines;
-
Prototype cross-distro sysadmin tools without rewriting core logic.
tum executable consists of 676 lines of pure shell (without empty lines and comments) that makes your code support thousands GNU/Linux, BSD, Minix, Haiku, Android, iOS and macOS distros. That makes morpheus a very small and lightweight dependency in your project.
Your users can install it in one command and forget about morpheus existence for forever, because their cross-platform scripts are working just like intended.
So why not give it a shot?
morpheus requires only one dependency - Unix-like operating system.
git clone https://github.com/Archetypum/Morpheus.git
cd Morpheus/
su # switch to root
make install- apt, apt-get, aptitude, dpkg
- pacman, yay, trizen, pamac
- portage (open for pull requests)
- slackpkg
- apk
- xbps-install, xbps-remove, xbps-query
- guix
- qi
- pkg_add, pkg_delete, pkg_info
- pkg
- pkgin
- yum, dnf
- zypper
- homebrew
-
systemd
-
sysvinit
-
openrc
-
runit
-
s6
-
dinit
-
launchd
Information gathering:
#!/usr/bin/env bash
distro=$(morpheus --get-distro)
init=$(morpheus --get-init)
echo "$distro"
echo "$init"
for pid in {1..1000}; do
morpheus --get-pid-comm "$pid"
donePackage Management:
#!/usr/bin/env bash
manager=$(morpheus --get-package-manager)
morpheus --package-management --manager "$manager" --action install --package gccInit Management:
#!/usr/bin/env bash
morpheus --init-management --service sshd --action statusmorpheus is still unfinished and surely has a lot of bugs. If you found any - feel free to submit
an issue or a pull request.
morpheus licensed under the BSD 2-Clause License.