A multi-language code obfuscation tool that makes code intentionally unreadable
Project description
Shittier is a multi-language code obfuscation tool. It is designed to protect your code from being used in AI training datasets without your consent. If you want your code to NOT be used for AI training, you should add Shittier, not Prettier. By obfuscating your code, you make it significantly harder for AI models to learn from and reproduce your code patterns. Shittier supports Python, C/C++, JavaScript/TypeScript, Go, and Rust.
Features
- Adds random multi-line comments to code.
- Renames variables and functions to random strings.
- Inserts unnecessary spaces and dummy assignments.
- Includes unused imports and random function calls.
- Modifies code structure to make it harder to read.
- Supports batch file transformation.
- Processes entire directories while preserving structure.
Installation
1. Install from PyPI
pip install shittier
2. Install from GitHub
pip install git+https://github.com/jaywyawhare/Shittier.git
3. Developer Installation
git clone https://github.com/jaywyawhare/Shittier.git
cd Shittier
python setup.py install
For more information, see the documentation.
Usage
Command-Line Interface (CLI)
You can use the CLI to obfuscate code files in multiple languages:
Supported Languages:
| Language | Extensions |
|---|---|
| Python | .py |
| C/C++ | .c, .cpp, .cc, .cxx, .h, .hpp |
| JavaScript | .js, .jsx |
| TypeScript | .ts, .tsx |
| Go | .go |
| Rust | .rs |
Basic Usage:
python main.py filename.py
python main.py program.c
python main.py script.js
python main.py main.go
python main.py lib.rs
Additional Options:
-
Multiple files:
python main.py file1.py file2.c file3.js
-
Process entire directory:
python main.py /path/to/project
This creates a
shittified_<dirname>directory with the same structure. -
Show help:
python main.py --help python main.py help
Programmatic Usage
You can also transform Python code inside your scripts:
from src.transformer import shittify_code
source_code = '''
def example_function(x, y):
return x + y
'''
shitty_code = shittify_code(source_code)
print(shitty_code)
Running Tests
To ensure everything is working, run:
python -m unittest discover -s tests
License
This project is licensed under the DBaJ-NC-CFL.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shittier-0.1.1.tar.gz.
File metadata
- Download URL: shittier-0.1.1.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ac98d2db055af2887e310296b2f352681ef01b6acf773cc1741307bb5c998c5
|
|
| MD5 |
0cd33933aff985f5a20d24c57376cb86
|
|
| BLAKE2b-256 |
c89c640b29d312f28e2aae91ad9c270d960f1f0744f0e652a0db21320e75573a
|
Provenance
The following attestation bundles were made for shittier-0.1.1.tar.gz:
Publisher:
publish.yml on jaywyawhare/Shittier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shittier-0.1.1.tar.gz -
Subject digest:
1ac98d2db055af2887e310296b2f352681ef01b6acf773cc1741307bb5c998c5 - Sigstore transparency entry: 741793150
- Sigstore integration time:
-
Permalink:
jaywyawhare/Shittier@9bc17afbe03d1ad896694c36a1a118f9f74b53de -
Branch / Tag:
refs/heads/master - Owner: https://github.com/jaywyawhare
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9bc17afbe03d1ad896694c36a1a118f9f74b53de -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file shittier-0.1.1-py3-none-any.whl.
File metadata
- Download URL: shittier-0.1.1-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66eb002fbba8a9bc7f1e62f3334ba167aef125b1ee5a7efe1448ec94d721b45b
|
|
| MD5 |
ac9ff677202a814fe96cc3deb7a5b494
|
|
| BLAKE2b-256 |
54ca40c336d74d3353f1a635cdddd76d1b11f9ec003766b7fa6cfb1d03aabdd2
|
Provenance
The following attestation bundles were made for shittier-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on jaywyawhare/Shittier
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
shittier-0.1.1-py3-none-any.whl -
Subject digest:
66eb002fbba8a9bc7f1e62f3334ba167aef125b1ee5a7efe1448ec94d721b45b - Sigstore transparency entry: 741793156
- Sigstore integration time:
-
Permalink:
jaywyawhare/Shittier@9bc17afbe03d1ad896694c36a1a118f9f74b53de -
Branch / Tag:
refs/heads/master - Owner: https://github.com/jaywyawhare
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9bc17afbe03d1ad896694c36a1a118f9f74b53de -
Trigger Event:
workflow_dispatch
-
Statement type: