Tar App Installer is a native, modern Linux application and CLI tool that automatically extracts .tar.gz, .tgz, .tar.xz, .tar.bz2, and .zip archives, detects the main executable and icon, installs the files into your system, and seamlessly adds the application to your Start Menu / App Launcher and $PATH.
- The Problem It Solves
- Key Features
- How It Works
- Supported Archive Formats
- Quick Installation
- Graphical Interface (GUI)
- Command-Line Interface (CLI)
- More Linux Projects
- Uninstallation
- License
When you download portable Linux software as a .tar.gz archive (such as Blender, Postman, Discord, Godot, Tor Browser, Obsidian, Android Studio, or custom tools), Linux does not provide an automatic installer:
- You manually extract the archive to
Downloads/. - There is no launcher in your Start Menu.
- If you move or delete your
Downloadsfolder, the app breaks. - You cannot launch it from terminal without typing the full path.
- You have to manually write FreeDesktop
.desktopfiles, set permissions, hunt for icon files, and configure categories.
Tar App Installer automates the entire workflow in seconds. Either right-click any .tar.gz file, use the sleek GTK3 graphical interface, or run a single command in your terminal.
- β‘ 1-Click Desktop & Menu Integration:
- Extracts the archive safely to permanent application storage (
~/.local/share/tar-apps/<app>or/opt/<app>). - Generates a fully compliant FreeDesktop
.desktoplauncher in~/.local/share/applications/so it immediately appears in your Zorin OS / GNOME / KDE start menu. - Creates an instant command-line symlink in
~/.local/bin/so you can launch it from any terminal.
- Extracts the archive safely to permanent application storage (
- π§ Smart Detection Engine:
- Executable Identification: Uses ELF binary parsing, shebang detection, and heuristic scoring to locate the real application entry point while filtering out helper libraries (
lib*.so, crashpad, sandbox). - Icon Discovery: Scans for embedded
.svgvectors and high-resolution.pngicons. If no icon exists, generates a modern vector lettermark icon automatically. - Existing Metadata Support: If the archive already includes an internal
.desktopfile, its Name, Comment, and Categories are automatically parsed and adapted.
- Executable Identification: Uses ELF binary parsing, shebang detection, and heuristic scoring to locate the real application entry point while filtering out helper libraries (
- π₯οΈ Native GTK 3 Interface (
tar-installer-gui):- Built to match the aesthetics of Zorin OS and modern GNOME desktops.
- Drag-and-drop or file picker for instant archive inspection.
- Visual metadata editor: tweak app name, version, category, or executable before installing.
- Installed Apps Manager: View all installed apps, disk size, launch them, open their folders in Files, or completely uninstall them with 1-click.
- π» Powerful Command-Line Tool (
tar-installer):- Single command installation:
tar-installer install app.tar.gz - List all installed apps:
tar-installer list - Complete uninstallation:
tar-installer remove app-name - Launch or inspect installed packages:
tar-installer launch app-name
- Single command installation:
- π‘οΈ Security & Integrity:
- Path traversal / Zip-Slip protection on all extractions.
- Installs into user space (
~/.local/share/tar-apps) without needing root orsudopermissions (system-wide/optmode is also available).
- π File Manager Integration:
- Associates with archive MIME types so you can right-click any
.tar.gzin Nautilus / Files and choose "Open With -> Tar App Installer".
- Associates with archive MIME types so you can right-click any
flowchart TD
A["π¦ Input Archive (.tar.gz, .tar.xz, .zip)"] -->|"GUI / CLI / 'Open With'"| B["π‘οΈ Safe Extraction Sandbox"]
B -->|"Zip-Slip & Path Traversal Guard"| C["π Smart Detection Engine"]
subgraph Detection ["Smart Detection Engine"]
C --> D["β‘ Binary Identification<br/>(ELF Magic Header + Shebang Parser)"]
C --> E["πΌοΈ Icon Discovery<br/>(SVG / High-Res PNG or Vector Lettermark)"]
C --> F["π Metadata Parsing<br/>(Internal .desktop, Name & Semantic Version)"]
end
Detection --> G["π Install Coordinator"]
G --> H["π App Directory β ~/.local/share/tar-apps/<app>"]
G --> I["π Desktop Entry β ~/.local/share/applications/<app>.desktop"]
G --> J["π» CLI Symlink β ~/.local/bin/<app>"]
G --> K["π Registry Record β ~/.local/share/tar-apps/registry.json"]
G --> L["π Cache Refresh (update-desktop-database & gtk-update-icon-cache)"]
L --> M["π App available immediately in Start Menu & Terminal!"]
When you open an archive via the CLI, GUI, or file manager context menu, tar-app-installer decompresses the archive into an isolated temporary workspace. Strict Zip-Slip and directory traversal protections are enforced to prevent malicious archives from extracting files outside the sandbox.
Portable Linux software rarely follows uniform folder hierarchies. The detection engine identifies the true application entry point using a multi-step heuristic:
- ELF & Shebang Validation: Scans candidate files for valid ELF headers (
\x7fELF) or script shebangs (#!/bin/...), automatically ignoring shared libraries (lib*.so), crashpad handlers, and helper sandboxes. - Icon Discovery & Generation: Searches for embedded high-resolution
.svgand.pngicons. If no icon exists, it generates a clean vector lettermark SVG icon dynamically from the application's initial letter. - Internal Desktop Specification: If the archive already contains a
.desktopfile, its name, generic comments, and FreeDesktop categories are automatically parsed and adapted.
The installer deploys the application cleanly into user space without requiring sudo or root permissions:
- Application Files: Safely moved into permanent user storage at
~/.local/share/tar-apps/<app>/(or/opt/<app>/if run system-wide). - Start Menu Launcher: Generates a standard FreeDesktop
.desktopfile in~/.local/share/applications/<app>.desktop. - Terminal Access: Symlinks the primary executable to
~/.local/bin/<app>so you can launch it directly from any shell. - Desktop Database Invalidation: Runs
update-desktop-databaseandgtk-update-icon-cacheso the application shows up instantly in your application menu (GNOME, Zorin OS, KDE Plasma, XFCE).
Every installation is cataloged in ~/.local/share/tar-apps/registry.json. This tracks installed versions, file sizes, creation dates, and symlinks, allowing you to view, launch, or cleanly uninstall any application with a single click or command.
| Format | Extensions |
|---|---|
| Gzip Tarball | .tar.gz, .tgz |
| XZ Tarball | .tar.xz, .txz |
| Bzip2 Tarball | .tar.bz2, .tbz2 |
| Standard Tar | .tar |
| Zip Archive | .zip |
- Python 3.10+
- Poetry package manager (
sudo apt install python3-poetryorpipx install poetry) - PyGObject (
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0)
git clone https://github.com/moalmatry/tar-app-installer.git
cd tar-app-installer
./install.shThe installer will:
- Build the Poetry environment and dependencies.
- Enable GTK 3 system bindings.
- Symlink global commands
tar-installerandtar-installer-gui. - Install the desktop launcher and custom SVG icon.
- Register MIME type associations for
.tar.gzfiles in your file manager.
Launch Tar App Installer from your Start Menu, right-click any archive in your Files app, or run:
tar-installer-guitar-installer-gui /path/to/software.tar.gztar-installer install postman-linux-x64.tar.gztar-installer install -y blender-4.2.0-linux-x64.tar.xztar-installer install app.tar.gz \
--name "My Custom App" \
--category "Development" \
--version "2.1.0"tar-installer listExample Output:
===========================================================================
NAME VERSION SIZE COMMAND INSTALLED
===========================================================================
Blender 4.2.0 1.2 GB blender 2026-10-11
Postman 10.24.1 320.5 MB postman 2026-10-11
Godot Engine 4.3.0 115.2 MB godot-engine 2026-10-11
===========================================================================
Total installed: 3 app(s)
tar-installer info postmantar-installer launch postmantar-installer remove postman(Removes the application directory, desktop launcher, icon, and binary symlink).
To cleanly remove Tar App Installer itself from your system:
cd tar-app-installer
./uninstall.shExplore other native Linux tools by the author:
- β‘ dell-gmode β Native Linux daemon and CLI utility for Dell G15 / G16 laptops to enable the Fn+F9 Game Shift (G-Mode) hardware key, 100% maximum fan cooling boost via Alienware WMAX ACPI, and CPU/GPU performance power profiles.
- π dell-g15-rgb β Native Linux driver, CLI, and GTK 3 GUI for Dell G15 & Alienware laptops to control AlienFX 4-Zone RGB keyboard lighting, custom hardware effects, brightness, and permanently fix the "stuck on red" backlight issue.
- π dell-power-manager β Native Linux GUI & CLI to limit battery charging thresholds (50%, 80%), manage SMBIOS power profiles, and protect battery health on Dell laptops.
MIT License. Copyright (c) 2026 Mohamed Almatry.