P4RS3LT0NGV3: 222 text transforms and steganography in a static site
universal text transformation, translation, mutation, encoding/decoding, and promptcrafting
At a glance
- What is it?
- P4RS3LT0NGV3 is a browser-based text transformation toolkit covering ciphers, encodings, Unicode styles, concealment and steganography, built as a static site that runs from a file with no server, with cloud features behind an OpenRouter key.
- Who is it for?
- P4RS3LT0NGV3 suits a security researcher, CTF solver or educator who wants a single offline page that covers the classic cipher and encoding catalogue, plus steganography helpers, without installing a toolchain.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 120 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A single page with a catalogue of 222 transforms
P4RS3LT0NGV3 is a web-based text transformation and steganography tool with 222 built-in text transforms, spanning encodings, classical and modern ciphers, Unicode styles, formatting and niche alphabets. The framing in the project description is a universal translator for all alphabets and writing systems.
The number is the headline, and it is worth being clear about what it counts. The transforms are grouped into categories, and the categories match the folders under src/transformers, with each transformer's name as shown in the user interface. The categories in the documentation include Case, Cipher, Concealment, Encoding, Format, among other groups.
The Case category is the least exotic and shows the level of detail. There are eleven entries: Alternating Case, camelCase, Capitalize Words, kebab-case, Lowercase All, Random Case, Sentence Case, snake_case, Title Case, Toggle Case and Uppercase All, each with a one line description of what it does.
What the app is not is a general text editor. The primary language of the repository is JavaScript, the build produces a static site, and the design is a workbench where you paste text on one side and see the transformed result on the other, with a decoder direction where the transform is reversible.
The repository layout confirms the split between the site and the data. There is a src directory for the application, a data directory, a js directory, a css directory, a templates directory, a build directory of Node build scripts, and a docs directory. The Python side is separate: a p4rs3lt0ngv3_cli package described as an agent-based CLI for the transform catalogue, with its own python_tests directory.
Classical ciphers, in a list that is mostly a cryptography syllabus
The Cipher category is where the tool earns its keep, and the list reads like a course syllabus. There are forty entries, and they cover substitutions, transpositions, polyalphabetic families and one-time pads.
The substitutions include the classic shift ciphers, with the Caesar Cipher configurable, the Atbash Cipher for reverse-alphabet substitution, the Affine Cipher as ax + b mod 26, the Multiplicative Cipher for multiply by key mod 26, the Trithemius Cipher as a progressive Caesar using tabula recta, and the Gronsfeld Cipher as a Vigenere family with a numeric key. There is also a QWERTY Right Shift that maps keys to the key on the right, which is a nice example of a cipher defined by a keyboard rather than an alphabet.
The polyalphabetic and keyed entries include Vigenere, Beaufort with its key table, Autokey, Vernam as a one-time pad XOR mod 26, and Porta's table. The transposition family has Rail Fence, Columnar Transposition with a keyword, Double Transposition as two keyed columnar transpositions, Route Cipher for reading along a grid route, and the Scytale Cipher as a wrap-around strip.
The digraph and Polybius entries are the more technical ones: Bifid, which combines a Polybius square with row and column interleaving, Playfair on a 5x5 square, Two-Square with two Playfair squares, Four-Square with four 5x5 squares, the ADFGX Cipher as a First World War polybius plus column transposition, and Trifid with three Polybius cubes.
Then there are the ones that are less often seen: Nihilist, which is a keyed Polybius with additive encryption, and Homophonic, which uses multiple ciphertext symbols per plaintext letter. Baconian, Tap Code, the Acere Cipher for solfege based musical steganography, and the Columnar and Route transpositions fill out the range.
Encodings, concealment, and where steganography actually lives
The Encoding category is dominated by base-N variants, and having them all in one place is the practical value. There is Base32 following RFC 4648, Base36, Base45, Base58 in the Bitcoin style with no 0, O, I or l, Base62, Base64 and Base64url, Base91 in the basE91 style, Base122 for binary to 122 printable ASCII characters, ASCII85, Z85 in the ZeroMQ variant, and a Multiformats multibase Base256Emoji encoding where one byte becomes one emoji.
Alongside those are the character encodings and wire formats: EBCDIC, Baudot Code in ITA2, Manchester Code, Quoted-Printable for MIME, YEnc, Uuencoding, HTML Entities, URL Encode, Unicode Code Points, Hexadecimal, and Binary. There are also several esoteric ones, Bibi-binary for UTF-8 bytes as Bibi syllables, Shadoks Numeral System, Decabit Code, Gray Code, Binary Coded Decimal, and Brainfuck.
The Concealment category is where the hiding techniques sit, and the descriptions make the mechanism clear. Acrostic takes the first letter of each line or word, the Null Cipher uses a fixed letter position in each cover word, the Trevanion Cipher takes letters N positions after punctuation marks, the Cardan Grille hides text through a rotating grille, and the Homoglyph Generator maps Latin letters to Cyrillic homoglyphs. That last one is the practical one for anyone checking text for spoofing.
The dedicated steganography section is separate from the transform list. Emoji Steganography hides messages within emojis using variation selectors, VS15 and VS16 and related options, with a configurable bit order in the Advanced Settings. Invisible Text encodes using the Unicode Tags block, which is visually invisible. Whitespace and zero-width steganography are also offered, and the documentation describes them as available as transforms for research-style payloads.
Building it and opening it from the filesystem
The app is a static site, so the build output is a folder of files and the fastest way to use it is to open the index page directly. The documented sequence is npm install, then npm run build, then open dist/index.html in a browser with no local server required. The alternative is to serve it over HTTP with npm start or npx serve dist -l 8080, and npm run preview does the build and the serve in one command.
The build is a chain of Node scripts, one per artefact, and reading the scripts field explains the structure of the app:
npm install
npm run build
npm startThe build runs the tool scripts injection, the codes vendor build, the static copy, the index build, the transforms build, the emoji data build and the templates injection, in that order. The transforms build itself chains the alphabets build, so the niche alphabet transforms are generated rather than hand-written.
The dev dependencies are minimal for a project of this size: esbuild for bundling, serve for the local server, and three barcode and QR libraries, @zxing/library, jsbarcode and qrcode, which suggests the site also generates and reads codes rather than only transforming text. The build directory holds these scripts as separate files, build-code-vendor.js, copy-static.js, build-index.js, inject-tool-scripts.js, inject-tool-templates.js, build-emoji-data.js, build-alphabet-transforms.js and build-transforms.js.
The tests are plain Node scripts rather than a test framework, with test_universal.js, test_steganography_options.js, test_lexeme_analysis.js and test_lexeme_ui_surface.js, run individually or through the test:all target. There is also a precommit script that runs the full test set, which is an unusual amount of ceremony for a project like this and suggests the transform catalogue is treated as a surface that can silently break.
The cloud features, the themes, and the licence discrepancy
The split between local and cloud features is stated clearly. Core transforms, the decoder, and steganography work without calling the cloud, and the features that use OpenRouter need network access and an API key. Version 4.0 also brought a redesigned desktop app shell, seven themes including an Accessible one at WCAG 2.1 AA, mobile utility panels, OpenRouter model curation, and responsive UI work across the tools.
The build output being a static site is the right call for a tool like this. The transforms are deterministic functions, there is no server state, and opening a file from disk means the tool works in an air-gapped environment. The OpenRouter features are the only part that needs the network, and the documentation separates them clearly enough that you can ignore them.
The licence needs a second look, and this is the one place where the repository's own metadata disagrees with itself. The project is identified as AGPL-3.0 at the repository level, with a LICENSE file at the root, while the package.json licence field reads MIT. For anyone redistributing or embedding the tool, the root LICENSE file is the one to act on, and the discrepancy is worth raising with the project.
On maintenance, the repository is not archived and the last push was on 2026-06-25, with no published GitHub releases, so the version in use is the tip of the main branch. The Python CLI package sits separately at version 0.1.0, requires Python 3.12 or newer, and has no dependencies of its own.
Editorial conclusion
P4RS3LT0NGV3 suits a security researcher, CTF solver or educator who wants a single offline page that covers the classic cipher and encoding catalogue, plus steganography helpers, without installing a toolchain. It is a poor fit for a production service that needs a stable API, since the output is a static site with a build step, and a poor fit for a team that needs to be sure where a payload it produces will be readable, since several transforms are niche alphabets and encodings by design. Before adopting, build with npm run build and confirm dist/index.html opens locally, and check the licence, because the repository is identified as AGPL-3.0 while the package.json licence field reads MIT.
Frequently asked questions
What is P4RS3LT0NGV3?
It is a web-based text transformation and steganography tool with 222 built-in transforms spanning encodings, classical and modern ciphers, Unicode styles, formatting and niche alphabets. The transforms are grouped into categories that match the folders under src/transformers.
How do I build and run P4RS3LT0NGV3?
The app is a static site. Run npm install, then npm run build, then open dist/index.html in a browser with no local server required. Alternatively run npm start or npx serve dist -l 8080 to serve it over HTTP, and npm run preview does the build and the serve together.
Does P4RS3LT0NGV3 need an API key to work?
Not for the core functionality. Core transforms, the decoder, and steganography work without calling the cloud, and only the features that use OpenRouter need network access and an API key.
What steganography techniques does P4RS3LT0NGV3 offer?
Emoji steganography that hides messages within emojis using variation selectors such as VS15 and VS16, with a configurable bit order in the Advanced Settings, invisible text using the Unicode Tags block, and whitespace and zero-width steganography offered as transforms for research-style payloads.
What licence is P4RS3LT0NGV3 released under?
The repository is identified as AGPL-3.0 with a LICENSE file at the root, while the package.json licence field reads MIT. The root LICENSE file is the one to rely on, and the discrepancy is worth raising with the project.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/elder-plinius-p4rs3lt0ngv3)Was this useful?