Proxy Management & Cookie Manipulation โ All in One Chrome Extension
HAD is a powerful browser extension that combines proxy management with a full-featured cookie editor. Built for penetration testers, developers, and privacy enthusiasts who need granular control over their browser's network traffic and cookie data.
- โก Proxy Commander โ Quickly switch between HTTP, HTTPS, SOCKS4 & SOCKS5 proxies
- ๐ช Cookie Vault โ View, edit, delete, and export cookies per domain
- ๐ Auto-Restore โ Persist proxy settings across browser sessions
- ๐ Export/Import โ JSON, Netscape (.txt), and Header string formats
- ๐ Bypass List โ Define hosts that bypass the proxy
- ๐ Proxy Tester โ Ping your proxy server to verify connectivity
- ๐จ Dark UI โ Cyberpunk-themed interface optimized for low-light work
- Download or clone this repository:
git clone https://github.com/batmanpriv/proxy-cookie.git
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top-right corner)
- Click "Load unpacked"
- Select the folder containing the extension files (
manifest.json,background.js, etc.) - The extension icon (๐ท๏ธ) will appear in the toolbar
โ ๏ธ This method is deprecated by Google. Use Developer Mode instead.
- Visit the Chrome Web Store listing
- Click "Add to Chrome"
- Confirm the installation
Firefox extensions are signed, but you can install unpacked versions via about:debugging.
- Open Firefox and navigate to
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Navigate to the extension folder and select any file (e.g.,
manifest.json) - The extension will load temporarily (removes on browser restart)
- Zip the extension files:
zip -r had-proxy-cookie.xpi background.js had.png manifest.json popup.html popup.js
- Submit the XPI to Mozilla Add-on Developer Hub
- Follow their signing process
- Once signed, install the
.xpifile directly in Firefox
Note: Firefox requires explicit permission grants. You'll see a prompt on first use.
โโโ background.js # Service worker โ Proxy logic, storage, messaging
โโโ had.png # Extension icon
โโโ manifest.json # Manifest V3 configuration
โโโ popup.html # Popup interface (HTML)
โโโ popup.js # Popup logic โ UI controls, cookie operations
- Uses Chrome's
proxy.settingsAPI to dynamically change network routes - Supports fixed_servers mode with custom bypass lists
- Stores and persists settings via
chrome.storage.local - On browser restart, auto-restores if
autoRestoreis enabled
- Fetches all cookies for the current active tab's domain
- Provides full CRUD operations:
- Create via import (JSON, Netscape, Header)
- Read with live search
- Update with inline editor
- Delete individual or all cookies
| Format | Use Case |
|---|---|
| Header | Copy-paste into Cookie header for cURL/requests |
| JSON | Programmatic use, backup |
| Netscape | Compatible with curl -b cookies.txt and other tools |
- Click the ๐ท๏ธ extension icon
- In the Proxy tab:
- Select protocol:
HTTP,HTTPS,SOCKS4, orSOCKS5 - Enter host (e.g.,
127.0.0.1) and port (e.g.,8085)
- Select protocol:
- Click ๐ TEST to verify connectivity
- Click โก ACTIVATE to enable the proxy
- The status bar turns RED when active
- Navigate to the Cookies tab
- All cookies for the current domain appear automatically
- Use the search bar to filter by name or value
- Actions per cookie:
- โ๏ธ EDIT โ Change the value inline
- ๐๏ธ DEL โ Delete the cookie
- ๐ COPY โ Copy as
name=value
- Bulk actions:
- REFRESH โ Reload cookie list
- COPY โ Copy all cookies in selected format
- CLEAR ALL โ Delete all cookies for the domain
- Export/Import:
- Select format (Header / JSON / Netscape)
- EXPORT โ Downloads as file
- IMPORT โ Paste raw data and apply
- Found in the Config tab
- Hosts listed here will not use the proxy
- Defaults:
localhost,127.0.0.1,::1 - One domain per line
- Toggle in Config tab
- When enabled, the proxy is reactivated every time the browser starts
| Permission | Reason |
|---|---|
proxy |
Control browser proxy settings |
storage |
Persist user preferences |
cookies |
Read/write cookies |
activeTab |
Access current tab's domain |
scripting |
Inject content scripts (if needed) |
| API | Purpose |
|---|---|
chrome.proxy.settings.set() |
Enable proxy |
chrome.proxy.settings.clear() |
Disable proxy |
chrome.cookies.getAll() |
Retrieve all cookies |
chrome.cookies.set() |
Create/update cookie |
chrome.cookies.remove() |
Delete cookie |
chrome.storage.local |
Persistent storage |
chrome.runtime.onMessage |
Communication between popup & service worker |
popup.js (UI)
โ chrome.runtime.sendMessage()
background.js (Service Worker)
โ Chrome APIs (proxy, cookies, storage)
response via sendResponse() โ popup.js updates UI
- No external tracking โ All data stays local to your browser
- Cookie data is never transmitted or logged externally
- Proxy credentials are not stored (you can modify
background.jsto add auth if needed) - Bypass list prevents sensitive internal traffic from being proxied
- Ensure the proxy server is running
- Check the host/port and protocol
- Disable other proxy extensions
- Try adding your target domain to the bypass list (if you don't want it proxied)
- Refresh the page manually (
F5) - Click the REFRESH button in the extension
- Ensure you're on the correct domain
- Verify
manifest.jsonis present in the root - Check for syntax errors in the JSON
- Make sure all files are in the same folder
chrome.*APIs are partially supported via WebExtensions polyfill- For production, use the
webextension-polyfilllibrary
