obfus.link

Var Name Mangler obfuscates variable, function, and class names in JavaScript, TypeScript, and Python source. It supports hex, phonetic, random, incremental, and themed Devcore strategies with cyberpunk, noir, vaporwave, and glitch vocabularies. Scope-aware AST mangling targets a specific function or class. Reverse mode restores names from a saved mapping.

Tier 2obfuscators✓ TDD Verified

Var Name Mangler

Obfuscate variable names in JS, TS, and Python with Devcore mode

How to use

  1. Paste source codeDrop in your JavaScript, TypeScript, or Python source.
  2. Choose languagejavascript, typescript, or python — controls AST parser dialect.
  3. Pick strategyhex, phonetic, random, incremental, or devcore (themed vocabulary).
  4. Configure optionsToggle preserveExports, set scopeTarget for partial mangling, choose Devcore theme.
  5. Run and copyClick Run. Copy mangled output and the mapping table for reverse-mode round trips.
Read technical article

MCP / API

Call var_name_mangler directly from any MCP-compatible agent:

// MCP TypeScript SDK
const result = await client.callTool({
  name: "var_name_mangler",
  arguments: {
    "code": "...",
    "language": "javascript"
  }
});

// curl
curl -X POST https://obfus.link/mcp \
  -H "Authorization: Bearer <SPT>" \
  -H "Content-Type: application/json" \
  -d '{"method":"tools/call","params":{"name":"var_name_mangler","arguments":{"code":"...","language":"javascript"}}}'

Related tools

JSON to Zod
Generate Zod schemas with JSDoc and branded types from any JSON
cURL to Fetch
Convert curl commands to fetch, axios, got, ky, or node-fetch
Tree-Shaking Analyzer
Find dead exports, estimate bundle savings, generate sideEffects field

FAQ

What is Devcore mode?

Strategy: "devcore" replaces identifiers with themed vocabulary (cyberpunk: _neon_, _chrome_, _void_; noir: _shadow_, _smoke_; vaporwave: _aesthetic_, _pastel_; glitch: _err_, _corrupt_). Produces obfuscated code that is still culturally legible to humans in the relevant subculture.

What does preserveExports do?

When true, exported identifiers (export const, export function, module.exports.x) are kept with their original names. The internal implementation is mangled but the public API stays intact — useful when consumers depend on specific export names.

Is the output deterministic?

For hex, incremental, and devcore strategies: yes. The same input produces the same mangled output. For phonetic and random: a new mapping is generated each call. Use the mapping output with reverse mode to restore original names.

Can I use this tool via the MCP API?

Yes. The tool is registered on the obfus.link MCP server at https://obfus.link/mcp. Call it from any MCP-compatible agent with a Shared Payment Token. The MCP tool name matches the snake_case slug shown in the integration snippet.