Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

BrowserStack Local (called Local Testing in BrowserStack documentation) is a secure software tunnel between BrowserStack’s cloud browsers or mobile devices and a computer or network that can reach your app. It lets you test localhost, staging, internal, VPN-only, and firewall-protected sites without making those sites publicly accessible.

You run a Local agent on a machine that can access the target. The agent makes an outbound encrypted connection to BrowserStack; a remote test session then sends selected web requests through that tunnel to your local or private server.

What BrowserStack Local solves

A BrowserStack browser runs outside your network. Without a tunnel, it cannot resolve localhost, a private hostname, or an internal IP address on your laptop, office network, VPN, or staging environment. Local Testing supplies that missing route.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Local development: test a web server running on your workstation.
  • Staging and QA: exercise a pre-production deployment before DNS or firewall changes expose it.
  • Private applications: reach intranet sites and services available only through a corporate proxy or VPN.
  • Cross-platform checks: use BrowserStack Live, App Live, Automate, and supported low-code or framework integrations against the same private target.

For a public website that BrowserStack can already reach directly, Local is usually unnecessary. A hostname that resolves differently inside your network is an exception; integrations can use force-local to route requests through the tunnel where supported.

How the Local tunnel works

  1. Install and start the BrowserStack Local desktop app or command-line binary on a machine that can reach your application.
  2. Authenticate the agent with your BrowserStack access key.
  3. The agent receives a repeater assignment and opens an outbound connection to BrowserStack over port 443.
  4. A remote browser or device sends requests through BrowserStack’s repeater and the established tunnel.
  5. The agent resolves the hostname and forwards only permitted requests to servers it can access.

BrowserStack describes this as a persistent Secure WebSocket connection. Its architecture documentation says the repeater cannot initiate a connection to the Local agent; the local side initiates the connection outward. This means your internal server does not need an inbound public port for the tunnel. These are BrowserStack’s descriptions of its design, not an independent security audit.

Ending a Live or automated browser session does not necessarily stop Local Testing. The tunnel can remain available for another session until you disconnect the binary or app. BrowserStack says information associated with the repeater session is deleted after disconnection and separately documents cleanup of remote session data.

Network requirements

Ask your network team to allow the Local machine to make outbound connections to local.browserstack.com over HTTP(S) ports 80 and 443 and to a BrowserStack repeater over WSS on port 443. A proxy must support WebSockets. For TLS connections through a proxy, BrowserStack’s guide requires the HTTP CONNECT method.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

BrowserStack documents an older SSL-encrypted fallback when WebSockets are blocked, but warns that it is much slower. Prefer allowing WSS rather than relying on that fallback. SSL inspection, VPN split tunneling, DNS restrictions, and endpoint allowlists can all change what the agent can reach; validate those policies on the machine running Local.

Choose the right setup route

Live or App Live on Windows and macOS

BrowserStack’s support guidance identifies the desktop app as the easier route for interactive Live and App Live sessions. Install the app, sign in, enable Local Testing, and start the Live session. Use the exact host and port served by your local application.

Automate, App Automate, or Linux

Use the command-line binary for automated workflows and Linux Live/App Live. Download the current binary from BrowserStack, keep the access key out of source control and build logs, and start it before the test job:

./BrowserStackLocal --key YOUR_ACCESS_KEY

Runner-specific integrations can start or configure Local automatically. Follow the guide for Selenium, Cypress, Playwright, Appium, Espresso, XCUITest, Maestro, Detox, Flutter, or your low-code tool; option names and lifecycle handling differ by integration.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Parallel builds and multiple tunnels

If several builds run at once, give each tunnel a distinct Local identifier and configure the matching identifier in the test capability. Where an integration supports it, force-local is useful when every request must use the local route, including hostnames whose internal and public DNS answers differ. Check the selected product’s current integration guide for identifier and capability syntax.

Testing localhost in BrowserStack Live

  1. Start your local server and note its listening port, such as http://localhost:3000.
  2. Open the BrowserStack desktop app (or start the binary) and enable Local Testing.
  3. Launch a Live browser or device.
  4. Enter the local URL and verify that the page, API calls, images, and fonts load.
  5. Keep the Local app or process running while you test; disconnect it when finished.

BrowserStack documents a specific iOS Live caveat: localhost may need to be replaced with http://bs-local.com. If that hostname is not substituted automatically, use bs-local.com with the same port and configure your local server to serve that host. Confirm the behavior for your exact iOS device and Live workflow because BrowserStack’s implementation can change.

Using Local with automated tests

Start Local before the test process, or let the supported integration manage its lifecycle. Set the Local capability required by your runner, then point the test at the private hostname and port. A reliable pipeline should:

Rank #3
Inductance Tester XA5 | Motherboard Coil Tester Electronic Circuit Board Inductor Detector for PC Phone Motherboard Repair Electromagnetic Induction Quick Fault Check Tool
  • 【Quickly Lock The Fault Point】Simply plug it in, press and hold the test button, and then touch the inductor with the test probe. If the inductor is working properly, the green LED indicator will light up, making it easy for even beginners to use.
  • 【High Accuracy and Stability】Utilizing reliable electromagnetic induction technology ensures precise readings every time, giving you confidence in your diagnostics.
  • 【Compact and Portable 】The compact design makes this tool highly portable, allowing you to carry it easily in your toolkit. It’s perfect for on-the-go maintenance and repair tasks.The Coil tester is only 2.7 cm x 7.6cm.
  • 【Inductance Tester】Built with quality components for consistent performance and long-lasting service life. Designed for phone repair technicians, electronics engineers, and maintenance professionals.
  • 【Wide Range of Applications】 Suitable for various application scenarios including home appliance, computer and mobile phone repair. This multi-functional tool can be used to detect short circuits in printed circuit boards and other electronic components, ensuring reliable and efficient maintenance.
  • store the access key in a secret manager;
  • wait until the Local process reports a connected state before creating sessions;
  • use a unique identifier for parallel jobs;
  • collect Local and test-run logs as build artifacts;
  • shut down the agent in an always-run cleanup step.

Do not assume that a successful tunnel connection proves your application is healthy. The local machine still needs DNS resolution, VPN access, valid certificates, open server ports, and any required authentication. Test those locally from the same machine that runs the agent.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Security and data-handling considerations

Local Testing avoids exposing an internal service directly to the internet, but it does not remove the need for access control. Limit which hosts and ports the agent may reach according to BrowserStack’s configuration options and your organization’s policy. Use a dedicated test account where possible, avoid production credentials, and review proxy and SSL-inspection behavior with security staff.

BrowserStack states that only servers allowed for the connection are reachable and that the repeater cannot open a new connection toward the agent. Treat those statements as vendor claims. Your threat model should also cover the BrowserStack account, test data sent to remote browsers, screenshots, video, logs, and any third-party resources loaded by the page.

Troubleshooting Local Testing

The browser shows a connection or DNS error

  • Confirm the local server is running and reachable from the agent machine with curl or a browser.
  • Use the correct port and hostname; do not assume the remote browser’s localhost means your laptop.
  • For iOS Live, try bs-local.com as documented.
  • Check that the tunnel is connected and that the test uses the correct Local identifier.

The Local agent cannot connect

  • Allow outbound access to local.browserstack.com on ports 80 and 443 and WSS on port 443.
  • Verify that the proxy supports WebSockets and CONNECT.
  • Check VPN routing, DNS, firewall rules, and SSL inspection.
  • Use the documented fallback only as a last resort because BrowserStack says it is slower.

Only some page assets fail

Inspect the failed request’s hostname. A page may load from the local origin while APIs, fonts, images, or WebSockets use separate private domains. Ensure each required domain is reachable through the tunnel and that your application allows the BrowserStack session’s origin. Mixed-content and certificate errors must be fixed on the app or test environment.

Automation starts before Local is ready

Add an explicit readiness check or use the runner’s Local lifecycle integration. Starting the process and immediately creating a session can produce intermittent failures even when the configuration is correct.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Parallel jobs reach the wrong environment

Assign unique Local identifiers and match them in capabilities. Avoid a global shared tunnel unless every job intentionally targets the same network and hostname.

Performance, reliability, and operational trade-offs

Traffic takes an additional route: remote browser to BrowserStack repeater, then through the agent to your network. Latency depends on geography, VPN distance, proxy inspection, page size, and your local server. Keep the agent near the systems it tests, avoid overloaded developer laptops for CI, and measure page and test timings in the same topology used in production-like runs.

Persistent tunnels are convenient for repeated sessions but increase the time a credentialed route remains active. Disconnect idle agents, rotate access keys according to your security policy, and monitor long-running CI workers. A tunnel cannot repair an application timeout, an unavailable VPN, or a server that binds only to an inaccessible interface.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

BrowserStack Local compared with exposing a staging site

Approach Reachability Operational consequence
Local Testing Private target remains behind your network while selected BrowserStack sessions use the tunnel. Requires an agent, outbound network rules, and lifecycle management.
Public staging endpoint BrowserStack reaches the site directly over the internet. Needs internet exposure, authentication, TLS, access controls, and possibly IP allowlisting.
VPN or private connectivity integration Remote test infrastructure joins a private network through a separately managed connection. Can fit enterprise networking but adds infrastructure and policy work.

Choose Local when you need a fast path to a developer or private environment without publishing it. Choose a publicly reachable staging endpoint when its security controls and deployment process already meet your organization’s requirements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Or skip the browser setup: ScreenshotNeo

If your goal is simply to generate a clean screenshot or PDF of a reachable URL rather than interactively test a private app across browsers and devices, ScreenshotNeo is an alternative to try first. It is a website screenshot API and MCP server: one request returns PNG, JPEG, WebP, or PDF. Before capture it accepts cookie banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status.

Use the browser-setup method above when you need Live interaction or automated cross-browser/device behavior. Use ScreenshotNeo when a repeatable capture is the deliverable. It supports full-page and element captures, lazy-image loading, device and viewport settings, dark mode, retina scale, custom CSS and JavaScript, clicks, waits, blocking rules, headers, cookies, user agents, authorization, geolocation, timezone, transparent backgrounds, resizing, TTL caching, signed links, asynchronous webhooks, bulk capture of up to 100 URLs per call, and an MCP server with take_screenshot, get_page_info, and capture_pdf.

cURL (see the ScreenshotNeo documentation):

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

The free plan includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is on every plan. Create a free ScreenshotNeo account.

Frequently asked questions

Does BrowserStack Local make localhost public?

No. The Local agent opens an outbound connection; the local server does not need an inbound internet endpoint.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I leave Local running after a test?

Yes, the tunnel can persist for another session, but disconnect idle agents to reduce exposure and resource use.

Which BrowserStack products support Local?

BrowserStack documents Local use with Live, App Live, Automate, App Automate, and integrations including Selenium, Cypress, Playwright, Appium, Espresso, XCUITest, Maestro, Detox, Flutter, and low-code tools. Confirm current entitlement and setup syntax for your account.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.