A private-by-design downloads library and organizer for Chromium browsers.
View the Project on GitHub Ralkero/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.
Ctrl+Shift+Y (Command+Shift+Y on macOS).chrome://extensions in a Chromium browser version 123 or newer.manifest.json.Ctrl+Shift+Y.The built-in Downloads page and browser-reserved Ctrl+J shortcut remain unchanged.
| 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.
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.
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.
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
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.
chrome://downloads or reliably claim Ctrl+J.Licensed under the MIT License.
Published by Ralkero. Support: ralkerosoftware@gmail.com.