Downloads Library & Organizer

A private-by-design downloads library and organizer for Chromium browsers.

View the Project on GitHub Ralkero/downloads-library-organizer

Downloads Library & Organizer

Downloads Library & Organizer is a local-first Manifest V3 extension for Chromium browsers. It presents download history and active transfers in a dedicated desktop-style window and can optionally organize new downloads into relative folders under the browser’s normal Downloads directory.

Features

Install unpacked

  1. Open chrome://extensions in a Chromium browser version 123 or newer.
  2. Enable Developer mode.
  3. Choose Load unpacked.
  4. Select this directory, which contains manifest.json.
  5. Pin the extension and choose Open Downloads Library, or use Ctrl+Shift+Y.

The built-in Downloads page and browser-reserved Ctrl+J shortcut remain unchanged.

Permissions

Permission Purpose
downloads Display and manage browser download records, files, progress, and optional filename routing.
downloads.ui Let the user opt in to hiding or restoring the browser’s native downloads interface.
downloads.open Open a completed file after an explicit user action.
storage Save local settings and routing rules and keep short-lived window/badge/diagnostic session state.
clipboardWrite Copy a selected download source URL after a user action.

There are no host permissions. The extension cannot read ordinary webpage content. Incognito operation is disabled.

Privacy

Download records and settings stay on the device. The extension has no developer server, telemetry, advertising, analytics, or account system. Routing diagnostics are redacted, limited to ten entries, stored only for the current browser session, and contain hostnames rather than full URLs.

Read the hosted privacy policy or its repository source in PRIVACY.md. The extension package also includes an offline privacy notice.

Download routing

Routing is disabled until the user creates a rule. A rule can match the download’s browser-provided referrer, final URL, or source URL by domain and optional path scope. Matching files can be placed under category folders such as:

Download Organizer/Example/Videos/file.mp4
Download Organizer/Example/Images/file.jpg

Destinations must remain relative to the default Downloads folder. Absolute paths, drive letters, empty segments, unsafe filename characters, and .. traversal are rejected. Unmatched downloads and downloads from unconfigured domains remain unchanged.

Development

The extension runtime is build-free and uses plain HTML, CSS, and JavaScript modules. Node.js 20 or newer is needed only for tests, validation, and Store packaging.

npm test
npm run validate
npm run check
npm run release:webstore

npm run release:webstore creates a runtime-only ZIP under dist/ with manifest.json at the archive root and then validates its permissions, paths, references, and absence of remote code or private site adapters.

The standard-library Python artwork generator is optional:

python scripts/generate-icons.py

Chrome Web Store preparation

See docs/WEBSTORE-LISTING.md for prepared listing copy, privacy declarations, and permission justifications. Before submission, the publisher still must:

The generated store-assets/small-promo-440x280.png, padded icons/icon-128.png, and store-assets/screenshot-library-1280x800.png satisfy the mandatory artwork dimensions. The screenshot is captured from the real packaged extension in a disposable profile with synthetic downloads, so it exposes no personal history.

Known limitations

Licensed under the MIT License.

Published by Ralkero. Support: ralkerosoftware@gmail.com.