An animated system fetch you can work inside. The art stays pinned at the top of the screen while your prompt and command output scroll below it. Linux and macOS.
| cat-run | cat-tail | fox-run | dolphin-swim | blackhole |
![]() |
![]() |
![]() |
![]() |
![]() |
| butterfly | icosahedron | rabbit-run | mew | yin-yang |
![]() |
![]() |
![]() |
![]() |
![]() |
| tree | boxing | chicken-run | deer-run | horse-run |
![]() |
![]() |
![]() |
![]() |
![]() |
| squirrel-run | earth | saturn | ||
![]() |
![]() |
![]() |
Pick one with -a <name>, or set the default with --set <name>.
Arch Linux:
paru -S animfetch-bin # or animfetch-git to build from sourceAny Linux or macOS, prebuilt binary, no Rust needed:
curl -fsSL https://raw.githubusercontent.com/Andrew-Velox/animfetch/main/install.sh | shGoes to ~/.local/bin, or /usr/local/bin as root; ANIMFETCH_BINDIR
overrides. Tarballs are on the releases page. macOS support is
new; if something looks off there, please open an issue.
From source, with Rust 1.88 or newer:
cargo install --locked --git https://github.com/Andrew-Velox/animfetchanimfetch --pin # pin above your own shell, keep animating in background
animfetch --play # animate in place for a few seconds, then exit
animfetch --once # print one static frame and exit
animfetch # interactive: animfetch owns the prompt--pin is the one you want. It sets a scroll region so the top rows never
scroll, then detaches and paints them while your own shell runs underneath with
its history, completion and aliases intact. Undo with animfetch --unpin.
animfetch -a cat-tail # different animation, this run only
animfetch --style quad # half (default), quad, ramp, or raw
animfetch --width 40 # cap the art width (0 fills the screen)
animfetch --height 12 # both caps apply, aspect ratio is kept
animfetch --fps 20
animfetch --play -s 1.5 # shorter intro
animfetch --no-colorPiping the output, or NO_COLOR=1, drops to the static path automatically.
--style picks how the art is drawn. half and quad render it as solid
blocks and rescale to any terminal. ramp maps coverage onto the characters in
ramp. raw prints the art's own characters untouched, which suits hand-drawn
ASCII like earth; pair it with --width near the art's own width, since it
samples rather than averages.
~/.bashrc or ~/.zshrc:
[[ $- == *i* ]] && command -v animfetch >/dev/null && animfetch --pin~/.config/fish/config.fish:
status is-interactive; and type -q animfetch; and animfetch --pinThe guards keep it out of scripts and scp, which break on unexpected output.
Never use bare animfetch here, since it waits for input.
| Key | Action |
|---|---|
<text> Enter |
Run the command, output appears below the fetch |
Ctrl-C |
Interrupt a running command; at an idle prompt, quit |
Esc |
Quit |
Ctrl-D |
Quit, when the line is empty |
Ctrl-U |
Clear the line |
Ctrl-W |
Delete the last word |
cd and exit are handled internally, everything else runs under $SHELL -c.
No aliases, no history, no completion: a launcher with a prompt, not a shell.
Optional. Copy config.example.toml to
~/.config/animfetch/config.toml. Every key is optional, and a malformed file
falls back to defaults.
Set color_source = "palette" and the fetch follows your desktop theme, reading
a matugen, pywal or wallust palette. Under --pin it re-reads on change, so
retheming recolours the running animation. Try it with animfetch --once --palette.
Some animations are redrawn as ASCII from RunCat by kyome22, used under the Apache License 2.0.


















