+--------------------------------------------------------------------------------------------------+
| * ~ * FORGUM JUNGLE ENGINE * ~ * |
+==================================================================================================+
| / \ //\ |
| |\___/|/ \// \\ โโโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โโโ โโโโโโโ โโโโ \ ^__^ |
| /O O \_ / // | \ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโ โโโโโโโโ โโโโโ \ (oo)\_______ |
| \@_^_@'/ \/_// | \ โโโโโโ โโโ โโโโโโโโโโโโโโ โโโโโโโ โโโโโโโโโโโโโโ (__)\ )\/\ |
| //_^_/ \/// | ) โโโโโโ โโโ โโโโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโ ||----w | |
|( //) | // | / โโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ โโโ โโโ || || |
| โโโ โโโโโโโ โโโ โโโ โโโโโโโ โโโโโโโ โโโ โโโ |
| * * * K I N E M A T I C J U N G L E M E N A G E R I E * * * |
| ___ .___. |
| {~o.o~} ( ( ( A N I M A T E D ) ) ) {o,o} |
| ( Y ) ) ) ) P A S T U R E ( ( ( /)__) |
| ()~*~() ( ( ( M O T I O N ) ) ) "" |
+==================================================================================================+
| [Dragon: Ember] [Koala: Zen] [Toucan: Sky] [Cow: Pasture] |
+--------------------------------------------------------------------------------------------------+
Forgum is a high-performance terminal mascot & 2D physics animation engine written in pure, safe Rust. The modern successor to cowsay, ponysay, lolcat, and fortune โ rendering living ANSI creatures with stride-velocity coupled kinematics, procedural nature horizons, curated themes, and DECSTBM split-scroll multitasking. Cross-platform on Windows, macOS, Linux, and BSD.
- โจ The Modern cowsay & lolcat Alternative
- ๐ 30-Second Quickstart (Zero Configuration)
- ๐ช Visual Highlights & Core Features
- ๐ฆ Installation & Multi-Channel Distribution
- ๐ Shell Integration & Ecosystem
- ๐ Complete CLI Command & Argument Reference
- ๐งฎ Under The Hood: Kinematics & Nature Mathematics
- ๐ฉบ Maintenance, Diagnostics & Uninstallation
- ๐ Documentation Index & Deep Dives
- ๐ License & Community Credits
Keywords: cowsay alternative ยท terminal animation ยท shell animations ยท ASCII art mascots ยท lolcat replacement ยท ponysay alternative ยท terminal eye candy ยท ascii animation ยท fortune quotes ยท rust cli ยท ricing ยท dotfiles ยท shell prompt ยท tui ยท terminal customization
In 1999, cowsay brought whimsy to static terminal consoles. For over two decades, it served as a beloved staple in dotfiles, motd scripts, and shell configs. As terminal emulators evolved to support 24-bit TrueColor, Unicode graphemes, and sub-millisecond VT rendering, we asked: What if terminal mascots could truly live in the terminalโwalking, flying, and resting across procedural landscapes while remaining ultra-lightweight and respectful of system resources?
Forgum is the modern, pure-Rust successor to classic CLI toys like cowsay, ponysay, lolcat, fortune, cmatrix, and asciiquarium. Rather than printing static ASCII text into the shell scrollback, Forgum runs an industrial-grade, lock-free 2D physical simulation canvas right above your prompt.
| Feature | Forgum ๐ฆ | cowsay ๐ฎ | ponysay ๐ด | lolcat ๐ | fortune ๐ฎ | cmatrix ๐ฉ | asciiquarium ๐ |
|---|---|---|---|---|---|---|---|
| Language | Safe Rust | Perl | Python | Ruby / C | C | C | Perl |
| True Physical Animation | โ Walk, fly, float, swim | โ Static | โ Static | โ N/A | โ N/A | ||
| Procedural Nature Scenery | โ Mountains, roads, sky | โ | โ | โ | โ | โ | โ |
| 24-bit TrueColor | โ Continuous HSV wave | โ | โ | โ | โ | โ | |
| Particle Physics (Fire, Bubbles, Stars) | โ SplitMix64 PRNG | โ | โ | โ | โ | โ | |
| Fortune Quotes Built-In | โ Pasture catalog | โ | โ | โ | โ | โ | โ |
| Shell Prompt Integration | โ 15 shells | โ | โ | โ | โ | โ | โ |
| DECSTBM Split-Scroll Multitasking | โ Non-blocking | โ | โ | โ | โ | โ | โ |
| Interactive TUI Studio | โ Modeless Tailwind | โ | โ | โ | โ | โ | โ |
| Cross-Platform Support | โ Win / Mac / Linux / BSD | โ Fork needed | โ | โ | โ | โ | |
| Memory Footprint | < 14 MB RAM | < 1 MB | < 50 MB | < 5 MB | < 1 MB | < 5 MB | < 5 MB |
| Binary Footprint | โ Zero-dependency single binary | โ Needs Perl | โ Needs Python | โ Ruby runtime | โ C runtime | โ Needs ncurses | โ Needs CPAN |
| Stride-Velocity Coupling | โ True kinematic gait | โ | โ | โ | โ | โ | โ |
| Mascot Catalog | 130+ animals | ~50 cows | ~400 ponies | โ | โ | โ | ~10 aquatic |
| Package Managers | 15 channels (Winget, Scoop, Brew, Pacman, APT, DNF...) | apt / brew | apt / brew | apt / brew | apt / brew | apt | cpan |
Forgum requires zero configuration files to get started. Open your terminal and run:
# 1. Run the living pasture with a random fortune and animated mascot:
forgum
# 2. Ponder a thought over procedural alpine mountains and walking kinematics:
forgum think "The terminal is my canvas." --mountain alpine --road trail --effect walk
# 3. Speak your mind with classic speech borders and custom eyes:
forgum say -c tux -e '$$' -t 'U' "Hello from the modern terminal!"By default, random thoughts are enabled. Whenever you invoke forgum without explicit text, the engine loads an authentic quote from its pasture fortune library and wraps it inside a thought bubble ( ... ) with o connector rings.
Every Forgum scene is governed by a SceneConfig. Think of your scene as a pasture, and each parameter as one of the friendly animals that lives there:
- ๐ฎ The Cow says: "Moo! I am the mascot โ set
cowto pick from 130+ creatures (dragon,tux,koala,nyan,elephant), or setcow: "random"to meet someone new every execution." - ๐ญ The Thought says: "Whenever you run
forgumorforgum think, I wrap witty fortune cookies in round( ... )bubbles withoconnector circles." - ๐ฌ The Speech says: "When you pass explicit text with
forgum say, I carry your words inside crisp| ... |borders with directional\stems." - โจ The Effect says: "I drive the physical animation algorithm โ
walkstrides,flyswoops,floatLissajous drift,breathechest oscillations, andemberfire sparks." - ๐๏ธ The Mountain says: "I generate deterministic alpine crests, flat mesas, and volcanic calderas using harmonic sinusoidal superposition."
- ๐ฆ The Chameleon says: "I ensure colors look gorgeous on every terminal โ automatically negotiating between 24-bit TrueColor, 256-color, 16-color, and monochrome."
Curious about what mascots, mountain styles, or environments are available? Discover every parameter directly from your terminal:
# Display the interactive Unicode discovery table:
forgum list
# Inspect candidate options for any specific argument on the fly:
forgum --animal list
forgum --effect list
forgum --mountain list
forgum --road list
forgum --env list
forgum --color-mode list
forgum --palette list
forgum --eyes list
forgum --tongue listForgum ships with 130+ built-in ASCII creatures categorized by habitat and biological taxonomy:
- Classic Bovines:
default,cow,cowsay,small,eyes,bud-frogs,three-eyes,flaming-cow - Mythical & Fantasy:
dragon,dragon-and-cow,daemon,ghost,skeleton,vampire,cthulhu,unicorn - Wild Mammals:
elephant,moose,koala,bear,fox,wolf,lion,tiger,kangaroo,hippo - Aquatic & Oceanic:
dolphin,happy-whale,shark,octopus,squid,duck,frog,seahorse,turtle - Aerial Birds:
golden-eagle,owl,toucan,turkey,rooster,pterodactyl - Cybernetic & Pop:
mech-and-cow,telebears,nyan,tardis,bender,homer,vader,mario,sonic - OS & Tech Companions:
tux(Linux),gnu(GNU),bsd-daemon(FreeBSD),rust-ferris(Rust),gopher(Go)
๐ Coat Polymorphism: In
naturalcolor mode, animals express authentic biological phenotypes (e.g. Cattle: Holstein, Charolais, Black Angus; Tiger: Bengal, White Bengal; Koala: wild grey). Seedocs/HERD.md.
Themes combine mascot, effect, scenery, eyes, and color palettes into cohesive visual presets:
# List all built-in themes:
forgum theme list
# Apply a curated theme immediately:
forgum theme apply matrix
forgum theme apply cyberpunk
forgum theme apply inferno
forgum theme apply zen
# Rotate themes periodically every N minutes:
forgum theme rotate --interval 10| Theme | Animation Effect | Cow Mascot | Eyes | Aesthetic |
|---|---|---|---|---|
arcade |
walk |
default |
oo |
Retro 8-bit pasture walk |
aurora |
aurora |
default |
oo |
Northern lights shifting colors |
cyberpunk |
glitch |
mech-and-cow |
$$ |
Neo-Tokyo neon scanline distortion |
forest |
breathe |
koala |
.. |
Gentle bamboo forest chest respiration |
ghost |
portal |
ghost |
xx |
Ethereal spectral portal phasing |
inferno |
ember |
dragon |
@@ |
Blazing fire particles & smoke |
matrix |
glitch |
telebears |
00 |
Cascading phosphor green rain |
nyan |
float |
nyan |
^^ |
2D cosmic rainbow orbital drift |
ocean |
float |
dolphin |
oo |
Underwater buoyancy drift & bubbles |
retro |
walk |
default |
oo |
Classical terminal stride |
zen |
breathe |
tux |
== |
Meditative penguin stillness |
Forgum generates dynamic natural backdrops using continuous harmonic mathematical synthesis:
- Mountains (
--mountain):smooth,jagged,peaks,alpine,dunes,plateau,mesa,volcanic,sierra,ridge - Roads & Trails (
--road):highway,trail,cobblestone,neon,dirt,gravel,railway,stream,path,cyber,sand,grass - Biomes (
--env):pasture,sunset,cyberpunk,matrix,vaporwave,midnight,autumn,desert,arctic,volcano,deepsea
Run rich physical animations overhead without interfering with your shell commands! Using ANSI DEC Set Top and Bottom Margins (\x1b[top;bottomr):
-
Top Header Rows (
$1 \dots K$ ): Locked for continuous 30/60 FPS animation (mascots, mountains, trees). -
Workspace Rows (
$(K+1) \dots N$ ): The shell scrolls and outputs commands (git,cargo,ls,vim) freely underneath without cursor jitter or visual crosstalk.
# Reserve top 10 rows for non-blocking background animation:
forgum render --split-scroll --reserve-rows 10 --backgroundBuilt-in zero-dependency image-to-ASCII converter (forgum image) featuring ITU-R BT.601 luminance weighting and 1:2 font aspect ratio cell correction:
# Convert image into high-resolution TrueColor ASCII art:
forgum image photo.png --width 50
# Convert image into a reusable .cow file with automated speech anchors:
forgum image avatar.png --save-cow mycritter --width 40
# Render scene directly using an image mascot:
forgum render --image ./logo.png --text "Living image mascot!"Launch the full-screen terminal configuration studio with Tailwind CSS-inspired design tokens (Slate-800 dark pills, Indigo/Emerald accents, rounded borders):
forgum tui
# or
forgum config --tui- Modeless Direct Navigation: Navigate freely with
h/j/k/l,gg,G,Ctrl+d,Ctrl+u,gt,gT. - 100% Config & Scripting Parity: Inspect, toggle, or step all 26 engine settings directly.
- External Editor Keybinding (
o/Ctrl+O): Pressoto suspend raw mode and open the config file in your preferred editor (nvim,vim,nano,code).
Forgum is distributed across 15+ channels with native binaries for Windows, macOS, Linux, and BSD.
irm https://raw.githubusercontent.com/HKDevLoops/Forgum/dev/install.ps1 | iexcurl -4 -fsSL --connect-timeout 5 https://raw.githubusercontent.com/HKDevLoops/Forgum/dev/install.sh | bashPrefer zero interactive UI and zero telemetry? Install headlessly with telemetry declined:
./install.ps1 -Headless -Telemetry decline./install.sh --headless --telemetry decline| OS / Ecosystem | Package Manager | Installation Command | Update Command |
|---|---|---|---|
| Windows | Scoop | scoop bucket add hkdevloops https://github.com/HKDevLoops/scoop-bucket; scoop install forgum |
scoop update forgum |
| Windows | WinGet | winget install HKDevLoops.Forgum |
winget upgrade HKDevLoops.Forgum |
| Windows | Chocolatey | choco install forgum -y |
choco upgrade forgum -y |
| macOS & Linux | Homebrew | brew install hkdevloops/tap/forgum |
brew upgrade forgum |
| Arch Linux | AUR (yay / paru) | yay -S forgum or paru -S forgum |
yay -Syu |
| Debian / Ubuntu | APT / dpkg | sudo dpkg -i forgum-*.deb |
sudo apt install --only-upgrade forgum |
| Fedora / RHEL | DNF / RPM | sudo rpm -ivh forgum-*.rpm |
sudo dnf upgrade forgum |
| openSUSE | Zypper | sudo zypper install forgum-*.rpm |
sudo zypper update forgum |
| Nix / NixOS | Nix Profile | nix profile install github:HKDevLoops/Forgum |
nix profile upgrade forgum |
| Alpine Linux | APK | apk add forgum |
apk upgrade forgum |
| Void Linux | XBPS | xbps-install -S forgum |
xbps-install -Su forgum |
| FreeBSD | pkg | pkg install forgum |
pkg upgrade forgum |
| Universal | Cargo (Rust) | cargo install --path crates/engine --bin forgum |
cargo install --force --path crates/engine --bin forgum |
๐ For detailed instructions, offline options, and package verification, see
docs/INSTALLATION.md.
Every release publishes an authoritative SHA256SUMS manifest alongside Sigstore SLSA build provenance:
# Linux / macOS / BSD:
sha256sum -c forgum-*.tar.gz.sha256
# Windows PowerShell:
(Get-FileHash .\forgum-*-windows-x64.zip -Algorithm SHA256).Hash -eq (Get-Content .\forgum-*-windows-x64.zip.sha256).Split(" ")[0]
# Verify Sigstore provenance attestation with GitHub CLI:
gh attestation verify forgum --owner HKDevLoopsSwitched from standalone script to Scoop, Brew, or WinGet? Reconcile automatically:
forgum update --method scoop # Windows Scoop
forgum update --method winget # Windows WinGet
forgum update --method brew # macOS / Linux Homebrew
forgum update --method yay # Arch Linux AURDetect and remove duplicate binaries across your system $PATH:
# Dry run preview:
forgum prune --dry-run
# Interactively remove shadowed binaries:
forgum prune
# Automated script cleanup:
forgum prune --yesAutomatically inject isolated prompt hooks into your active shell:
forgum init --install
# Or specify explicitly:
forgum init <shell> --installAll shell hooks maintain strict marker isolation (# >>> forgum >>> ... # <<< forgum <<<) with zero shell startup latency.
| Shell | Automated Hook Injection | Tab Completion Setup | Target Profile Path |
|---|---|---|---|
PowerShell 7+ (pwsh) |
forgum init pwsh --install |
forgum completions pwsh | Out-File $PROFILE |
$PROFILE |
| Windows PowerShell 5.1 | forgum init powershell --install |
forgum completions powershell | Out-File $PROFILE |
$PROFILE |
| Bash | forgum init bash --install |
forgum completions bash > ~/.bash_completion |
~/.bashrc |
| Zsh | forgum init zsh --install |
forgum completions zsh > ~/.zsh/completions/_forgum |
~/.zshrc |
| Fish | forgum init fish --install |
forgum completions fish > ~/.config/fish/completions/forgum.fish |
~/.config/fish/config.fish |
| Nushell | forgum init nushell --install |
forgum completions nu > ~/.config/nushell/completions/forgum.nu |
~/.config/nushell/config.nu |
| Elvish | forgum init elvish --install |
forgum completions elvish > ~/.config/elvish/lib/forgum.elv |
~/.config/elvish/rc.elv |
Cmd (cmd.exe) |
forgum init cmd --install |
(doskey alias helper) | Registry AutoRun / AutoRun.cmd
|
| Carapace | forgum init carapace --install |
forgum completions carapace |
~/.config/carapace/specs/forgum.yaml |
| Xonsh | forgum init xonsh --install |
forgum completions xonsh > ~/.xonshrc |
~/.xonshrc |
Tcsh (csh) |
forgum init tcsh --install |
forgum completions tcsh > ~/.cshrc |
~/.cshrc |
Ksh (ksh93/mksh) |
forgum init ksh --install |
forgum completions ksh > ~/.kshrc |
~/.kshrc |
| Ion | forgum init ion --install |
forgum completions ion > ~/.config/ion/initrc |
~/.config/ion/initrc |
Oil (osh/ysh) |
forgum init oil --install |
forgum completions oil > ~/.config/oil/yshrc |
~/.config/oil/yshrc |
| Yash | forgum init yash --install |
forgum completions yash > ~/.yashrc |
~/.yashrc |
๐ For comprehensive hook details and edge cases, see
docs/SHELL-INTEGRATION.md.
# Launch interactive completion updater across detected shells:
forgum completions update
# Check freshness of installed completions:
forgum completions check| Tool | Integration Command | Capability |
|---|---|---|
| tmux | forgum tmux install >> ~/.tmux.conf |
Zero-flicker DCS pass-through status updates |
| zellij | forgum tmux zellij |
Native plugin pane rendering |
| wezterm | forgum tmux wezterm |
Lua status line generator and GPU shader sync |
| starship | forgum init starship |
Custom prompt module emitting ANSI mascots |
| fzf | forgum list animals | fzf --preview 'forgum -c {} --text "Preview"' |
Interactive mascot selector |
| bat | forgum --text-only | bat |
Color-aware pager formatting |
| Subcommand | Aliases | Parameters / Syntax | Description | Example |
|---|---|---|---|---|
render |
(default) | [OPTIONS] [TEXT]... |
Renders animated scenes with scenery & kinematics | forgum render -E walk -c dragon |
think |
ponder |
[OPTIONS] [TEXT]... |
Thought bubble ( ... ) with o connector rings |
forgum think "Deep thoughts" |
say |
speak |
[OPTIONS] [TEXT]... |
Speech bubble with diagonal \ stems |
forgum say "Hello World" |
fortune |
quote |
(none) | Prints a random quote from the pasture catalog | forgum fortune |
tui |
studio |
[TAB] |
Fullscreen interactive configuration studio | forgum tui |
install |
wizard |
[--headless] [--telemetry <CONSENT>] |
Interactive setup wizard and shell installer | forgum install |
uninstall |
remove |
[-m soft|purge] [-y] [--tui] |
Cleanly uninstalls Forgum (Soft or Purge) | forgum uninstall --method soft |
update |
upgrade |
[--check] |
Checks for updates or upgrades Forgum | forgum update |
list |
ls, show |
[CATEGORY] |
Displays responsive Unicode options discovery table | forgum list all |
completions |
complete |
[SHELL] |
Emits or auto-installs syntax autocompletion scripts | forgum completions update |
init |
hook |
[SHELL] [--install] |
Injects shell prompt integration hooks | forgum init zsh --install |
config |
cfg |
[KEY] [VALUE] [--tui] [--migrate <FMT>] |
Reads, writes, or migrates configuration | forgum config set cow tux |
theme |
themes |
[list | apply <NAME> | rotate [MINS]] |
Manages 15 built-in and user themes | forgum theme apply matrix |
checkhealth |
doctor |
[--json] |
Runs 12 diagnostic probes across system & terminals | forgum checkhealth |
logs |
log |
[-f] [-l <LEVEL>] [-o] |
Inspects structured logs or opens in editor | forgum logs -l warn |
diagnose |
triage |
[-n <LINES>] [--json] |
Automated diagnostic triage engine | forgum diagnose |
battle |
arena |
[FIGHTER1] [FIGHTER2] |
Turn-based ASCII battle simulation between mascots | forgum battle "Alice" "Bob" |
rps-battle |
rps |
[--player <NAME>] [-c <WEAPON>] |
Interactive Rock-Paper-Scissors mascot clash | forgum rps-battle |
image |
(none) | <PATH> [-w <WIDTH>] [--save-cow] |
Converts image to TrueColor ASCII or .cow mascot |
forgum image avatar.png |
timer |
stopwatch |
<DURATION> [COMMAND]... |
Animated countdown timer and command benchmark | forgum timer 10s cargo build |
status-line |
(none) | [--max-len <LEN>] |
Single-line compact ANSI status reporter for tmux | forgum status-line --max-len 80 |
sweep |
clean |
(none) | Emergency recovery command to restore terminal state | forgum sweep |
| Flag | Short | Type | Default | Description | Discovery |
|---|---|---|---|---|---|
--animal, --cow |
-c |
String |
"default" |
Mascot character template from 130+ creatures | --animal list |
--effect, --animation |
-E, -a |
String |
"walk" |
Kinematic motion algorithm (walk, fly, float, breathe, ember, glitch...) |
--effect list |
--mountain |
(none) | String |
"smooth" |
Procedural mountain backdrop style | --mountain list |
--road |
(none) | String |
"highway" |
Ground terrain and road surface style | --road list |
--env, --environment |
(none) | String |
"pasture" |
Biome preset (sky, lighting, ambient particles) | --env list |
--color-mode |
-C |
String |
"truecolor" |
Color depth mode (truecolor, 256, 16, mono) |
--color-mode list |
--palette |
-p |
String |
"rainbow" |
Color gradient palette for lolcat dispersion | --palette list |
--eyes |
-e |
String |
"oo" |
Facial expression eyes override | --eyes list |
--tongue |
-T |
String |
" " |
Facial expression tongue override | --tongue list |
--duration |
-d |
u64 |
0 (or 3 fg) |
Playback duration in seconds (0 = infinite) |
--duration 5 |
--fps |
-f |
u32 |
60 |
Target animation frames per second (1โ120) | --fps 30 |
--text |
(none) | String |
Random Fortune | Explicit speech/thought text | --text "Hello" |
--think |
(none) | bool |
true (if empty) |
Enforces thought bubble ( ... ) formatting |
--think |
--split-scroll |
(none) | bool |
false |
Locks top margin via DECSTBM for multitasking | --split-scroll |
--background |
-b |
bool |
false |
Renders non-blocking overlay above prompt | --background |
--accel |
(none) | String |
"auto" |
Compute acceleration (auto, dedicated, integrated, cpu) |
--accel dedicated |
--aspect |
(none) | String |
"auto" |
Viewport aspect ratio preset (21:9, 16:9, 16:10, 4:3) |
--aspect 16:9 |
| Feature | CLI Flag | Value | Mood Expression | Rendering Sample |
|---|---|---|---|---|
| Eyes | -e oo |
oo |
Attentive / Normal | Open rounded eyes (oo)
|
| Eyes | -e $$ |
$$ |
Greedy / Cyber | Dollar sign oculars ($$)
|
| Eyes | -e @@ |
@@ |
Hypnotized / Stoned | Spiral concentric eyes (@@)
|
| Eyes | -e xx |
xx |
Knocked Out / Dead | Criss-cross X eyes (xx)
|
| Eyes | -e == |
== |
Zen / Meditative | Closed horizontal slits (==)
|
| Eyes | -e ^^ |
^^ |
Happy / Joyful | Cheerful anime upturned eyes (^^)
|
| Eyes | -e ** |
** |
Dazed / Starstruck | Sparkling asterisk eyes (**)
|
| Eyes | -e .. |
.. |
Sleepy / Subtle | Minimalist dot eyes (..)
|
| Eyes | -e 00 |
00 |
Robotic / LED | Glowing LED oculars (00)
|
| Tongue | -T "U " |
U |
Blep / Playful | Classic pink bovine tongue ( U )
|
| Tongue | -T "V " |
V |
Forked / Reptilian | Forked snake/dragon tongue ( V )
|
| Tongue | -T "w " |
w |
Cute / Anime | W-shaped feline muzzle curl ( w )
|
| Tongue | -T " " |
" " |
Retracted / None | Closed clean muzzle without tongue |
| Color Mode | Flag | Bit Depth | Escape Sequences | Best For |
|---|---|---|---|---|
| TrueColor | -C truecolor |
24-bit direct | \x1b[38;2;R;G;Bm |
Windows Terminal, Ghostty, WezTerm, Alacritty, Kitty |
| 256-Color | -C 256 |
8-bit indexed | \x1b[38;5;Nm |
xterm-256color, tmux internal windows, macOS Terminal.app |
| 16-Color | -C 16 |
4-bit standard | \x1b[30m โ \x1b[37m |
Linux VT consoles (/dev/tty1), legacy SSH terminals |
| Monochrome | -C mono |
1-bit text | None (pure ASCII) | Braille displays, screen readers, automated pipelines |
| Config Key | Data Type | Default | CLI Mapping | Description |
|---|---|---|---|---|
cow |
String |
"default" |
--animal, -c |
Selected mascot character template |
effect |
String |
"walk" |
--effect, -E |
Primary animation algorithm |
mountain |
String |
"smooth" |
--mountain |
Procedural mountain style |
road |
String |
"highway" |
--road |
Terrain and road rendering style |
environment |
String |
"pasture" |
--env |
Biome, sky gradient, and atmospheric particles |
color_mode |
String |
"truecolor" |
--color-mode, -C |
Color depth rendering mode |
palette |
String |
"rainbow" |
--palette, -p |
Color gradient palette for lolcat cycle |
eyes |
String |
"oo" |
--eyes, -e |
Facial expression eye characters |
tongue |
String |
" " |
--tongue, -T |
Facial expression tongue characters |
fps |
u32 |
60 |
--fps, -f |
Frame rate (1โ120 FPS) |
duration |
u64 |
0 (or 3 fg) |
--duration, -d |
Playback duration in seconds (0 = infinite) |
thought_interval |
u64 |
60 |
--thought-interval |
Rotation interval for random fortune cookies |
split_scroll |
bool |
false |
--split-scroll |
Restrict scrolling region via DECSTBM |
background |
bool |
false |
--background, -b |
Render in non-blocking background overlay |
auto_render_on_prompt |
bool |
true |
init setting |
Trigger automatic render on new prompt |
default_shell |
String |
Auto-detected | init <SHELL> |
Default shell assumed for hook generation |
shell_attach_mode |
String |
"banner" |
--banner |
How the pasture renders relative to the prompt |
๐ For advanced config schema keys and migrations (JSON, YAML, TOML), see
docs/CONFIGURATION.md.
Forgum treats your terminal as a discrete 2D physics simulation canvas rather than a static text dumper.
Entities track continuous floating-point coordinates integrated with sub-millisecond precision:
To prevent the "moonwalk bug" (where leg characters cycle without moving forward), leg cadence is mathematically coupled to ground velocity:
Mountain horizons are generated per column
Peak count
-
Alpine Crests (
alpine,peaks): Power-pinched exponent$\gamma = 1.85$ sculpts sharp needles separated by broad glacial cirques. -
Mesas & Tablelands (
plateau): Hyperbolic tangent cliff saturation$H(x) \propto \tanh(3 \sin(\omega x))$ . -
Volcanic Cones (
volcano): Continuous Lorentzian cone$\frac{A}{1 + (x/\sigma)^2}$ with an inverted central caldera.
Midground trees and flora are spaced using Golden Ratio phyllotaxis dispersion (
Canopy height
To prevent background scenery from bleeding through ASCII mascots, the compositor evaluates scanline bounding hulls:
- Zero per-frame heap allocations in hot render loops.
- Framebuffers are pre-allocated on initialization or terminal resize.
- Under heavy load testing (8 concurrent simulation threads pushing 200 frames each), resident RAM measures ~13.06 MB, well under the 100 MB mandate.
Modeled after Neovim's :checkhealth, forgum checkhealth inspects 12 diagnostic probes across 7 core systems:
forgum checkhealth
# Machine-readable JSON for CI/CD:
forgum checkhealth --json# View recent events in formatted table:
forgum logs
# Filter by severity:
forgum logs --level warn
# Real-time tailing:
forgum logs -f
# Run automated diagnostic triage:
forgum diagnoseForgum guarantees absolute respect for your machine with two distinct uninstallation modes:
# Method 1: Soft Uninstall (Removes binary & hooks, PRESERVES ~/.config/forgum/):
forgum uninstall --method soft
# Method 2: Purge Uninstall (Completely wipes binary, hooks, configs, cache, logs):
forgum uninstall --method purge --yes
# Interactive Celestial De-Orbit Wizard:
forgum uninstall --tui| Document | Purpose & Contents |
|---|---|
docs/GUIDE.md |
Comprehensive CLI reference manual, subcommands, and flags |
docs/INSTALLATION.md |
Full installation guides across all 15 package managers and OS targets |
docs/CONFIGURATION.md |
In-depth configuration guide, formats (JSON/YAML/TOML), schema keys |
docs/SHELL-INTEGRATION.md |
Detailed shell hooks, startup integrations, and completion scripts |
docs/CHANNELS.md |
Release channels (stable, alpha, nightly, dev) and migration guides |
docs/HERD.md |
Complete animal catalog, biological coat morphs, and DNA profiles |
docs/WSL-GUIDE.md |
Windows Subsystem for Linux tips, display setup, and interop rules |
docs/FAQ.md |
Frequently asked questions, performance tuning, and troubleshooting |
docs/TELEMETRY.md |
Transparent motivation telemetry policy (zero personal data, 100% private) |
docs/RELEASE_AND_UPGRADE_AUDIT_MAP.md |
Core release engineering protocol and version parity checklist |
docs/audit/ |
Version-controlled audit reports and release completion certificates |
Forgum is free, open-source software licensed under the MIT License.
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Crafted with โค๏ธ and safe Rust by harish2222 (HKDevLoops) ยท For the terminal cow in all of us.
