A lightweight, modern installer for portable Windows applications distributed as ZIP files. Inspired by NirSoft's ZipInstaller, built with Python and PySide6. Supports Windows 10/11.
- π¦ ZIP Installation: Extract and install portable applications from ZIP archives
- ποΈ Clean Uninstallation: Complete removal with detection of user-created files
- π Self-Installation: Install ZIM itself as a system application
- π Registry Integration: Full Windows Add/Remove Programs support
- π¨ Modern UI: Clean interface with automatic dark mode detection
- π Intelligent Detection: Automatically finds executables and reads metadata (version, publisher, icon)
- π Flexible Structure: Handles ZIPs with executables in root or first subdirectory
- π±οΈ Context Menu: Right-click "Install with ZIM..." on ZIP files
- β‘ Background Installation: Non-blocking UI with progress feedback
- π Multilingual: English and Spanish translations (easily extensible)
Main installation window with dark theme support
Uninstaller with additional files detection
- Download the latest release from Releases
- Run
ZIM.exe(portable, no installation required) - Optional: Install ZIM itself via the menu (β°) β "Install ZipInstaller Modern in the system"
- Click π Browse and select a ZIP file
- ZIM automatically detects executables and metadata
- Configure name, installation path, and shortcuts
- Click β¬οΈ INSTALL
- Right-click any ZIP file in Explorer
- Select "Install with ZIM..."
- ZIM opens with the file pre-loaded
- Windows Settings β Apps β Select application β Uninstall
- Control Panel β Programs and Features
- Installation folder β Run
uninstall.exe
# Python 3.12+
python --version
# Install dependencies
pip install -r requirements.txt- PySide6 (GUI framework) - LGPL v3 / GPL v3
- pywin32 (Windows integration) - PSF License
- pefile (Executable metadata) - MIT License
- pyshortcuts (Shortcut creation) - MIT License
- Babel (Internationalization) - BSD License
- Nuitka (Python compiler) - Apache 2.0
# Using build.py (recommended)
build.py
# Using Nuitka
nuitka --standalone --onefile --windows-console-mode=disable \
--enable-plugin=pyside6 --msvc=latest \
--file-version=x.x.x.x --windows-icon-from-ico=zim.ico \
--include-data-dir=locales=locales \
--lto=yes --include-qt-plugins=sensible \
--noinclude-qt-translations zim.pyzipinstaller-modern/
βββ zim.py # Main application code
βββ zim.ico # Application icon
βββ locales/ # Translation files
β βββ xx/LC_MESSAGES/
βββ requirements.txt # Python dependencies
βββ README.md # This file
ZIM uses Babel for internationalization. Currently supported languages:
- π¬π§ English (default)
- πͺπΈ Spanish
- Extract translatable strings:
translations.py extract- a) Create translation for new language (e.g., French):
translations.py init fr- b) Update translation for existing language (e.g., Spanish):
translations.py update es-
Edit
locales/fr/LC_MESSAGES/messages.po -
Compile translations:
translations.py compile-
ZIP Analysis: Scans for
.exefiles in root or first subdirectory -
Metadata Extraction: Uses
pefileto read executable version info -
Installation:
- Extracts files to
%LOCALAPPDATA%\Programs\AppName - Creates
uninstall.exe(copy of ZIM) - Saves
install_info.jsonwith file list - Generates desktop/Start Menu shortcuts
- Registers in Windows Registry (HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall)
- Extracts files to
-
Uninstallation:
- Detects additional files created after installation
- Removes shortcuts and registry entries
- Self-deletes via batch script
ZIM creates entries under:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[AppName]
Fields: DisplayName, DisplayVersion, Publisher, InstallLocation, UninstallString, DisplayIcon, EstimatedSize, InstallDate
For ZIP files, ZIM registers:
HKEY_CURRENT_USER\Software\Classes\[ProgID]\shell\InstallWithZIM\command
Where [ProgID] is detected from the system's ZIP file association.
Contributions are welcome! Please feel free to submit issues, fork the repository, and create pull requests.
- Fork and clone the repository
- Create a virtual environment:
python -m venv venv
venv\Scripts\activate # Windows- Install dependencies:
pip install -r requirements.txt- Run from source:
python zim.py- Follow PEP 8 guidelines
- Use type hints where applicable
- Add docstrings to all public functions/classes
- Keep functions focused and modular
This project is licensed under the GNU General Public License v3.0 (GPLv3).
See LICENSE for the full license text.
- PySide6: LGPL v3 / GPL v3 / Commercial
- pywin32: Python Software Foundation License
- pefile: MIT License
- pyshortcuts: MIT License
- Nuitka: Apache License 2.0
All dependencies are compatible with GPLv3.
This software is provided "AS IS" without warranty of any kind. Use at your own risk. Always verify the contents of ZIP files before installation.
- Inspired by NirSoft's ZipInstaller
- Built with PySide6 (Qt for Python)
- Compiled with Nuitka
Author: VM/Studio
Issues: GitHub Issues
Made with β€οΈ by VM/Studio