JScrambler API client.

npm install jscrambler
4 downloads in the last day
31 downloads in the last week
75 downloads in the last month

JSCrambler Client for Node.js


npm install -g jscrambler
Usage: jscrambler [source files] [options]


  -h, --help                    output usage information
  -V, --version                 output the version number
  -c, --config [config]         JScrambler configuration options
  -o, --output <output>         Output directory
  -a, --access-key <accessKey>  Access key
  -s, --secret-key <secretKey>  Secret key


npm install jscrambler

Upload/download example

var fs = require('fs-extra');
var jScrambler = require('jscrambler');

var client = new jScrambler.Client({
  accessKey: '',
  secretKey: ''

  .uploadCode(client, {
    files: ['index.js'],
    // Node.js obfuscation settings
    rename_local: '%DEFAULT%',
    whitespace: '%DEFAULT%',
    literal_hooking: '%DEFAULT%',
    dead_code: '%DEFAULT%',
    dot_notation_elimination: '%DEFAULT%',
    dead_code_elimination: '%DEFAULT%',
    constant_folding: '%DEFAULT%',
    literal_duplicates: '%DEFAULT%',
    function_outlining: '%DEFAULT%',
  .then(function (res) {
    return jScrambler.downloadCode(client, res.id);
  .then(function (res) {
    fs.outputFileSync('dist.zip', res);

JScrambler Options

The following options are passed to the JScrambler services through the CLI config file or some API methods. More information about them can be found here.


Type: String

name1;name2;... - assert function names

Remove function definitions and function calls with a given name.


Type: String

%DEFAULT% - enable constant folding

Simplifies constant expressions at compile-time to make your code faster at run-time.


Type: String

%DEFAULT% - enable dead code

Randomly injects dead code into the source code.


Type: String

%DEFAULT% - enable dead code elimination

Removes dead code and void code from your JavaScript.


Type: String

name1;name2;... - debugging code names

Removes statements and public variable declarations used to control the output of debugging messages that help you debug your code.


Type: String

%DEFAULT% - enable dictionary compression

Dictionary compression to shrink even more your source code.


Type: String

domain1;domain2;... - your domains

Locks your project to a list of domains you specify.


Type: String

%DEFAULT% - enable dot notation elimination

Transforms dot notation to subscript notation.


Type: String

name;name1;name2;... - list of exceptions that will never be replaced or used to create new declarations

There are some names that should never be replaced or reused to create new declarations e.g. document, toUpperCase. Public declarations existing in more than one source file should not be replaced if you submit only a part of the project where they appear. Therefore a list of irreplaceable names and the logic to make distinction between public and local names already exists on JScrambler to avoid touching those names. Use this parameter to add your own exceptions.


Type: String

date - date format YYYY/MM/DD

Sets your JavaScript to expire after a date of your choosing.


Type: String

%DEFAULT% - enable function outlining

Turns statements into new function declarations.


Type: String

%DEFAULT% - enable function reordering

Randomly reorders your source code's function declarations.


Type: String

filename;filename1 - List of files (relative paths) to be ignored

Define a list of files (relative paths) that JScrambler must ignore.


Type: String

min;max[;percentage] - min and max predicates in ternary operator and percentage chance of replacement

Replaces literals by a randomly sized chain of ternary operators. You may configure the minimum and maximum number of predicates per literal, as the occurrence probability of the transformation. This allows you to control how big the obfuscated JavaScript grows and the potency of the transformation.


Type: String

%DEFAULT% - enable literal duplicates

Replaces literal duplicates by a symbol.


Type: String

%DEFAULT% - enable member enumeration

Replaces Browser and HTML DOM objects by a member enumeration.


Type: String

starter - Standard protection and optimization behavior. Enough for most JavaScript applications mobile - Transformations are applied having into account the limitations and needs of mobile devices html5 - Protects your HTML5 and Web Gaming applications by targeting the new HTML5 features


Type: String

Set a prefix to be appended to the new names generated by JScrambler.


Type: String

%DEFAULT% - enable rename local

Renames local names only. The best way to replace names without worrying about name dependencies.


Type: String


occurrences - Percentage of occurrences. Accepted values between 0.01 and 1. concatenation - Percentage of concatenation occurrences. Accepted values between 0 and 1 (0 means chunks of a single character and 1 the whole string).


Type: String

%DEFAULT% - enable whitespace

Shrink the size of your JavaScript removing unnecessary whitespaces and newlines from the source code.

npm loves you