agentsclimarketplace

Cowsay

Skill kodexArg/cowsay/skills/cowsay

Deterministic cowsay for AI agents (kodexArg). Renders replies through a bundled Python stdlib bin/cowsay with terminal-aware wrap and swappable ASCII art. Use when the user runs /cowsay, asks for cowsay mode, cowthink, modo vaca, change the cow, or switches art with /cowsay tux (or any stem from cowsay -l). Apply persistent switches with --set-cow.From its SKILL.md

Install
npx -y skills add kodexArg/cowsay --skill cowsay

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 24 days oldThe repository was created 24 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.1 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

cowsay

╭─────────────────────────────────────────────────────╮
│ Thanks: original cowsay — Tony Monroe / cowsay-org  │
│ https://github.com/cowsay-org/cowsay                │
│                                                     │
│ npx skills add kodexArg/cowsay                      │
│                                                     │
│ /cowsay tux                                         │
│ /cowsay moose                                       │
│ /cowsay default                                     │
│ /cowsay <text>                                      │
╰─────────────────────────────────────────────────────╯
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Deterministic cowsay for AI agents. Python 3 stdlib only. MIT. Page: https://skills.sh/kodexArg/cowsay/cowsay

Skill root after install: wherever the agent placed it (e.g. ~/.agents/skills/cowsay). Binary: $SKILL_ROOT/bin/cowsay.

Prerequisites

python3 --version          # 3.x
test -x "$SKILL_ROOT/bin/cowsay"
"$SKILL_ROOT/bin/cowsay" -l
"$SKILL_ROOT/bin/cowsay" -V

No network, no extra packages, no system cowsay.

How to use (chat)

User saysWhat happens
/cowsayEnter cowsay mode until “basta vaca” / “normal mode” / “salí de cowsay”
/cowsay tuxSwitch art to Tux (persist with --set-cow tux)
/cowsay mooseSwitch art to moose
/cowsay defaultSwitch art to default cow
/cowsay <stem>Switch art if stem is listed by cowsay -l
/cowsay <text>One-shot: render that text if text is not a loaded stem
“change the cow” / “cambiar la vaca” (no name)List every stem from -l, wait for pick, then --set-cow
“cowthink” / “pensá”Render with --think
“solo esta vez” + a stemOne-shot art via -f <stem> (do not persist)

Example — TUX

/cowsay tux
  1. Confirm stem is loaded: "$SKILL_ROOT/bin/cowsay" -l
  2. Persist: "$SKILL_ROOT/bin/cowsay" --set-cow tux
  3. Confirm by rendering through the binary (Tux art, not freehand ASCII)

Other cows: whatever ./bin/cowsay -l returns (bundled set is typically default, moose, tux; plus any extra .cow under cows/ or COWPATH).

CLI (local / agent shell)

printf '%s' 'moo' | "$SKILL_ROOT/bin/cowsay"
printf '%s' 'hi'  | "$SKILL_ROOT/bin/cowsay" -W 40
printf '%s' 'hi'  | "$SKILL_ROOT/bin/cowsay" -W 20 -f tux
printf '%s' 'hmm' | "$SKILL_ROOT/bin/cowsay" -W 40 --think
"$SKILL_ROOT/bin/cowsay" -l
"$SKILL_ROOT/bin/cowsay" --set-cow tux
"$SKILL_ROOT/bin/cowsay" --show-cow
python3 "$SKILL_ROOT/tests/test_cowsay.py"

Prefer a quoted heredoc for multi-line answers:

"$SKILL_ROOT/bin/cowsay" -W "$W" <<'COWEOF'
Your full answer here.
COWEOF

Flags (common)

FlagEffect
-W NWrap width (display columns). Prefer terminal width; never hardcode 48
-f <stem>One-shot cow (does not write .active-cow)
--set-cow <stem>Persist active cow to .active-cow
--show-cowPrint active stem
-lList loaded stems
--thinkThought bubbles instead of speech
-d / facesClassic face flags when asked

Environment

EnvEffect
COLUMNSTerminal width when -W omitted
COWSAY_WIDTHPin wrap width (tests/CI; beats COLUMNS)
COWSAY_COWForce active cow stem (beats .active-cow)
COWPATHExtra directories of .cow files

Active cow priority

-fCOWSAY_COW.active-cowdefault

Agent instructions

Renderer is law. Never freehand the dialog box or the ASCII animal. Always run $SKILL_ROOT/bin/cowsay and show only its stdout (one fenced code block).

1. Resolve width

if [ -n "${COWSAY_WIDTH:-}" ]; then
  W="$COWSAY_WIDTH"
elif [ -n "${COLUMNS:-}" ] && [ "$COLUMNS" -gt 0 ] 2>/dev/null; then
  W=$((COLUMNS - 4))
else
  W=$(stty size 2>/dev/null | awk '{print $2}')
  W=${W:-80}
  W=$((W - 4))
fi
[ "$W" -lt 8 ] && W=8

2. Switch cow when the user names a stem

"$SKILL_ROOT/bin/cowsay" -l
"$SKILL_ROOT/bin/cowsay" --set-cow <stem>
"$SKILL_ROOT/bin/cowsay" -W "$W" <<'COWEOF'
Listo: vaca activa = <stem>
COWEOF

Do not invent stem names. Source of truth is -l.

3. Every final reply in cowsay mode

  1. Write the full answer in the user’s language.
  2. Pipe it through the binary (heredoc above).
  3. User-visible output = that stdout only.

4. Failure

If the binary exits non-zero, report stderr and exit code in plain text. Do not invent art.

5. Confinement

Only operate inside $SKILL_ROOT. After code changes: python3 "$SKILL_ROOT/tests/test_cowsay.py".

Layout

skills/cowsay/
  SKILL.md          this file (Agent Skills format)
  bin/cowsay        CLI compose only
  lib/dialog.py     balloon, wrap, terminal width
  lib/art.py        COWPATH, load .cow, faces, active cow
  cows/*.cow        ASCII resources ($thoughts $eyes $tongue)
  tests/            goldens

Dialog and art are separate layers so figures can change without rewriting the balloon.

License

MIT — Copyright (c) 2026 kodexArg (Gabriel Cavedal) / kodexarg.com.

Full text: repository root LICENSE.

What ships with it: 9 files

34.2 KB alongside SKILL.md, 5 of them executable

bin/

cows/

lib/

tests/

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.