Documentation
JSGuardian Docs
Everything you need to know about protecting your JavaScript.
π
Quick Start
Upload your .js file at /protect, select a preset, click Protect. Your protected file is ready in seconds. CLI (coming soon): npx jsguardian protect app.js # maximum protection by default Node.js API / MCP: see the API & MCP page β
π²
Why Every Build Is Different
Every time you protect a file β even the same file twice β JSGuardian generates a completely unique output. This is not an accident. Itβs a core security property. Hereβs what changes on every run: β’ A cryptographic random seed drives the entire transformation β’ The runtime internals are unique per build β no two outputs are the same β’ The runtime engine is proprietary β its internals are intentionally undisclosed β’ Rolling encryption keys are unique per build β’ String cipher keys are re-derived each time β’ All obfuscation constants are re-generated What this means in practice: β’ An attacker cannot compare two builds of your software to reverse-engineer patterns β’ Analysis tools trained on one build are useless against the next β’ Even if one build is partially understood, every other version is a fresh problem β’ No two customers who buy the same product share the same protection fingerprint If you protect 10 identical files at once, you get 10 completely different outputs. Each one runs identically to the original β but they look like different programs.
βοΈ
Presets
Obscure β Core obfuscation. Constants unfoldable, strings encrypted, runtime keys. Deceive β Full misdirection stack. Sealed runtime, deception output, daily-rotating protection. Maximum β Every technique active. Ghost trail injection, context window flooding, all 13 layers. Stealth β Same as Maximum. No copyright markers. Indistinguishable from unlicensed JS.
π‘οΈ
Protection Groups
Core Protection (6 techniques) β Available on all plans Makes your code unreadable. Constants become complex expressions. Strings are encrypted. Decryption keys exist only at runtime. Any file modification breaks the integrity chain silently. Active Misdirection (7 techniques) β KB Pack & above Your code actively lies. Analysts extract a convincing wrong answer. Protection changes daily without redeploying. Sandbox environments silently receive wrong results. AI-Specific Resistance (7 techniques) β Deceive & above Engineered specifically to defeat AI-assisted reverse engineering. Exhausts AI context windows. Triggers security-tool refusal. Keys derived from conditions AI sandboxes cannot replicate.
π
File Format & Compatibility
Input: .js files (Node.js CommonJS) or .zip archives Output: .protected.js files β individually or as .zip Runtime: Node.js CJS β fully require()-able TTL: Files stored per your plan (Free: 1d, Pack: 3d, Pro: 90d, Fortress: 180d) Protected code: β’ Runs identically to the original for all inputs β’ No external dependencies added β’ No performance overhead at runtime (protection is static) β’ require() it exactly as you would the original
π
API & MCP Access
REST API: POST /api/v1/protect (Fortress plan)
Authorization: Bearer jsg_live_...
Body: { code, preset, filename }
Response: { code, protectedSize, originalSize, downloadUrl }
MCP Server: @jsguardian/mcp (Fortress plan)
Works in Claude Code, Cursor, Continue.dev
Generates API keys from your account dashboard
See the MCP page for setup instructions βπ§ͺ
Tests & Benchmarks
JSGuardian is evaluated with a 12-axis matrix on every major change: β’ Correctness, long-running stability & cross-build usability β’ Cold-start, warm execution & memory characteristics β’ Environmental sensitivity (D-oracles) + receipt / PCET chain integrity β’ Surface quality, branding removal, and per-build polymorphism β’ Adversarial resistance under isolated blind reconstruction (LLM+IR) Current results on maximum + full AβH: overall ~6, nameRecovery 0.00, crossRefScore 0.00. Full analysis, charts, size/performance tables and category breakdowns β /tests