A language that mutates its own bytecode

Built for practical security work

Mutant is a programming language built for practical security work, forensic automation, and cross-platform analysis tooling.

from docs/WHAT_IS_MUTANT.md ↗

What is Mutant

It is not just a scripting language with a few security helpers bolted on. The language, compiler, virtual machine, runtime security layer, and example corpus are designed together so you can write small programs that do real investigations, produce reusable artifacts, and run under a security model that includes encryption, signing, anti-tamper checks, anti-debugging, anti-sandbox checks, and bytecode polymorphism.

  • It automates security and forensic workflows.
  • It can compile .mut source into encrypted bytecode and standalone binaries.
  • It has a large standard library (409 builtins across 33 categories): strings, math, hashing,…
from docs/WHAT_IS_MUTANT.md ↗

Pipeline

The parser builds an AST and the compiler walks it, emitting a flat byte stream directly — nothing sits in between. The VM then runs those bytes on an expression stack, with the polymorphic engine free to mutate them on the way through.

Bytecode IR reference ↗

Why Mutant · four value props

Tool carousel · drag to scroll

All docs ↗

VSCode extension

Mutant for VSCode

Diagnostics, hover, completion, rename, formatting and semantic tokens for .mut files, served over LSP by the mlsp process.

from docs/LSP_EXTENSION_LLD.md

Repo

aoiflux/mutant