Proxy with response modding

Usage no npm install needed!

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



Travis branch AppVeyor branch

Proxy with response moddin'


First, install globally

$ npm install -g foxy

Then, if you wanted to proxy a local vhost such as run:

$ foxy

A random port will be used, but if you want to provide your own:

$ foxy --port 3000


var foxy = require("foxy");

var proxy = foxy("http://localhost:3000").listen(8000);

// Now access the site through http://localhost:8000

Built-in middleware will re-write html on the fly to update any urls & there'll also be the option for additional rules for the re-writing.

Additional re-write rules

Let's say you want to change the text Home Page to be Homepage Rocks, you can do that easily by providing additional rules

var foxy = require("foxy");

var config = {
    rules: [
            match: /Home Page/g,
            fn: function () {
                return "Homepage Rocks"

var proxy = foxy("http://localhost:3000", config).listen(8000);

white/black lists

You can force some paths to always be processed by the middlewares.

var proxy = foxy("", {
    whitelist: ["/wp-admin/admin-ajax.php"], // whitelist checked first
    blacklist: ["/wp-admin/**"],

proxyResponse middleware

You can add middleware-like functions which process the proxy response.

var foxy = require("foxy");

var config = {
    proxyRes: [
        function(proxyRes, req, config) {
            // do something with the proxyRes object which comes from node-http-proxy

var proxy = foxy("http://localhost:3000", config).listen(8000);


  • https