I've been using DuckDuckGo Email Protection service for a while and really appreciate it. However, the requirement to install the full DuckDuckGo extension came with some challenges:
- You can't disable the tracking protection feature globally
- You need to manually disable tracking protection for each website
- The extension changes your default search engine to DuckDuckGo
- No way to use just the email protection service standalone
That's why I created Qwacky - initially for personal use, but I realized others might face the same issues. As someone who always wanted to contribute to the open-source community with helpful tools, I decided to share this project publicly.
- Generate and manage private @duck.com email addresses
- Copy the generated address to the clipboard
- Auto-fill addresses in input fields from context menu for a quick address generation
- Store the generated addresses
A big thanks to @m.miriam12398 for contributing by making such a cool designs for the project!
- Autofill input icon
- Multiple accounts support
- Create duck account
- Change forwarding email
- Delete duck account
- Uses minimal permissions required for functionality
- Only accesses tabs when explicitly requested by user action
- All data is stored locally on your device
- No tracking or analytics
- Open source for transparency
This extension requires the following permissions with detailed explanations of why each is needed:
activeTab
: Required to access and inject scripts into the current tab only when you explicitly interact with the extension (e.g., using the context menu to fill email addresses)storage
: Required to store your generated addresses and settings locallycontextMenus
: Enables the right-click menu for quick address generationclipboardWrite
: Needed to copy the generated address to the clipboard
Security Note: The extension only accesses web pages when you explicitly use the context menu to generate an address. No automatic or background access to web pages occurs.
Qwacky is designed to work seamlessly on both Chrome and Firefox. The build process automatically handles browser-specific requirements:
- Chrome: Uses service workers for background scripts (Manifest V3)
- Firefox: Uses background scripts with polyfill support (Manifest V3)
Both versions maintain feature parity while adhering to each browser's best practices and security models.
- Download the latest release from the GitHub Releases page
- Unzip the downloaded file
- Open Chrome and go to
chrome://extensions/
- Enable "Developer mode" in the top right
- Click "Load unpacked" and select the unzipped folder
- Download the Firefox version (.xpi file) from the GitHub Releases page
- Open Firefox and go to
about:addons
- Click the gear icon and select "Install Add-on From File..."
- Select the downloaded .xpi file
- Node.js (v16 or higher)
- npm (v7 or higher)
- Clone the repository
git clone https://github.com/Lanshuns/Qwacky.git
cd qwacky
- Install dependencies
npm install
npm run dev
npm run dev:firefox
npm run build
npm run build:firefox
The built extension will be available in the dist
directory.
Note: For development and temporary installation in Firefox, you can use
about:debugging
method:
- Go to
about:debugging
- Click "This Firefox" in the left sidebar
- Click "Load Temporary Add-on"
- Select the
manifest.json
file from the unzipped folder
This project is a derivative work based on DuckDuckGo's Email Protection service, which is licensed under the Apache License 2.0. The original work's copyright notice:
Copyright (c) 2010-2021 Duck Duck Go, Inc.
For the full license text, see APACHE-LICENSE.