Skip to main content

Tatuagem, the boastful code signature suite

coverage

Tatuagem is a tool to generate ASCII art signatures (tattoos) and apply them to your code files recursively.

Usage

python3 tatuagem.py [text_input] [options]

Arguments

Argument Description Default
text_input The string you want to convert into a tattoo. Required if --file is not provided. None
--text The character used to draw the text pixels. 1
--backsplash The character used to fill the background. 0$*~
--font The TrueType font file (.ttf) to use for generating the text shape. unicode-arial.ttf
--pattern A repeating string pattern to use for the background. Overrides --backsplash. None
--margin Number of empty lines (margin) to add above and below the text. 3
--recurse-path Path to a directory. Tatuagem will walk through this directory and prepend the tattoo to every file found. None
--file, -f Path to a file containing text.
Standard Mode: The content of the file is converted into the tattoo art.
Recurse Mode (with --recurse-path): The content of the file is used as-is for the tattoo (useful for pre-generated art).
None
--overwrite When using --recurse-path, this flag allows overwriting existing tattoos in files. Without this flag, files that are already tattooed will be skipped. False

Examples

Basic Example

Generate a simple tattoo.

python3 tatuagem.py "tatuagem"

Defaults: '1' for text, '0' for background, unicode-arial.ttf for font

Elaborate Syntax Example

Customizing the text and background characters.

python3 tatuagem.py "L'appel du vide" --font 'unicode-arial.ttf' --backsplash '!' --text '@'

alt text

Wallpaper: Pattern-Argument Syntax Example

Using a pattern string for the background.

python3 tatuagem.py "Tatuagem" --pattern '`':,:''

alt text

Recurse your project

Apply the generated tattoo to all files in test_tattoo/.

python tatuagem.py "Tatuagem" --pattern '`':,:''  --recurse-path test_tattoo/

Recurse your project with a text file

Apply the contents of tests/aeaea.inc as a header to all files in test_tattoo/.

python3 tatuagem.py --file tests/aeaea.inc --recurse-path test_tattoo/

Replace existing tattoos with --overwrite

Update existing tattoos in files that were already tattooed. Without this flag, already-tattooed files will be skipped.

python3 tatuagem.py "New Tattoo" --recurse-path test_tattoo/ --overwrite

Features

Shebang detection and preservation - files with #!/... shebangs keep them at the top

Safe for npm projects - tattooed npm projects continue to work after tattooing

Idempotent - Tattoos won't repeat on themselves if run multiple times

.tatignore support - Exclude specific files and directories from tattooing

.tatignore

Similar to .gitignore, you can create a .tatignore file in the root of the directory you want to tattoo to specify patterns of files and directories to exclude from tattooing.

.tatignore Syntax

The .tatignore file supports the following patterns:

  • Simple filenames: file.txt - ignores any file named file.txt
  • Wildcards: *.log - ignores all files ending with .log
  • Directory patterns: node_modules/ - ignores all files in node_modules directory
  • Recursive patterns: build/** - ignores all files in build and its subdirectories
  • Comments: Lines starting with # are treated as comments
  • Empty lines: Empty lines are ignored

.tatignore Example

# Ignore log files
*.log

# Ignore build artifacts
build/
dist/

# Ignore dependencies
node_modules/

# Ignore specific files
secrets.py
config.local.json

# Ignore test directories
tests/**

Usage with .tatignore

  1. Create a .tatignore file in the directory you want to tattoo (or copy .tatignore.example from this repository)
  2. Add patterns for files/directories to exclude
  3. Run tatuagem with --recurse-path as usual
# This will respect patterns in .tatignore
python3 tatuagem.py "MyProject" --recurse-path ./my-project/

Release files for tatuagem 0.1.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tatuagem 0.1.14
File Size Uploaded
tatuagem-0.1.14.tar.gz 15.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for tatuagem 0.1.14
File Interpreter ABI Platform
tatuagem-0.1.14-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 MB

Release files / tatuagem-0.1.14.tar.gz

Download URL tatuagem-0.1.14.tar.gz
Size 15.3 MB
Tags Source
SHA-256 checksum
How to use checksums
313d38a8534d1e3a2be4e0be0c80462be322944755a079b65170b02eb3058b97
BLAKE2b-256 checksum
How to use checksums
c6415d63fc26727f26dee2fba0d1f384fd292a456016a4ede5e5f05c2a259b6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 3, 2026.

Transparency log

Release files / tatuagem-0.1.14-py3-none-any.whl

Download URL tatuagem-0.1.14-py3-none-any.whl
Size 15.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cebd94a28fef2c3de2d104e59ba084bdccffd2cbde51ef1e989727e07071213b
BLAKE2b-256 checksum
How to use checksums
67560bbe33831a91aa8d19715e42bd55c4c591299994883b61fb27491e8d0f87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.14 This release

2 release files

0.1.9

2 release files

0.1.4

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page