Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - aaronvb/request_hole: Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages. · GitHub
Skip to content

Repository files navigation

Request Hole CLI

go.dev ReferenceGo TestsJS TestsBuilds

rh is a CLI tool for creating an ephemeral endpoint for testing and inspecting HTTP requests, WebSocket connections, and WebSocket messages from your application or webhook.

Request Hole CLI web ui

Installation

Homebrew

brew install aaronvb/request_hole/rh

Clone repo and build

First make sure you have Go installed: https://golang.org/doc/install

git clone git@github.com:aaronvb/request_hole.git
cd request_hole
go build -o $GOBIN/rh

Release versions

Download the release version for your system: https://github.com/aaronvb/request_hole/releases

Usage

$ rh
rh: Request Hole
This CLI tool will let you create a temporary API endpoint for testing purposes.
Usage:
rh [command]
Available Commands:
help Help about any command
http Creates an http endpoint
version Print version number of Request Hole
ws Creates a websocket endpoint
Flags:
-a, --address string sets the address for the endpoint (default "localhost")
--details shows header details in the request
-h, --help help for rh
--log string writes incoming requests to the specified log file (example: --log rh.log)
-p, --port int sets the port for the endpoint (default 8080)
-r, --response_code int sets the response code (default 200)
--web runs the web UI to show incoming requests
--web_address string sets the address for the web UI (default "localhost")
--web_port int sets the port for the web UI (default 8081)
Use "rh [command] --help" for more information about a command.

Using the Web UI

Create an HTTP endpoint

$ rh http --web

This option will open a web UI that will display the incoming requests. Incoming requests will render live in the browser when they are received.

Request Hole CLI web ui

Create a WebSocket endpoint

$ rh ws --web

This option will open a web UI that will display the WebSocket connections and incoming messages. Connections and incoming messages will render live in the browser when they are received.

Screen Shot 2021-11-05 at 15 03 31

Using the CLI

Creating an HTTP endpoint

To create an http endpoint with default settings (port 8080, return status code 200):

$ rh http

Request Hole CLI http

Creating a WebSocket endpoint

To create a WebSocket endpoint with default settings (port 8080):

$ rh ws

Request Hole CLI WebSocket

Show header details

This option shows all the header details in the incoming request.

$ rh http --details

Request Hole CLI details

Log to file

This option will write the CLI output to the specified log file. Works with other options such as --details.

$ rh http --log rh.log

Request Hole CLI log

Exposing Request Hole to the internet

Sometimes we need to expose rh to the internet to test applications or webhooks from outside of our local dev env. The best way to do this is to use a tunneling service such as ngrok.

$ ngrok http 3001
$ rh http -p 3001

Running Tests and Building

It is recommended to run the JS build first so that the Go build can embed the latest web UI build.

CLI

$ go test -v ./...
$ go build

Web UI

$ cd web; yarn test
$ cd web; yarn build

For Development

$ cd web; yarn start

Visit localhost:3000

Built With

About

Request Hole is a CLI tool and web UI that creates an endpoint to inspect HTTP requests or WebSocket connections and messages.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages