A tool for generating customizable ASCII art messages with speech bubbles and cow-style templates, supporting styled text using AnsiMarkup.
Project description
ccowsay
🐮 A tool for generating customizable ASCII art messages with speech bubbles and cow-style templates, supporting styled text using AnsiMarkup.
Features
- Custom
.ccowtemplates define ASCII art structure. - Styled text formatting (colors, bold, italic, underline) via AnsiMarkup.
- Text alignment (left, center, right), word wrapping, and whitespace replacement.
- Dynamic template variables (eyes, tongue, etc.) that can be overridden.
- Simple configuration directory for templates and defaults.
Installation
pipx install ccowsay
Basic Usage
ccowsay "Hello World!"
For full details of supported tags and syntax see the AnsiMarkup documentation.
Command-Line Options
| Option | Description | Default |
|---|---|---|
-f, --ccow-format |
Path or alias to a .ccow template |
@/cow.ccow |
-a, --text-align |
Text alignment: left, center, right |
left |
-w, --wrap-width |
Max width before wrapping (use -1 to disable wrapping) |
40 |
--replace-whitespace |
Replace tabs/newlines with spaces | False |
-c, --corners |
Four characters for bubble corners (TL, TR, BL, BR) | / \ / \ |
-s, --sides |
Four characters for bubble sides (top, bottom, left, right) | | - | - |
-v, --values |
JSON string of template variable overrides | {} |
-l, --list-formats |
List available .ccow templates |
— |
--get |
Download a .ccow template from a GitHub repository and save it to the user config directory | — |
Custom Templates
Templates live in your config directory (e.g., ~/.config/ccowsay/).
Each .ccow file has two parts: JSON metadata, then ASCII art, separated by ---. Example:
{
"eyes": "oo",
"tongue": " "
}
---
{message}
{backslash} ^__^
{backslash} ({eyes})\_______
(__)\ )\/\
{tongue} ||----w |
|| ||
Override variables with --values, for example:
ccowsay -f "@/cow.ccow" -v '{"eyes": "xx", "tongue": "U "}' "I'm tired..."
Coloring with XML-Style Tags
You can use XML-style tags from ansimarkup to add colors, bold, or italic text inside your .ccow templates.
[!WARNING] Do not use these tags directly in messages passed to
ccowsay— they are intended for ASCII art templates only.
Example inside a .ccow file:
{
"eyes": "oo",
"tongue": " "
}
---
<red>{message}</red>
{backslash} ^__^
{backslash} (<green>{eyes}</green>)\_______
(__)\ )\/\
{tongue} ||----w |
|| ||
This ensures that all colors and styles are applied safely when rendering the ASCII art.
Using Templates from the Config Directory
Any .ccow file placed in your user config directory (usually ~/.config/ccowsay/) can be referenced using the @/ prefix.
For example:
ccowsay -f "@/cow.ccow" "Hello World!"
@/cowrefers tocow.ccowinside your config directory.- This works for any custom template you add there.
- The default configuration also uses this syntax to load the built-in cow.
Downloading Templates
Use --get flag to download and store .ccow files locally:
ccowsay --get path/to/file.ccow
Embedding in Python
from ccowsay import ccowsay, TextAlign
ascii_art = ccowsay(
"<green>Hello from code!</green>",
open("cow.ccow").read(),
text_align=TextAlign.CENTER,
wrap_width=40,
eyes="oO",
tongue="U "
)
print(ascii_art)
License
MIT License — free to use, modify, and distribute.
Project details
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 ccowsay-1.2.2.tar.gz.
File metadata
- Download URL: ccowsay-1.2.2.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48b03072e444e239d5951eee6d71e3a2997ecfb5a9703de1f059853b55eebaea
|
|
| MD5 |
995bccd015e75e7bfea0f319a37c47da
|
|
| BLAKE2b-256 |
2200765911bf6b8e7f97aee4b4300c3820be2e7e1d526039cc8239e56435b3a2
|
File details
Details for the file ccowsay-1.2.2-py3-none-any.whl.
File metadata
- Download URL: ccowsay-1.2.2-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a676a47c7264ce2a4fe79aff0e0b36234ea533d1896697dafbf32cb089155d53
|
|
| MD5 |
97c1037a6f37617521e0b7e85a937adc
|
|
| BLAKE2b-256 |
519705aa926a86697d6482930d9f82a55f02dc5c880b03880d2cffa129b65b9d
|