Your browser. Your proxy. Your location.
Chrome and Firefox. Residential and ISP proxies. One-click connection.
Install · Features · Residential & ISP · IP Lookup · Shifter Docs
Shifter Proxy Extension connects your browser to Shifter Residential Proxies and ISP Proxies. Select a proxy plan, choose a location or an available ISP proxy, and connect from your browser toolbar. See your exit IP, manage sticky or rotating residential sessions, and switch locations without manually editing browser proxy settings.
The extension source is free under the MIT license. Live proxy connections require a Shifter account, an API key, and an active supported proxy plan. This is a browser proxy manager, not a device-wide VPN. Traffic from other applications is not routed through the extension.
- Why Shifter Proxy Extension?
- Install the proxy extension
- Connect your browser to a proxy
- Residential proxies and ISP proxies
- Proxy workflows for SEO and website testing
- Check your proxy exit IP
- Browser support and connection limits
- Privacy and browser permissions
- About Shifter and its products
- Development
- FAQ
- Contributing and support
- License
Review a localized storefront, check how a page responds from another country, or keep a browsing session on a selected proxy. Shifter puts the proxy controls beside your address bar, with your existing Residential and ISP plans in one place.
| Capability | What it helps you do |
|---|---|
| One-click proxy connection | Connect or disconnect the browser from the toolbar. |
| Residential proxy locations | Choose country, state, city, and ASN where your plan supports those targeting levels. |
| ISP proxy selection | Browse the ISP proxies assigned to your plan, grouped by location and network. |
| Sticky and rotating sessions | Keep a residential session for a chosen duration or rotate without a sticky session identifier. |
| New IP control | Start a new residential session without re-entering your account details. |
| Exit IP and connection status | See the observed proxy IP, country, connection time, and toolbar status. |
| Plan visibility | Check traffic allowance, plan status, and renewal or expiry information. |
| Connection settings | Configure entry points, strict location targeting, WebRTC protection, and proxy bypass rules. |
| Inspectable source | Review the browser permissions, API client, proxy controller, and local tests. |
Location availability and session controls depend on your plan. Changing proxy credentials can require a browser restart; see connection limits.
Build from source with Node.js 24 and npm. A normal build uses the bundled assets and location catalog; no private datasets or infrastructure repositories are needed.
git clone https://github.com/shifter-io/proxy-extension.git
cd proxy-extension
npm ci
npm run build- Open the browser's extensions page:
chrome://extensions,brave://extensions, oredge://extensions. - Enable Developer mode.
- Select Load unpacked and choose
build/chrome-mv3. - Pin Shifter — Proxy & VPN to the toolbar, then open it.
The Chromium build uses Manifest V3. Chrome is covered by the automated browser suite; Edge and Brave use the same extension APIs but are not independently covered by that suite.
npm run build:firefoxOpen about:debugging#/runtime/this-firefox, select Load Temporary Add-on, and choose build/firefox-mv2/manifest.json. Temporary installations are removed when Firefox restarts. Standard persistent Firefox installations require a signed package. The manifest requires Firefox 140 or later on desktop.
Build and packaging instructions cover production archives and reviewer sources. Store publication and signing are separate from these local builds.
- Sign in to your Shifter account and copy your API key from Profile → API Key.
- Paste the key into the extension. It verifies the key and loads your supported plans.
- Choose a Residential or ISP proxy plan. A single usable plan opens directly.
- For Residential, select a supported location and session mode. For ISP, choose an assigned proxy.
- Select Connect and check the exit IP shown in the popup.
Use Disconnect to clear the extension's proxy configuration. To remove the stored API key, sign out from Settings. Do not share your key, account screenshots, or proxy credentials in GitHub issues.
| Residential proxies | ISP proxies | |
|---|---|---|
| Selection | Country, state, city, and ASN where supported by the plan. | A proxy assigned to your plan, selected from the location and network list. |
| Sessions | Sticky sessions with a configurable duration, or rotating mode. | Uses the selected proxy's assigned credentials. |
| Switching | Change targeting or select New IP to request a new session. | Select another available ISP proxy. |
| Useful for | Regional browsing checks, localization reviews, and comparing website behavior across markets. | Browsing workflows that need a selected ISP proxy and location. |
Residential plans expose different targeting scopes: Full Geo supports country, state, city, and ASN; Country Geo supports country selection; Non-Geo does not expose location targeting. The extension follows those plan capabilities. Legacy Static Residential plans and other product lines without supported gateway credentials are not listed.
A sticky session requests continuity for its configured duration; it does not guarantee that an exit IP will remain available indefinitely. ISP proxy switching is subject to the browser's credential cache, described below.
- Regional SEO checks. Inspect localized search pages and landing pages from a selected market. Results may still depend on language, account state, cookies, and search-engine personalization.
- Website localization QA. Compare language, currency, redirects, and regional content on your own website.
- Storefront and price checks. Review how your public product pages and offers appear through different residential locations.
- Ad verification. Inspect your own campaigns and landing pages from an available country or network.
- Connection troubleshooting. Compare direct browsing with a proxy connection and verify the observed exit IP.
This extension is intended for interactive browser use. For automated rank tracking, structured search data, or programmatic web scraping, see Shifter's APIs below.
The extension uses IP Info to display the IP and country observed through your proxy connection. You can also open IP Info in a proxied browser tab to inspect the reported ASN and network details.
An exit-IP lookup describes the connection observed by that request. IP geolocation is approximate, and a lookup alone does not prove anonymity or whether an address is residential. With rotating sessions, a later request can use a different exit.
| Browser | Build | Coverage |
|---|---|---|
| Chrome | build/chrome-mv3 |
Automated Chrome for Testing suite. |
| Brave and Microsoft Edge | build/chrome-mv3 |
Chromium-compatible build; not independently tested in these browsers. |
| Firefox 140+ | build/firefox-mv2 |
Automated Firefox suite. |
| Safari | Not provided | This project does not include a Safari build. |
Browsers cache proxy credentials and keep existing connections alive. The extension uses available gateway hostname and port combinations to apply changed credentials. When those combinations are exhausted, Chrome requests a browser restart. Firefox can retain a previous proxy login until restart. Pinning an entry point reduces the available combinations; ISP plans with one gateway address are especially affected when switching usernames.
The extension does not clear website cookies when connecting, switching, or disconnecting. It also does not provide a device-wide kill switch. A failed initial exit-IP check clears the proxy configuration; a failed periodic check retains the last displayed IP.
Your API key is stored in the extension's local browser storage and sent to Shifter to authenticate account requests. Proxy credentials are used to authenticate the selected gateway. Local browser storage is not an encrypted credential vault. The extension contains no analytics SDK or bundled customer credentials.
| Permission | Why it is requested |
|---|---|
proxy |
Apply or clear the browser proxy configuration. |
storage |
Keep the API session, settings, selected locations, and connection state locally. |
webRequest and proxy-auth permission |
Answer proxy authentication challenges. Chrome uses webRequestAuthProvider; Firefox uses webRequestBlocking. |
privacy |
Apply WebRTC protection while connected. |
alarms |
Schedule gateway latency checks. |
Host access, including <all_urls> |
Authenticate proxy traffic to arbitrary websites and perform the IP check; access to Shifter supports account API calls. |
Local destinations and Shifter's account/API domains bypass the proxy by default. You can add bypass rules in Settings. WebRTC protection reduces one source of direct network exposure; it is not an anonymity guarantee. Signed-in websites can still recognize your account and information you provide.
Shifter builds proxy infrastructure and web data APIs for developers, data teams, and businesses. Its products support web scraping, SEO monitoring, ad verification, price intelligence, and AI data workflows.
| Product | What it offers | Useful for |
|---|---|---|
| Residential Proxies | Residential proxy access with geo targeting, rotation, and sticky sessions. | Localized browsing, scraping, and distributed data collection. |
| ISP Proxies | ISP proxy plans with assigned locations and networks. | Workflows that need a selected proxy endpoint. |
| Web Scraping API | Managed web content retrieval with proxy handling and rendering options. | Programmatic page collection. |
| SERP API | Structured search engine results through an API. | Rank tracking, keyword research, and search data pipelines. |
Explore Shifter · View pricing · Read the documentation
For a quick check without installing an extension, try the Free Web Proxy. Its companion repository is shifter-io/web-proxy. The shifter-io/ip-info project provides the IP lookup service used by this extension.
Built with WXT, React, TypeScript, and Tailwind CSS. The browser popup and background controller share typed account and proxy state.
npm ci
npm run dev # Chromium extension with live reload
npm run dev:firefox # Firefox development
npm run compile # TypeScript check
npm run build # Production Chromium build
npm run build:firefox # Production Firefox build
npm run zip # Chromium package
npm run zip:firefox # Firefox packagenpm run preview:uiOpen http://localhost:4178/popup.html. The preview uses synthetic account data and simulated proxy connections; it does not route your browser traffic. Add ?reset to clear preview state, or ?demo to open a signed-in mock plan. Do not enter a real API key into the mock preview.
Mock keys contain at least 32 letters or digits. Prefix a key with single, country, nongeo, isp, none, or invalid to exercise the corresponding plan or error scenario. All mock exit IPs use documentation-only address space.
cd e2e
npm ci
npm test -- --offlineThe test suite runs Chrome for Testing and Firefox against a synthetic Shifter API and local proxy gateway. The offline option skips the real-service invalid-key check. Test builds use separate output directories. See the test guide.
| Directory | Contents |
|---|---|
src/entrypoints/ |
Popup entry point and background worker. |
src/lib/api/ |
Live Shifter API client and synthetic mock backend. |
src/lib/proxy/ |
Gateway selection, proxy authentication, bypass rules, and session usernames. |
src/lib/geo/ |
Bundled country, region, city, and ASN catalog. |
src/ui/ |
Screens, shared components, and application state. |
e2e/ |
Browser drivers, synthetic API, local gateway, and integration checks. |
scripts/ |
Build helpers, local preview, and documentation generators. |
docs/ |
Standalone HTML guides and the README banner. |
The checked-in catalog contains location and ASN labels, not customer IPs or raw inventory exports. Regenerating it is a maintainer task requiring authorized input data; it is not part of the normal build. The API integration reference uses synthetic account examples.
Run python3 scripts/render-readme.py after editing the README or reference documents to refresh the offline documentation. The banner generator uses the bundled Geist font; optional fonttools and brotli packages are needed only when regenerating the banner.
Every pull request that is ready for review, every merge-queue test, and every push to main runs .github/workflows/ci.yml on the project's self-hosted runners. Every 6 hours a scheduled run tests the head of main with every check.
| Check | What it runs |
|---|---|
check |
npm run compile; production builds for Chrome, Firefox, and Edge; the mock build; a check that the HTML guides in docs/ match their Markdown sources; and a lint of the workflow. |
e2e (chrome) |
The offline end-to-end suite and the toolbar, usage, workspace, and cookie regressions in Chrome for Testing. |
e2e (firefox) |
The offline end-to-end suite and the toolbar, usage, and workspace regressions in Firefox. |
gate |
Runs after the others, even when one of them failed or was skipped, and succeeds only when changes, check, and both e2e jobs succeeded. It is the one check a merge requires. |
Three more workflows come from Maestro, the project's task tooling:
| Check | What it runs |
|---|---|
maestro-policy |
On every pull request: its size, that it holds no private data, and that it carries no AI attribution. |
maestro-queue |
On every merge-queue test: confirms the pull request passed maestro/review, maestro/qa, and maestro-policy on its own head. |
maestro-nightly |
Daily: npm audit --audit-level=high in every folder with a tracked package-lock.json. A failed audit opens the issue "Nightly dependency audit failed". It never blocks a pull request. |
When a scheduled run fails, its report job opens one issue titled "Full CI run failed on main" with a link to the run, its event, ref, and commit. While that issue is open, later failed runs add neither a second issue nor a comment; close it when the next scheduled run is green. A manual run of ci.yml with report_failure set reports the same way. report never runs for a pull request or a merge-queue test, and gate stays the only required check. GitHub stops the schedules of a public repository after 60 days without activity; a maintainer then turns each workflow back on in the Actions tab.
Draft pull requests run nothing until they are marked ready, except gate, which fails because nothing was checked. A change that touches only documentation runs only the docs check. Pull requests from forks do not run CI; a maintainer runs the checks on a branch of this repository before merging.
The extension's source code is free under MIT. Actual Residential and ISP proxy traffic requires an active Shifter plan. The mock preview works without an account but does not provide a working proxy connection.
Yes. Install the matching build, sign in with your Shifter API key, choose a supported Residential plan, and select the available targeting and session options.
Yes. Supported ISP plans expose a list of assigned proxies. Select an entry to use its gateway credentials. Some username changes require a browser restart because browsers cache proxy authentication.
No. It controls this browser's proxy settings. Other applications, other browser profiles, and bypassed destinations are outside that configuration.
Not currently. This extension integrates with Shifter accounts, plan capabilities, and gateway credentials. It is not a generic proxy-list importer.
It can help you inspect localized search pages and website content from a selected proxy location. Cookies, account state, language, and personalization still influence results. Use a SERP API when you need structured or repeatable rank-tracking data.
The extension does not delete cookies. A website may still require another sign-in or verification when it sees a different network or location.
Bug reports, documentation improvements, and pull requests are welcome at shifter-io/proxy-extension. Include reproduction steps, browser version, and expected behavior. Run the relevant checks before submitting a change.
Use Shifter's support resources for account and service questions. Remove API keys, proxy passwords, personal account details, IP addresses, and browsing history from public reports.
If this project helps your workflow, star the repository or share it with someone who needs a Residential or ISP proxy browser extension.
Project source is released under the MIT License. Third-party dependencies, fonts, and assets retain their own licenses. Shifter branding retains its respective rights. See third-party asset notices.