Create http agent for HTTP(S)_PROXY proxies and/or keepAlive

Usage no npm install needed!

<script type="module">
  import autoHttpAgent from '';



Create an http agent for proxies and/or keepAlive. Returns a proxy if a given URL should be proxied according to the HTTP_PROXY, HTTPS_PROXY and NO_PROXY environment variables. Uses a global pool of agents for up to 8 combinations of options (for example, proxied https URLs will share an agent).

npm status node Test JavaScript Style Guide


const autoAgent = require('auto-http-agent')

const url = ''
const agent = autoAgent(url)

// Pass to your module of choice
request(url, { agent })


autoAgent(url[, options])

The url argument is required and must either be a string or a WHATWG URL instance, with an HTTP or HTTPS protocol.


  • keepAlive (boolean): reuse connections between requests, default false.

Returns an agent or null if the default agent can be used (i.e. http.globalAgent or https.globalAgent). Has a fast path for the common case of not having any configured proxy. The autoAgent module should behave the same as good old request and other software. It respects the following environment variables.


A proxy URL to use for HTTP requests, e.g. http://localhost:3000. The proxy itself can be either HTTP or HTTPS.


A proxy URL to use for HTTPS requests. The proxy itself can be either HTTP or HTTPS.


A comma-separated list of hosts (including subdomains) that should not be proxied. Supported forms:

  • hostname:port
  • hostname or .hostname or *.hostname
  • * to disable proxying for all URLs


With npm do:

npm install auto-http-agent


MIT © Vincent Weevers