Skip to content

Repository files navigation

ZipFlow

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español

ZipFlow is a desktop batch archive extractor built with Electron for Windows and macOS.

It is designed to solve two common workflow problems:

  • Extract many archives in one run instead of opening them one by one
  • Automatically try a saved password list for encrypted archives

The project is currently in a usable prototype stage, with working support for batch import, task queues, extraction settings, password attempts, and task status tracking.

Features

  • Batch add archives by drag and drop or native file picker
  • Sequential task processing for stable desktop batch workflows
  • Configurable overwrite behavior
    • overwrite: replace existing files
    • rename: auto-rename extracted files
    • skip: skip existing files
  • Configurable extraction location
    • Extract next to the archive
    • Extract to a custom directory
  • Configurable output folder mode
    • No new folder
    • Use archive name
    • Use custom folder name
  • Built-in password list management
  • Automatically tries saved passwords one by one
  • Visual task status tracking
    • Queued
    • Running
    • Paused
    • Completed
    • Stopped
    • Failed
  • One-click open output directory

Supported Formats

ZipFlow uses 7zip-bin and the bundled 7za executable. The current code supports these extensions:

7z, zip, rar, tar, gz, tgz, bz2, tbz2, xz, txz, zst, cab, iso, wim, arj, lzh

It also handles multi-part style extensions such as:

tar.gz, tar.bz2, tar.xz, tar.zst

Screenshots

If you plan to publish this on GitHub, adding 2 to 4 screenshots here will help a lot:

  • Main window overview
  • Extraction settings panel
  • Password manager modal
  • Running task progress view

Example:

![main](./docs/screenshots/main.png)
![passwords](./docs/screenshots/passwords.png)

Getting Started

Requirements

  • Node.js 18 or later
  • npm
  • Windows or macOS

Install dependencies

npm install

Start in development

npm start

Build the app

macOS:

npm run pack:mac

Windows:

npm run pack:win

Usage

  1. Launch the app and drag archives into the window, or click the file picker button.
  2. Choose overwrite behavior, output directory, and folder naming mode.
  3. If your archives may be encrypted, open the password manager and save a password list.
  4. Click Start All to run the queue.
  5. Check each task's status, progress, errors, and output path in the task list.

Tech Stack

  • Electron for desktop app shell, IPC, native dialogs, and system integration
  • Plain HTML, CSS, and JavaScript in the renderer for a lightweight UI
  • ExtractorService in the main process for queue scheduling and extraction lifecycle management
  • 7zip-bin as the extraction backend through 7za
  • Persistent config stored in Electron userData as zipflow-config.json

Project Structure

src/
  main/
    archive-utils.js
    config-store.js
    extractor-service.js
    main.js
    preload.js
  renderer/
    app.js
    index.html
    styles.css

Current Limitations

  • Tasks are processed sequentially, not in parallel
  • Pause behavior depends on suspending the underlying 7za process
  • On some platforms, resume may restart extraction from the beginning if native process suspension is unavailable
  • Auto update, code signing, app branding assets, and i18n are not finished yet
  • There is no complete automated test suite yet

Roadmap Ideas

Useful next steps for an open source release:

  • Add screenshots and demo GIFs
  • Add a proper license
  • Add CHANGELOG.md
  • Add issue and pull request templates
  • Add GitHub Actions build workflows
  • Improve error reporting and exportable logs
  • Add full internationalization support

Contributing

Issues and pull requests are welcome.

Good areas to contribute first:

  • Compatibility testing for more archive variations
  • More robust cross-platform pause and resume behavior
  • Batch task UX improvements
  • Better UI polish and error feedback

License

No license has been added yet.

If you plan to open source this project, common choices are:

  • MIT for a simple permissive license
  • Apache-2.0 for permissive use with an explicit patent grant
  • GPL-3.0 if you want stronger copyleft requirements

Until you decide, you can keep this section as:

TBD

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages