Documentation

Guides for protecting production JavaScript

Reference guides for release workflows, command-line usage, cross-file protections, and the desktop app.

Inside The Docs

Practical guides, not placeholder pages.

How-to guides Start with release sequencing and command-line usage, then move into feature-specific references.
Advanced protection Browse cross-file controls like Replace Globals and Protect Members when a build spans multiple scripts.

JSO AI vs competitor AI claims

Every commercial JavaScript obfuscator in 2026 markets some flavour of “AI-resistant” or “anti-LLM.” The category claim is mostly accurate when the AI is a 2019 ML paper; mostly false when the AI is CASCADE-class hybrid LLM + compiler IR. This page compares JSO AI to the two most-cited competitor claims, naming what they ship, what they don’t ship, and where the comparison genuinely favours one side or the other. No tagline wars — if a competitor is doing something we don’t, it’s named.

Compared to: obfuscator.io “anti-LLM defenses”

The OSS obfuscator.io npm package added marketing around “anti-LLM defenses” in 2025. Concretely, the package ships polymorphic string-array decoders, randomised identifier-name generators with bias against LLM-friendly patterns, and a stateful VM dispatcher with macro-op packing.

Capabilityobfuscator.ioJSO AI
Polymorphic decoder per build Yes (default since 2022) Yes (default, every JSO tier). Verifiable via Report.PolymorphismFingerprint in every API response.
Per-build randomized identifier prefixes Yes (identifierNamesGenerator option) Yes (default; the per-build randomization shape is part of Deep Obfuscation).
“Anti-LLM” framing in marketing Yes — explicit category claim Yes, with the explicit caveat (per the CASCADE post) that polymorphism alone no longer holds the line against a CASCADE-class attacker.
Numeric resistance score No Yes (Phase 2, 2026-Q4) — CASCADE-equivalent adversarial probe runs against every protected build, reports recovery percentage per category. Attacker-fingerprinted. Methodology.
VM bytecode protection Stateful dispatcher + macro-op packing (closer to advanced control-flow flattening than a true VM) Per-function VM virtualization via // @virtualize — functions compile to a per-build instruction set with a per-build interpreter. Docs. Corporate+ tier.
Runtime defense (active controls) Some — selfDefending, debugProtection Same shape plus session-token lock, fingerprint lock, challenge lock, headless-browser detection, devtools-key blocking, RSA-signed release envelopes, beacon callback. Docs.
AI-augmented developer UX (preset assistant, compatibility checker, error diagnosis) No Yes (JSO AI Phase 1, 2026-Q3) — overview. Three preview-mode endpoints live today.
Honest threat-model framing in marketing The “anti-LLM defenses” claim is unqualified. The CASCADE post publicly walks where per-build polymorphism alone falls short and what high-value code paths actually need to resist a CASCADE-class attacker.

Where obfuscator.io is the right choice: when local-only transforms suffice, no hosted API is allowed by policy, and the OSS-license terms match the project. The polymorphism / randomization shape is genuinely good and free.

Where JSO is the right choice: when the protection has to hold up against the published 2026 attacker class (Resistance Score), when high-value code paths need VM bytecode protection rather than advanced control-flow flattening, and when the developer-UX side of AI matters (preset assistant, compatibility checker, error diagnosis). The JSO AI add-on subscription is what the OSS package fundamentally cannot offer as a single-binary library.

Compared to: Jscrambler “AI-resistant code integrity”

Jscrambler Code Integrity has marketed similar AI-resistance language. Their pitch is enterprise-tier (quote-based pricing in the $5K–$50K+ annual range), with strong PCI DSS v4 third-party-tag attestation and a hosted threat-monitoring dashboard.

CapabilityJscramblerJSO AI
Polymorphic obfuscation per build Yes Yes (with Report.PolymorphismFingerprint verifiability).
Code Locks (calendar / domain / counter) Yes Yes — LockDate, LockDomain; counter via the self-defending heartbeat. Migration mapping.
Self-defending integrity heartbeat Yes Yes (SelfDefending + SelfDefendingIntervalSeconds).
Hosted threat-monitoring dashboard Yes — aggregated tamper telemetry, alert routing, incident response UI Beacon emission today — route into your own SIEM via Runtime Defense or the jso-beacon-slack forwarder. The hosted dashboard is on the roadmap; ETA when customer demand sizes it.
PCI DSS v4 third-party-tag attestation Yes — certified for the third-party-tag governance use case Not in scope for JSO. We protect first-party JavaScript; pair with CSP + SRI for third-party tags.
Posted pricing Quote-based (most plans >= $5K/year) Posted on premium-membership.aspx; Maximum mode from $49/mo, JSO AI from $19/mo as a separate add-on.
Numeric resistance score against named attacker Internal — not surfaced to customers as a per-build number Phase 2 (2026-Q4) ships the per-build Resistance Score with attacker fingerprint. Methodology.
AI Deobfuscation Benchmark on customer code No Phase 3 (2027-Q1) ships per-build CASCADE / JSIMPLIFIER / GPT-class recovery numbers. JSO AI overview.
VM bytecode protection “Code transformations” family — closer to advanced static transforms than per-function VM Per-function VM virtualization via // @virtualize. Docs.
Honest threat-model framing in marketing Enterprise sales-led; threat model surfaces in scoping conversations rather than published material Published CASCADE post · published Resistance Score methodology. Customers can read both before talking to sales.

Where Jscrambler is the right choice: when PCI DSS v4 third-party-tag attestation is a hard requirement, when the hosted threat-monitoring dashboard is needed today (not on a roadmap), when enterprise procurement specifically wants the sales-led scoping process. Jscrambler is mature in the enterprise compliance lane.

Where JSO is the right choice: when posted self-serve pricing matters, when threat-model honesty in marketing is part of the evaluation, when the Resistance Score (Phase 2) and Deobfuscation Benchmark (Phase 3) are the artifacts your security team will cite, when the AI-augmented developer UX side matters. JSO is opinionated toward verifiability and self-service; Jscrambler is opinionated toward enterprise-managed delivery. Different shapes; both valid.

What we’re not going to claim

Three claims sit on JSO’s permanent “will not say” list because they don’t survive scrutiny:

  • “AI-proof obfuscation.” No obfuscator is AI-proof in 2026. The right framing is “AI-resistant, AI-aware, threat-model-honest,” with the Resistance Score as the customer-verifiable artifact.
  • “Reverses CASCADE.” JSO doesn’t advertise reversing a published attacker. CASCADE works against the obfuscator category. Phase 2 measures how much it recovers from your protected build and recommends targeted defenses.
  • “Tested against three LLMs.” The Resistance Score names which LLM and which version produced the number. Anonymized “tested against major LLMs” sounds thorough but isn’t reproducible. We’ll trade marketing polish for reproducibility every time.

How to evaluate any obfuscator’s AI-resistance claim

Three questions a customer can ask any vendor — including us — to separate marketing from substance:

  1. What deobfuscator did you test against, by name and version? If the answer is “various AI tools” or “leading deobfuscators,” the claim isn’t reproducible.
  2. Can I run the same probe against my own protected build and see the number? If the answer is “trust our internal testing,” the claim is unverifiable.
  3. What does the score look like for a known-weak protection profile (no Maximum mode, no VM)? If the vendor only shows scores on their strongest profile, the score isn’t a meaningful test — it’s a marketing screenshot. A useful resistance metric drops for weak profiles and rises for strong ones.

JSO’s answer to all three is the Resistance Score methodology post. Ask competitors the same questions.