Skip to main content

Ambient terminal weather effects โ€“ snow, rain, sun, and spring leaves

Project description

Climash ๐ŸŒจ

Ambient terminal weather effects โ€“ beautiful, non-intrusive animations that play in the background while you work.

PyPI Python 3.10+ License: MIT


What is Climash?

Climash renders subtle weather particle effects (snow โ„, rain ๐ŸŒง, sunlight โ˜€, spring leaves ๐Ÿ‚) at the top of your terminal using ANSI escape sequences, while leaving your shell prompt and all command output completely intact.

โ„   โ„     โ„  โ„      โ„   โ„   โ„   โ„
  โ„    โ„         โ„      โ„       โ„
โ„        โ„    โ„     โ„      โ„      โ„
user@machine:~$ ping google.com
PING google.com (142.250.80.46) 56(84) bytes of data.
64 bytes from lga34s32-in-f14.1e100.net: icmp_seq=1 ttl=115 time=12.4 ms

The animation runs in a background thread at ~12 FPS. It never clears the full screen and never overwrites your output.


Installation

Windows PowerShell

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .
climash

If the climash launcher is not on your PATH yet, use:

python -m climash.main

If you cloned the repo into a folder with spaces in the path, quote it:

python -m pip install -e "D:\DUK Study\Projects-Personal\climash"

In PowerShell, do not use start by itself. That is PowerShell's built-in Start-Process alias. Always call the app as climash start.

If PowerShell still tries to treat start like a shell command, use the stop-parsing operator:

climash --% start

Linux / macOS shell

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
climash

If the launcher is not available, use:

python -m climash.main

Install from PyPI

pip install climash

Or install from source on either platform:

git clone https://github.com/Vimal-Mudalagi/climash.git
cd climash
pip install -e .

If you want to verify the install on a fresh system, run:

climash --help
climash themes
climash start

If the climash command is not available yet, use the module form:

python -m climash.main --help
python -m climash.main themes
python -m climash.main start

Requirements: Python 3.10+ โ€” no mandatory third-party dependencies.


Quick Start

# Show banner and usage
climash

# Start with a random theme
climash start

# Start a specific theme
climash start snow
climash start rain
climash start sun
climash start spring

# Stop the animation (or just press Ctrl-C in the running terminal)
climash stop

# List all themes
climash themes

If the climash command is not available in your shell yet, run:

python -m climash.main

If you are in PowerShell and the launcher is missing, use:

python -m climash.main themes
python -m climash.main start

CLI Reference

climash

Display the welcome banner and usage instructions.

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘                        โ•‘
โ•‘        CLIMASH         โ•‘
โ•‘   terminal weather     โ•‘
โ•‘        vibes           โ•‘
โ•‘                        โ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

climash start [theme]

Start the animation. Optional theme argument overrides the configured default.

climash start          # uses configured default (or random)
climash start snow
climash start rain
climash start sun
climash start spring

On Windows PowerShell, use climash start rather than start.

If that still opens the PowerShell Start-Process prompt, run:

climash --% start

Press Ctrl-C to stop.


climash stop

Prints guidance on stopping the animation (Ctrl-C or kill <PID>).


climash themes

List all available themes:

Available themes:

  โ„  snow          Gently falling snowflakes
  ๐ŸŒง rain          Fast falling rain drops
  โ˜€  sun           Warm sunlight glow particles
  ๐Ÿ‚ spring        Drifting spring leaves

climash set <theme>

Persist a default theme to ~/.climash/config.json.

climash set snow
climash set rain
climash set sun
climash set spring
climash set random

climash random

Set the default theme to random (a different theme is chosen each session).

climash random

climash disable

Disable the automatic theme (sets default to "none").

climash disable

climash --help

Print full argparse help text.


Themes

Command Particles Movement Colours
snow โ„ โœฆ ยท Downward drift White / light blue
rain | . Fast vertical drop Blue
sun โ˜€ โœง * Gentle flicker / glow Yellow / gold
spring ๐Ÿ‚ ๐Ÿƒ โœฟ โ€ Diagonal drift Orange / green

Configuration

Climash stores a small JSON config file at ~/.climash/config.json:

{
  "default": "snow"
}

Possible values for "default": "snow", "rain", "sun", "spring", "random", "none".


Auto-Start

To launch Climash automatically every time you open a terminal, add the following to your shell startup file.

Bash (~/.bashrc):

climash start &

Zsh (~/.zshrc):

climash start &

Fish (~/.config/fish/config.fish):

climash start &

PowerShell ($PROFILE):

climash start

On Windows, climash start runs in the foreground. If you want a detached session, launch it from a separate terminal window or use a background job.

Tip: climash set snow (or any theme) before adding to your rc file so the same theme starts each session.


How It Works

  1. climash start launches an AnimationEngine in a daemon thread.
  2. The engine detects the terminal width dynamically.
  3. Each frame (~12 FPS):
    • Saves the current cursor position (ESC 7).
    • Moves to rows 1โ€“3 (the reserved animation region).
    • Renders updated particle positions.
    • Restores the cursor (ESC 8).
  4. When stopped, the reserved rows are cleared and the cursor is restored.

This means no full-screen clear, and your shell prompt stays exactly where it is.


Contributing

Contributions are welcome! See the project structure below and open a PR.

climash/
โ”œโ”€โ”€ climash/
โ”‚   โ”œโ”€โ”€ __init__.py    โ€“ package version
โ”‚   โ”œโ”€โ”€ main.py        โ€“ CLI (argparse)
โ”‚   โ”œโ”€โ”€ engine.py      โ€“ background animation thread
โ”‚   โ”œโ”€โ”€ animations.py  โ€“ particle logic & rendering
โ”‚   โ”œโ”€โ”€ themes.py      โ€“ theme definitions
โ”‚   โ””โ”€โ”€ config.py      โ€“ ~/.climash/config.json management
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ .gitignore

License

MIT ยฉ Climash Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

climash-0.1.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

climash-0.1.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file climash-0.1.1.tar.gz.

File metadata

  • Download URL: climash-0.1.1.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for climash-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e0578f8e4a4998f2a98769912b24a611cd29872479a3e4e090460f70350e2707
MD5 3202c10b3516d9a4dfebee124194096e
BLAKE2b-256 d559289781cc78397e2a2d6093720343aa4fd9098d753e654b5bc6a3a16bc70a

See more details on using hashes here.

Provenance

The following attestation bundles were made for climash-0.1.1.tar.gz:

Publisher: publish.yml on Vimal-Mudalagi/climash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file climash-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: climash-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for climash-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 105c8a086457078127396e43ddd2d545845668134beae45d7915171c8b71cd36
MD5 57342789ea3b76ddb30f087c2fd608c9
BLAKE2b-256 d2d01c10bf7e3423bdb8ac77e39727d951bd821d4e0461e5b8b9036c6f8661b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for climash-0.1.1-py3-none-any.whl:

Publisher: publish.yml on Vimal-Mudalagi/climash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page