Environment Variables

1. Shared State

This feature is only available on macOS 10.15+. Prior to macOS 10.15, it might be crashed.

It's possible to share states from the onRequest() and the onResponse() from different scripts when the script is executed with the global object: sharedState

  • The sharedState is a JS Object (Dictionary), so you can assign any keys and values from onRequest(), then receiving it on the onResponse() or from different script.

The following code demonstrates:

  • Get the global counter and increase it as soon as the script is executed

  • Share data between Request and Response

function onRequest(context, url, request) {
// Save some state to sharedState
sharedState.url = url;
sharedState.data = "custom";
sharedState.info = {"username": "Proxyman"};
// Increase the global counter
var count = sharedState.count ?? 0;
count += 1;
sharedState.count = count;
// Log
return request;
function onResponse(context, url, request, response) {
// Receive it
console.log("Custom data = " + sharedState.dataa);
console.log("sharedState.count = " + sharedState.count);
// Done
return response;

From Proxyman 2.25.0+, the sharedState is available across different scripts. It is only released when quitting Proxyman app or using `clearSharedState()` function.

Prior to Proxyman 2.24.0, the sharedState is only alive on the current flow that executes the script and it's released when the script is run over.

To clear all data, please consider using `clearSharedState` function.

// Clear all data from sharedState object

2. Environment Variables

Plan to support soon.