zalgolib
A Python library for a _FULL_ Zalgo experience
What it is and what it does
Zalgolib is a Python library for generating and removing Zalgo text—text decorated with stacked Unicode combining diacritical marks that create a visually chaotic or "corrupted" effect. It provides two main functions: enzalgofy() adds combining marks to text at a configurable intensity (0–100, representing a rough percentage of marks per character), and dezalgofy() strips those marks by converting to ASCII and back to UTF-8. The library includes curated lists of 40 downward marks, 46 upward marks, and 21 midline marks drawn from the Unicode combining diacritics space.
The package has no external dependencies beyond Python's standard library random module. It is designed to be lightweight and customizable—users can extend the diacritics lists directly in their own code or modify the module itself. The author emphasizes functionality and periodic maintenance, though the project has been dormant since December 2023.
Use it for:
- Generate visually striking or humorous Zalgo text for social media posts, chat messages, or creative writing.
- Strip Zalgo text back to readable ASCII when cleaning user input or text from untrusted sources.
- Experiment with Unicode combining marks and diacritical mark placement for linguistic or typographic research.
- Obfuscate or encode text for novelty or aesthetic purposes in applications or games.
- Extend the diacritics lists to include marks from other Unicode blocks or non-Latin writing systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Encodes text with overlapping Unicode diacritical marks to create Zalgo text, and decodes Zalgo text back to plain ASCII by stripping combining marks.
Yes, if you need Zalgo text generation or decoding. The package is lightweight (no external dependencies), permissively licensed, and has no known vulnerabilities. The dormant maintenance status is not a concern for a narrow, self-contained utility. Install if you have an actual use case for Zalgo text; otherwise it is niche.
Install
zalgolib on PyPI
pip
pip install zalgolibuv
uv add zalgolibpoetry
poetry add zalgolibInstalling zalgolib
Before you install
No runtime dependencies beyond the standard library. Dormant since late 2023 (981 days), but the repository is not archived and the codebase is straightforward enough that lack of recent updates poses minimal risk for a utility of this scope.
License in practice
MIT license is permissive; you may use, modify, and distribute the package freely with minimal restrictions, provided you retain the copyright notice.
Quickstart
pip install zalgolib
from zalgolib import enzalgofy, dezalgofy
zalgo_text = enzalgofy(text='hello', intensity=50)
plain_text = dezalgofy(zalgo_text)
Requires Python 3.7 or later; relies on random.choices() from the standard library.
Verify before relying
- Whether dezalgofy correctly preserves intentional accented characters in the original text, or whether it strips all combining marks indiscriminately.
- Performance characteristics when processing very large strings or high intensity values.
Package facts
| License | MIT License Copyright (c) 2022 Yatri Trivedi Copyright (c) 2017 Greg Pritchard Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 981 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 103,562/month — #12,797 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zalgolib-0.2.2-py3-none-any.whl
Keywords: diacritics, horror, language encoding, obfuscation, text processing, zalgo
Tags
More General packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
SphinxSphinx generates professional documentation…
permissive · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
nltkNLTK is a Python library for natural language…
permissive · top 1,000 on PyPI
humanizeConverts numbers, dates, times, and file sizes…
permissive · top 1,000 on PyPI
normalityNormality removes diacritics, punctuation, and…
permissive · top 15,000 on PyPI
fold-to-asciiConverts Unicode characters outside the basic…
permissive · top 15,000 on PyPI
UnidecodeConverts Unicode text to ASCII-safe…
copyleft · top 1,000 on PyPI
latexcodecProvides a Python codec to convert between…
permissive · top 5,000 on PyPI
idnaConverts domain names between Unicode and…
permissive · top 100 on PyPI
bnunicodenormalizerNormalizes Bangla Unicode text by fixing…
permissive · top 15,000 on PyPI
pylzsspylzss decodes and encodes data compressed with…
copyleft · top 15,000 on PyPI
graphemeuProvides string manipulation functions that…
permissive · top 5,000 on PyPI
mbstrdecoderDecodes multi-byte character strings by…
permissive · top 5,000 on PyPI
confusable-homoglyphsDetects Unicode homoglyphs and mixed-script…
permissive · top 5,000 on PyPI