thehardwarestore.ai

where AI agents shop for the right tools

── 99052 repos indexed ── | filtered by tag: appimage
ilysenko/codex-desktop-linux ★ 3894 506 APPLICATION

This repository is a community distribution and feature-extension framework for OpenAI's ChatGPT desktop application on Linux. It does not contain the core ChatGPT application itself; instead, it verifies, repackages, and patches the official signed upstream .deb package to produce customized builds for multiple Linux package formats (deb, RPM, pacman, AppImage, Nix, Gentoo ebuild). The system adds over 40 optional Linux-specific features—such as system tray integration, global dictation, computer-use automation (window management, accessibility, screenshots), desktop recording/replay, text-to-speech, proxy authentication, and UI tweaks—each gated behind a declarative feature manifest and applied via a sophisticated patch engine that modifies the Electron app bundle at build time. Architecturally, the project is a build/packaging/update framework. The core is a patch engine (scripts/patches/) that applies declarative descriptors to the upstream app.asar in phases (main-bundle, webview-asset, extracted-app). Features live under linux-features/ with standardized manifests (feature.json), patch scripts (patch.js), stage hooks, and tests. Performance-critical subsystems are implemented in Rust: a computer-use backend (window management, input simulation, accessibility tree), a record-replay backend (desktop session capture, timeline events, skill drafting), a text-to-speech MCP server, a global dictation helper, and a self-updating package manager daemon. The launcher (start.sh.template) orchestrates environment setup, feature hooks, and CLI dispatch. Key entry points include the installer (install.sh), the feature picker GUI (scripts/feature-picker.py), the patch runner (scripts/patches/runner.js), and the updater daemon (updater/src/main.rs). Data flows are primarily build-time: the upstream .deb is downloaded, verified via GPG/SHA256, extracted, patched, and repackaged. At runtime, features like computer-use and record-replay communicate with native Rust backends over MCP/JSON-RPC. The updater daemon runs as a systemd user service, polling signed APT metadata and performing transactional rebuilds with rollback support. External dependencies include the upstream OpenAI .deb package (the sole ground-truth source), Node.js for patching, Rust for native components, and various Linux system tools (systemd, D-Bus, GNOME Shell, X11/Wayland utilities, ydotool, wmctrl, xdotool, secret-tool). The build system uses Make, Docker for CI, and supports multiple package managers. The project is heavily dependent on the upstream bundle's minified JavaScript structure, which it manages through contract-based patching with drift detection.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
davidsmorais/kuro ★ 507 32 APPLICATION

Kuro is an Electron-based desktop client for Microsoft To-Do that wraps the web interface in a native application shell. It provides desktop-specific features like system tray integration, global keyboard shortcuts, auto-launch capabilities, and theme customization while maintaining compatibility with the Microsoft To-Do web service. The architecture follows a standard Electron pattern with main and renderer processes, using IPC communication for desktop features and electron-store for persistent settings. The application injects custom CSS to theme the Microsoft To-Do interface and adds platform-specific enhancements.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
patrickjaja/claude-desktop-extra ★ 629 41 APPLICATION

This repository repackages Anthropic's official Claude Desktop Linux .deb with a comprehensive set of Linux-native enhancements and community features. It applies 48 surgical JavaScript patches (compiled from Nim sources) to the minified Electron bundle, adding custom theme engine with 97 bundled dual light/dark palettes, multi-profile isolation, Quick Entry global hotkey, Computer Use desktop automation backends (X11, wlroots, GNOME, KWin portals), and an in-app Extra settings panel for themes, feature flags, and third-party inference configuration. The project produces packages for Arch (pacman), Debian/Ubuntu (APT), Fedora/RHEL (RPM), NixOS (flake), and AppImage, with automated CI that polls upstream every 2 hours, validates patch integrity, and publishes signed repositories. The architecture is a patch overlay on a third-party Electron desktop app. Patches are organized into three groups: linux (31 patches, always-on), core (7 patches, infrastructure), and community (10 patches, opt-in). A Nim-based build system compiles each patch into a native binary that performs regex-based transformations on the minified JS, with strict idempotency checks that fail the build if any pattern doesn't match. The patching system also handles upstream code-split chunks and concatenates/splits them as needed. The theme engine injects CSS custom properties via Electron's insertCSS, supports live reload via file watcher, and includes a full browser UI (theme picker SPA) with search, keyboard navigation, and wallpaper-driven generation via matugen. While the codebase demonstrates high engineering craftsmanship—consistent IPC validation, atomic config writes, robust fallback chains for Computer Use backends, and a reproducible build workflow with byte-identical artifact checks—it is tightly coupled to a single upstream app's minified bundle shape and DOM structure. The 48 patches are a significant maintenance burden that must be re-validated on every upstream release. However, the project is actively maintained, with automated CI catching most regressions, and several patterns (spinner injector, theme engine, config utilities) could be extracted for reuse in other Electron or web applications.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 2 reusable components found
lseurttyuu/GPU-T ★ 339 8 APPLICATION

GPU-T is a Linux desktop utility for comprehensive GPU information and monitoring, positioned as a GPU-Z alternative for Linux. It provides real-time sensor data (clocks, temperatures, power, fan speeds), static hardware specifications from JSON databases and sysfs, and detection of API capabilities (Vulkan, OpenCL, CUDA, etc.) through a modular probe system. The application follows the MVVM pattern with Avalonia UI and features a sidecar process for NVIDIA-specific NVAPI/NVML interactions to ensure stability and isolate native interop. Hardware detection relies on sysfs paths, external tool execution, and vendor-specific databases, with user override capabilities for hardware specifications. The modular design separates concerns into probes for hardware polling, advanced providers for feature detection, and utilities for common tasks like settings management and shell command execution.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
aandrew-me/ytDownloader ★ 10481 925 APPLICATION

ytDownloader is a cross-platform desktop application built with Electron that provides a graphical interface for downloading videos and audio from YouTube and hundreds of other sites using yt-dlp as the backend download engine. It features a comprehensive download manager supporting single downloads, playlists, and YouTube search, with options for format selection, quality, subtitles, compression, and output templates. The application manages its own yt-dlp and ffmpeg binaries, supports auto-updates, and includes a download history with JSON/CSV export, theming, internationalization (23+ languages), system tray integration, and a global hotkey for quick URL pasting. Architecture: The application follows a standard Electron architecture with a main process (main.js) handling window management, IPC handlers, auto-updater, system tray, and global hotkey. A preload script (preload.js) sets up a context bridge (electronAPI) that exposes filesystem operations, process spawning, clipboard access, and other OS services to the renderer. The renderer process consists of several JavaScript modules (src/index.js, src/playlist.js, src/compressor.js, src/preferences.js, src/history_ui.js, src/common.js) that handle specific views. Communication between renderer and main process occurs via Electron's IPC mechanism (ipcRenderer/ipcMain). User preferences are stored in localStorage and a JSON config file, while download history is persisted as JSON. Key entry points: main.js (Electron main process), preload.js (context bridge), html/index.html (single-page UI shell), src/renderer.js (main renderer logic with YtDownloaderApp class), src/index.js (homepage downloader), src/playlist.js (playlist downloader), src/compressor.js (video compressor), src/preferences.js (settings), src/history_ui.js (history view). External dependencies include yt-dlp (download engine), ffmpeg/ffprobe (media processing), Electron (framework), electron-builder (packaging), electron-updater (auto-updates), systeminformation (GPU detection), and SlimSelect (custom dropdowns). The application bundles these binaries or uses system-installed versions, with fallback mechanisms.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
mijorus/gearlever ★ 2168 93 APPLICATION

Gear Lever is a GNOME desktop application for managing AppImage files on Linux. Its core function is integrating AppImages into the desktop environment by extracting them, generating .desktop entries with metadata and icons, and keeping them updated. It supports one-click install from downloaded AppImages, drag-and-drop integration, in-place version updates from multiple sources (GitHub releases, GitLab, Codeberg, Forgejo, FTP, and static URLs), side-by-side version retention, per-app environment variables and exec arguments, and bulk update operations. The application is distributed primarily as a Flatpak on Flathub and also ships a headless CLI (src/Cli.py) matching most GUI operations such as integrate, update, remove, list, and fetch-updates. Architecturally, this is an event-driven GTK4/Adwaita desktop application written in Python. The main window (GearleverWindow) uses Adw.Leaflet navigation with a drag-and-drop overlay, and views communicate through custom GObject signals. The core lifecycle logic lives in AppImageProvider, which handles download, extraction, desktop-entry generation, and launch. Extraction uses a fallback chain (dwarfs → 7zz → unsquashfs → appimage-extract) to handle the fragmented AppImage format landscape. Update sources are abstracted behind an UpdateManager ABC with separate backend classes per hosting platform. Configuration is split between a global JSON settings store and per-app INI files, with a migration path from an older JSON schema. Background work is managed through custom async/idle/debounce decorators that marshal tasks onto worker threads and safely return results to the GTK main loop. The system relies on external runtime binaries (7zz, dwarfsck, dwarfsextract, unsquashfs, readelf, strings, file, get_appimage_offset) in addition to Python packages (dbus-python, pyxdg, ftputil, requests, desktop-entry-lib). Notably, the repo embeds a demo.AppImage binary used as a test fixture, illustrating the extraction pipeline against a real-world AppImage. Test coverage is thin — only CLI integration tests that download actual AppImages — and the codebase shows some legacy baggage (ftputil, direct D-Bus usage, fragile external-tool version assumptions). Nonetheless, the code is modular, actively maintained with nightly builds, well-internationalized (16 languages), and demonstrates real craftsmanship in its abstraction layers.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
TheAssassin/AppImageLauncher ★ 8373 351 APPLICATION

AppImageLauncher is a Linux desktop integration utility for AppImage portable applications. It intercepts AppImage launches (via binfmt_misc and an LD_PRELOAD-based bypass), prompts users to move AppImages into a central applications directory, registers them with the system launcher by installing desktop files and icons, and provides context-menu actions to remove or update integrated AppImages. A background daemon watches watched directories via inotify and automatically integrates newly added AppImages and unintegrates removed ones. The project includes a main Qt GUI, a settings dialog, first-run wizard, CLI tool (`ail-cli`), daemon, and remove/update helper binaries.

RATING: 7.6/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: