FAQ
Frequently asked questions about Cowser.
Table of Contents
- How many animals are built in?
- How do I make output reproducible?
- Why is output colorless in a pipe?
- What is the config file for?
- Can I use my own art?
- Is Cowser safe to use as a library?
- Why "neostore" in the config path?
How many animals are built in?
35, across 12 categories: cows (14), cats (6), pets (2), birds (2), wild
animals (3), farm, sea, robot, hedgehog, alien, spooky, and mythical
creatures. Run cowser --list or cowser --search <text> to see them.
How do I make output reproducible?
Pass --seed INT. The same seed and animal choice produce the same output
every time. You can also set seed = 42 in the config file.
Why is output colorless in a pipe?
Color is only emitted when stdout is a terminal (ansi.supports_color()
checks isatty). When piping to a file or another program, color is disabled
automatically so the output stays clean. Use --color explicitly to force a
color even in a pipe, or --no-color to disable it everywhere.
What is the config file for?
Defaults for color, cow, eyes, mode, wrap, cow_dir, and seed.
Command-line flags always override it. See
configuration.md.
Can I use my own art?
Yes — two ways. Add a Cow to cowser/cows.py (see
development.md), or drop art files in a
directory and pass --cow-dir (no code changes). Classic cowsay .cow
cowfiles and plain .txt/.art files are both supported. See
usage.md.
Is Cowser safe to use as a library?
Yes. The stable surface in cowser.api is pure (no I/O), fully type-hinted,
and covered by a backwards-compatibility guarantee — names in __all__ will
not break between minor versions without a deprecation notice.
Why "neostore" in the config path?
The config directory is ~/.config/neostore/cowser/ — an artifact of the
project's early naming. It is now a fixed, documented location; changing it
would break existing users' configs.