Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including inbetween with all npm packages installed. Try it out:

var inbetween = require("inbetween")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

inbetween v0.1.0

Minimal HTTP MITM-proxy for Node.js


A fast and simple MITM-proxy for Node.js. No https support for now.


Install inbetween via NPM:

npm install inbetween

Create main.js like so:

var Proxy = require('inbetween');
var proxy = new Proxy(8080);

Run your main.js:

node main.js

That's it, now tell you apps to use localhost:8080 as an HTTP proxy.



Type: String Full URL, for example

Simple example:

// Route any request to google
proxy.rewriteUrl = function(url) {
    url = '';
    return url;

Advanced example:

// Make to be
var qs = require('querystring');
proxy.rewriteUrl = function(url) {
    var parts = url.split('?');
    if (parts.length === 2) {
        var obj = qs.parse(parts[1]);
        obj['hello'] = 'wild';
        parts[1] = qs.stringify(obj);
    return parts.join('?');

Remember to always return your url.


Type: Object Request headers. More info in Node.js docs: http.IncomingMessage.headers

// Spoof user-agent
proxy.rewriteHeaders = function(headers) {
    headers['user-agent'] = 'NSA-agent v3.5.7';
    return headers;

Remember to always return your headers object.


Type: String POST data. Usually looks like 'user=MegaDestroyer98&password=123321' Rewrite it the same way as you rewrite url. Remember to always return your data.


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free