Python Cowsay Library: A Fun and Whimsical Way to Display Text

Cowsay is a delightful Python library that adds a touch of humor and whimsy to your command-line applications. It allows you to create ASCII art of a cow, which will speak your provided text with humorous messages. This light-hearted library is perfect for adding some entertainment to your terminal applications or creating fun chatbots.

In this article, we will cover how to install the Cowsay library, where it can be used, and provide a step-by-step guide to using it. Additionally, we will create a final project to illustrate a practical use case of the library.


To start using the Cowsay library, you need to install it on your system. Here's how you can do it:

Using pip:

pip install cowsay

Using conda:

conda install -c conda-forge cowsay


Using Cowsay is incredibly straightforward. Simply import the cowsay module and call the cowsay function with your desired text.

import cowsay

text_to_display = "Hello, Cowsay!"

Executing the above code will generate a delightful ASCII art of a cow saying "Hello, Cowsay!" in your terminal.

You can watch the video below:

Customizing the Cow:

Cowsay offers various options for customizing the appearance of the cow and the speech bubble. You can change the character used for the cow, eyes, tongue, and even use different templates for the speech bubble.

import cowsay

def custom_cow(text):
    custom_cow_ascii = r"""
   \  ^__^
    \ ({eyes})\_______
      (__)\       )\/\
          ||----w |
          ||     ||
""".format(eyes="O" if text else "o")
    print(custom_cow_ascii + text)

text_to_display = "Custom Cow with Custom Eyes and Tongue!"

This code will generate a custom turtle-themed cow saying "I can customize my appearance!".

Where to Use Cowsay:

  1. Terminal Applications: Cowsay can add humor and visual appeal to your terminal-based programs. Whether it's a game, a chatbot, or a command-line utility, Cowsay can make it more engaging for users.
  2. Script Greetings: Cowsay can be used to greet users when they execute your Python scripts. It provides a friendly touch that makes users feel welcomed.
  3. Debugging and Logging: Incorporate Cowsay into your debugging and logging routines to make error messages more entertaining, which can lift spirits during development.

Example Project: Building a Cowsay Chatbot

Let's create a simple Cowsay-powered chatbot using Python's input() function:

import cowsay

def chatbot():
    print("Hi! I'm the Cowsay Chatbot. Type 'exit' to end the conversation.")
    while True:
        user_input = input("You: ")
        if user_input.lower() == 'exit':
            print("Cowsay Chatbot: Goodbye!")
        cowsay.cow(f"Cowsay Chatbot: {user_input}")

if __name__ == "__main__":

Now, you have a chatbot that will respond in a fun cow-style to whatever the user types. When the user types 'exit', the chatbot will say goodbye and terminate the conversation.

the Cowsay library provides various shapes other than just the cow. Here are some of the possible shapes you can use with Cowsay:

  1. cow: The default shape, which is an ASCII art representation of a cow.
  2. beavis: An ASCII art representation of the cartoon character Beavis from "Beavis and Butt-Head."
  3. cheese: An ASCII art representation of a wedge of cheese.
  4. daemon: An ASCII art representation of a demon.
  5. dragon: An ASCII art representation of a dragon.
  6. ghost: An ASCII art representation of a ghost.
  7. kitty: An ASCII art representation of a cute kitty.
  8. milk: An ASCII art representation of a glass of milk.
  9. moose: An ASCII art representation of a moose.
  10. stegosaurus: An ASCII art representation of a stegosaurus dinosaur.
  11. stimpy: An ASCII art representation of the cartoon character Stimpy from "The Ren & Stimpy Show."
  12. turkey: An ASCII art representation of a turkey.
  13. turtle: An ASCII art representation of a turtle.

These are just a few examples of the available shapes in the Cowsay library. You can try out each shape to see how they display your text in a fun and creative manner. To use a specific shape, you can simply pass the template parameter to the cowsay function with the desired shape name. For example:

import cowsay

text_to_display = "Hello, I'm a Dragon now!"

This code will generate a dragon-themed ASCII art saying "Hello, I'm a Dragon now!" in your terminal. Feel free to experiment with different shapes to add variety and amusement to your projects.


In conclusion, the Python Cowsay library is a playful and entertaining addition to your Python projects. Its easy installation and simple usage make it a fantastic choice for bringing smiles to your users' faces in terminal applications, scripts, and chatbots. So, go ahead, install Cowsay, and let your creativity run wild with amusing ASCII art cows!