ashish0kumar
stormy
Go

minimal neofetch-style weather cli

Last updated Jul 8, 2026
726
Stars
23
Forks
5
Issues
0
Stars/day
Attention Score
57
Language breakdown
Go 96.9%
Nix 3.1%
Files click to expand
README

stormy

Minimal, customizable, and neofetch-like weather CLI inspired by rainy, written in Go

screenshot


Featured on

Terminal Trove logo


Motivation

stormy’s idea, structure, and design are based off rainy, but it’s written in Go instead of Python.

I built this because I really liked the concept of a Neofetch-style weather CLI. The simplicity and visual appeal of rainy instantly clicked with me, and I wanted to recreate that experience in Go — partly for my own satisfaction and partly because I enjoy building clean CLI tools.

Features

  • Multiple weather providers: OpenMeteo (default, no API key required) and OpenWeatherMap
  • Current weather conditions with ASCII art representation
  • Temperature, wind, humidity, and precipitation information
  • Customizable units (metric, imperial, standard)
  • Local configuration file
  • Color support for terminals
  • Compact display mode
  • Works out of the box with OpenMeteo

Installation

Packaging status

AUR

yay -S stormy

FreeBSD

pkg install stormy

Homebrew

brew install stormy

Nix

nix profile install github:ashish0kumar/stormy#stormy

Via go install

go install github.com/ashish0kumar/stormy@latest

Build from Source

# Clone the repository
git clone https://github.com/ashish0kumar/stormy.git
cd stormy

Build the application

go build

Move to a directory in your PATH

sudo mv stormy /usr/local/bin/

Configuration

stormy follows the XDG Base Directory Specification for configuration files and will create a default configuration file on first run:

  • Linux/macOS: ~/.config/stormy/stormy.toml
  • Windows: %APPDATA%\stormy\stormy.toml
  • Custom: Set XDGCONFIGHOME environment variable to override the default location

Configuration Options

  • provider: Weather data provider ("OpenMeteo" or "OpenWeatherMap"). Defaults to "OpenMeteo".
  • api_key: Your OpenWeatherMap API key.
  • city: The city for which to fetch weather data.
  • units: Units for temperature and wind speed (metric, imperial or
standard).
  • showcityname: Whether to display the city name (true or false).
  • use_colors: Enables and disables text colors (true or false).
  • live_mode: Enables the "live" mode — long-running mode with frequent polling, never stops (true or false).
  • compact: Use a more compact display format (true or false).

Example Config

Default Configuration (OpenMeteo — No API Key Required)

provider = "OpenMeteo"
api_key = ""
city = "New Delhi"
units = "metric"
showcityname = false
use_colors = false
live_mode = false
compact = false

OpenWeatherMap Configuration (Requires an API key from OpenWeatherMap)

provider = "OpenWeatherMap"
apikey = "youropenweathermapapikey"
city = "New Delhi"
units = "metric"
showcityname = false
use_colors = false
live_mode = false
compact = false

Usage

# Basic usage
stormy

Specify city via command line

stormy --city "New York"

Use imperial units

stormy --units imperial

Use compact display mode

stormy --compact

Show version

stormy --version

Show help

stormy --help

Display Examples

| Base | Colored | |----------------------------------|-------------------------------------| | Minimal | 1 | | 4 | 3 |


Acknowledgements

design of the project weather icons

Contributing

Contributions are always welcome! If you have ideas, bug reports, or want to submit code, please feel free to open an issue or a pull request.

Contributors



catppuccin

© 2025-present Ashish Kumar

LICENSE  

🔗 More in this category

© 2026 GitRepoTrend · ashish0kumar/stormy · Updated daily from GitHub