Open-source developer Matthias Klumpp has released pkgcli, a human-friendly replacement for PackageKit's aging pkcon CLI, marking the first major interface overhaul for the package management abstraction layer since its inception.
For nearly twenty years, Linux users relying on PackageKit for system package management have been stuck with pkcon, a command-line interface that evolved organically rather than being intentionally designed. That era is ending with pkgcli, a modern CLI built from the ground up to provide a better experience for both interactive users and script developers.

Matthias Klumpp, the primary maintainer of PackageKit, announced pkgcli today in a detailed blog post documenting his recent work as part of a Sovereign Tech Agency fellowship. The fellowship provided dedicated time to address long-standing UX issues in PackageKit's command-line tooling, resulting in pkgcli as a complete reimagining of how users interact with the package management abstraction layer.
The Problem with pkcon
PackageKit itself serves a critical role in the Linux desktop ecosystem. It provides a system-level abstraction that works across different package managers (APT, DNF, pacman, zypper, and others), allowing graphical software centers and system update tools to query and modify packages without needing to know the specifics of each distribution's package manager. However, pkcon never received the attention needed to make it a pleasant tool for daily use.
The original pkcon was described by Klumpp as "thrown together over the years," accumulating technical debt and inconsistency. Command names were not intuitive, output formatting was inconsistent, and scripting with pkcon required significant workarounds. For a tool that sits at the center of PackageKit's command-line presence, this created friction for both developers and power users.
What pkgcli Brings to the Table
pkgcli addresses these issues through several key improvements:
Human-Friendly Command Structure: The new CLI uses intuitive command names that follow modern conventions users expect from package managers. Rather than cryptic subcommands, pkgcli provides clear verbs that make the tool's capabilities discoverable.
JSON Lines Output: One of the most significant additions is the --json flag, which outputs results in JSON Lines format. This makes pkgcli immediately useful for scripting and automation, allowing other tools to parse package operations programmatically without relying on fragile text parsing.
Sensible Defaults: pkgcli ships with reasonable default behaviors, reducing the need for users to specify common options repeatedly. This addresses a frequent complaint about pkcon where simple operations required verbose command construction.
Consistent Output Formatting: The output from pkgcli is designed to be both human-readable and machine-parseable, with clear formatting that makes package information easy to scan.
Sovereign Tech Agency Fellowship Context
The development of pkgcli was made possible through the Sovereign Tech Agency, an organization that funds maintenance and improvement work on critical open-source infrastructure. This fellowship model addresses a persistent problem in open-source development: tools that are essential to the ecosystem but lack the resources for meaningful improvement.
PackageKit qualifies as critical infrastructure precisely because it enables the package management abstraction that desktop Linux distributions depend on. Without PackageKit, each graphical package manager would need to implement its own backends for APT, DNF, and other package managers, creating significant duplication of effort.
Availability and Distribution
The timing of pkgcli's release coincides with PackageKit updates rolling into distributions. Users running current versions of their Linux distributions may already find pkgcli available in their repositories, provided they have the latest PackageKit version. This gradual rollout through distribution update channels means the tool will become broadly available as distributions update their PackageKit packages.
The availability through standard distribution channels is important because PackageKit operates at the system level. Users cannot simply install pkgcli independently; it requires the corresponding PackageKit version to function properly. This coupling means the tool's adoption follows the distribution update cycle rather than being an immediate download for all users.
Technical Implications for the Ecosystem
pkgcli's introduction creates interesting dynamics in the Linux package management space. While tools like apt, dnf, and pacman provide distribution-specific command-line experiences, PackageKit (and now pkgcli) offers a cross-distribution alternative. This becomes particularly relevant for:
- Cross-distribution scripts that need to work on multiple Linux variants
- System administrators managing heterogeneous environments
- Developers creating tools that interact with package management across different distributions
- Desktop environment integration where PackageKit provides the backend for software update notifications
The JSON output capability positions pkgcli as a bridge between traditional command-line package management and modern tooling that expects structured data formats. This could lead to new tools and workflows built on top of pkgcli's capabilities.
Looking at the Broader Package Management Landscape
The release of pkgcli arrives at a time when package management on Linux is undergoing significant changes. Traditional distribution package managers face competition from containerized application formats (Flatpak, Snap, AppImage) and language-specific package managers (pip, cargo, npm). In this context, PackageKit's role as a system-level abstraction becomes both more important and more complex.
pkgcli modernization ensures that PackageKit remains relevant for users who prefer or require system package management workflows. By providing a better command-line experience, it helps PackageKit compete with the developer-friendly experiences offered by newer package management approaches.
Conclusion
The pkgcli release represents more than just a new command-line tool. It demonstrates how targeted investment in open-source infrastructure maintenance can address years of accumulated technical debt. For Linux users who interact with PackageKit through command-line tools, pkgcli promises a significantly improved experience. For the broader ecosystem, it reinforces PackageKit's role as a critical piece of Linux desktop infrastructure that deserves ongoing attention and improvement.
For more details on pkgcli's features and implementation, readers can refer to Matthias Klumpp's announcement blog post. The tool is part of the PackageKit project, which continues to serve as the package management abstraction layer for numerous Linux distributions.

Comments
Please log in or register to join the discussion