View on GitHub


Classic configurable talking cows

Download this project as a .zip file Download this project as a tar.gz file
Home | FAQ | Roadmap | Community


Cowsay provides configurable talking cows at the terminal or other text presentation location.


This project you're looking at is Andrew Janke's fork of Tony Monroe's cowsay. It was created to provided ongoing maintenance and hosting for cowsay, and is an exercise in applying Open Source development and deployment practices to a small project. My hope is that this becomes the canonical modern fork of cowsay.

This forked project is called "cowsay-apj" where needed to distinguish it from the original cowsay project. The program is still called "cowsay".

Cowsay was originally written by Tony Monroe. The cowsay-apj updates primarily provide maintenance, hosting, and deployment support. The main functionality and code are from Tony Monroe. Anything involving bureaucracy and software development process were added by Andrew Janke and cowsay-apj contributors.

Andrew Janke is on GitHub at @apjanke.


Cowsay is licensed under the GPLv3. See LICENSE.txt in its distribution for details.


Download cowsay from the GitHub Releases page and follow the instructions in the distribution.

If you are using Homebrew on Mac OS X, you can install cowsay with Homebrew:

$ brew tap cowsay-org/cowsay
$ brew install cowsay-apj

Development and Support

Source code for cowsay can be found on GitHub at

If you have issues with cowsay, please post an issue on our GitHub issue tracker.

If you would like to contribute to the development of cowsay, please start with the Contributing Guide in our main repo.


Cowsay is actually a pretty old program. It was originally written by Tony Monroe and was first released in 1999, but was in use by Monroe for quite a while before that.

From Tony:

The first major version of cowsay had one cow and one message template: $foo is $verb $bar. Not very flexible, but people managed to do pretty interesting things with it. The second major version scrapped many of the limitations of the first, by allowing arbitrary messages, multiple cowfiles, and even support for cows talking in figlet. The third version was a rewrite of the second into Perl 5, whereupon the code got a lot smaller and more manageable. :-)

As of 2016, Monroe was no longer interested in maintaining cowsay, and posted a final 3.04 version on GitHub to make it available to other developers. Andrew Janke, a cowsay fan, forked the project to provide ongoing maintenance and hosting for cowsay, and as an exercise in FLOSS development processes.


Cowsay requires Perl 5.005_03 or later.


Enjoy cowsay for what it was meant to be: simple and silly.