A clean Manifest V3 browser extension for importing, switching, checking, filtering, and monitoring proxy connections.
KGAProxy is a lightweight proxy management extension for Chromium-based browsers. It is built for users who need a fast local tool for working with proxy lists without a heavy dashboard, external backend, account system, or build pipeline.
The extension lets you paste a proxy list, switch between entries, save imports, bypass selected websites with global filters, detect approximate proxy countries, run health checks, and watch the current connection state from a minimal colored toolbar indicator.
| Feature | Description |
|---|---|
| Proxy import | Paste plain text proxy lists in several common formats. |
| Manual switching | Click any proxy to make it the active browser proxy. |
| Saved imports | Keep previous proxy lists locally and load them later. |
| Global filters | Bypass the proxy for matching URLs such as ozon.ru/*. |
| Health checks | Verify the active proxy and rotate away from failed entries. |
| Geo-IP lookup | Detect approximate country and city information for proxy hosts. |
| Toolbar status | Show connection state as a simple gray, red, or green circle. |
| Local storage | Persist proxy state in chrome.storage.local. |
| No build step | Plain HTML, CSS, and JavaScript. Load it directly as unpacked. |
- Open a Chromium-based browser.
- Navigate to
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select the
KGAProxyproject directory. - Pin the extension to the toolbar.
- Open the popup and import your proxy list.
After changing source files, reload the extension from chrome://extensions.
Import proxies -> Select active proxy -> Enable proxy mode -> Check status
-> Add filters if needed -> Save import -> Reuse later
A typical session:
- Paste proxies into Import proxies.
- Click Import.
- Select a proxy from Proxy list.
- Turn on the top-right proxy toggle.
- Use Check now to validate the active proxy.
- Use Countries to detect approximate proxy locations.
- Use Save current to keep the current proxy set.
KGAProxy accepts common proxy line formats. Blank lines and lines beginning with # are ignored.
http://user:pass@host:port
https://user:pass@host:port
socks5://user:pass@host:port
host:port
user:pass@host:port
host:port:user:pass
Examples:
http://alice:secret@203.0.113.10:8080
socks5://user:pass@198.51.100.42:1080
192.0.2.15:3128
The proxy list is interactive. Click a proxy entry to make it active.
When a proxy is selected:
- The active entry is highlighted.
- Proxy mode is enabled.
- Browser proxy settings are updated through the Chrome
proxyAPI. - Proxy authentication is supplied automatically when credentials are available.
The browser toolbar icon is intentionally minimal. It is a colored circle that reflects the current proxy state.
| Color | Meaning |
|---|---|
| Gray | Proxy mode is disabled or no proxy is selected. |
| Red | Proxy mode is enabled, but the active proxy is not confirmed working. |
| Green | Proxy mode is enabled and the active proxy is confirmed alive. |
Global filters define URL patterns that should bypass the proxy. Matching requests are sent directly instead of through the selected proxy.
Examples:
ozon.ru/*
ozon.*
*.example.com/*
Filters are applied through a generated PAC script. This allows KGAProxy to evaluate both the full request URL and the request host.
The extension stores recent import sets locally. This makes it easy to switch between different proxy collections without pasting the same list repeatedly.
Available actions:
| Action | Purpose |
|---|---|
| Import | Parse a pasted proxy list and load it into the current session. |
| Save current | Save the currently loaded proxy list. |
| Load | Restore a previously saved import. |
| Remove | Delete a saved import from local storage. |
Identical imports are deduplicated.
The Countries button performs approximate geo-IP lookup for proxies in the current list.
Displayed metadata may include:
- Country code
- Country name
- City
Geo-IP data is approximate. It can be wrong for datacenter IPs, recently reassigned ranges, VPN infrastructure, CDN-like routing, or proxy providers that route traffic differently than the host location suggests.
KGAProxy can test the active proxy against a public IP endpoint. If the active proxy fails, it is marked as dead and the extension attempts to rotate to another proxy.
Proxy states:
| State | Meaning |
|---|---|
unknown |
The proxy has not been checked yet. |
alive |
The latest health check succeeded. |
dead |
The latest health check failed. |
All extension state is stored locally through chrome.storage.local.
Stored data may include:
- Current proxy list
- Saved import lists
- Active proxy index
- Enable or disable state
- Global filter patterns
- Proxy health state
- Approximate geo-IP metadata
KGAProxy does not require a custom backend server.
KGAProxy uses browser permissions required for proxy management and authentication.
| Permission | Why it is needed |
|---|---|
proxy |
Apply and clear browser proxy settings. |
storage |
Persist extension configuration locally. |
alarms |
Run periodic health checks. |
webRequest |
Observe proxy authentication requests. |
webRequestAuthProvider |
Provide proxy credentials when required. |
<all_urls> |
Support proxy auth and PAC-based routing across browser traffic. |
The extension may make external requests for:
- Proxy health checks.
- Approximate geo-IP detection.
These requests are used only for operational proxy management.
KGAProxy/
├── background.js # Service worker: proxy state, PAC config, auth, checks, geo lookup
├── popup.html # Popup markup
├── popup.css # Popup visual design
├── popup.js # Popup interactions and rendering
├── manifest.json # Chrome extension manifest
├── logo.svg # Popup logo asset
└── LICENSE # Custom restrictive license
KGAProxy intentionally avoids bundlers and build tools. The source is direct browser-extension code.
Development loop:
- Edit source files.
- Open
chrome://extensions. - Click Reload on the extension card.
- Reopen the popup.
- Test proxy import, switching, filters, countries, and health checks.
Useful syntax checks:
node --check background.js
node --check popup.js- Browser proxy settings apply to the regular browser profile globally.
- Manifest V3 service workers can restart, so state must be persisted.
- Geo-IP results are approximate and may be inaccurate.
- Health checks depend on external network availability.
- Some proxy providers route traffic differently from the proxy host location.
- Proxy reliability depends on the provider and network conditions.
Proxy credentials are stored in local browser extension storage. Treat the browser profile as sensitive if you import authenticated proxies.
Do not import proxy lists from untrusted sources unless you understand the risk.
KGAProxy is distributed under a custom restrictive license.
Commercial use, redistribution, resale, republishing, rebranding, sublicensing, uploading to extension stores, uploading to application stores, or publishing modified versions without the author's explicit written permission is prohibited.
See LICENSE for the full license terms.