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.
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
climash startlaunches anAnimationEnginein a daemon thread.- The engine detects the terminal width dynamically.
- 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).
- Saves the current cursor position (
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0578f8e4a4998f2a98769912b24a611cd29872479a3e4e090460f70350e2707
|
|
| MD5 |
3202c10b3516d9a4dfebee124194096e
|
|
| BLAKE2b-256 |
d559289781cc78397e2a2d6093720343aa4fd9098d753e654b5bc6a3a16bc70a
|
Provenance
The following attestation bundles were made for climash-0.1.1.tar.gz:
Publisher:
publish.yml on Vimal-Mudalagi/climash
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
climash-0.1.1.tar.gz -
Subject digest:
e0578f8e4a4998f2a98769912b24a611cd29872479a3e4e090460f70350e2707 - Sigstore transparency entry: 2143320215
- Sigstore integration time:
-
Permalink:
Vimal-Mudalagi/climash@d8301600b32e58bce6d53e70cb7677c3a14cde05 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Vimal-Mudalagi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d8301600b32e58bce6d53e70cb7677c3a14cde05 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
105c8a086457078127396e43ddd2d545845668134beae45d7915171c8b71cd36
|
|
| MD5 |
57342789ea3b76ddb30f087c2fd608c9
|
|
| BLAKE2b-256 |
d2d01c10bf7e3423bdb8ac77e39727d951bd821d4e0461e5b8b9036c6f8661b1
|
Provenance
The following attestation bundles were made for climash-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on Vimal-Mudalagi/climash
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
climash-0.1.1-py3-none-any.whl -
Subject digest:
105c8a086457078127396e43ddd2d545845668134beae45d7915171c8b71cd36 - Sigstore transparency entry: 2143320223
- Sigstore integration time:
-
Permalink:
Vimal-Mudalagi/climash@d8301600b32e58bce6d53e70cb7677c3a14cde05 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Vimal-Mudalagi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d8301600b32e58bce6d53e70cb7677c3a14cde05 -
Trigger Event:
push
-
Statement type: