{"id":27954317,"url":"https://github.com/ashish0kumar/stormy","last_synced_at":"2026-01-21T13:25:18.527Z","repository":{"id":285269658,"uuid":"957567586","full_name":"ashish0kumar/stormy","owner":"ashish0kumar","description":"minimal neofetch-style weather cli","archived":false,"fork":false,"pushed_at":"2025-11-24T18:34:05.000Z","size":788,"stargazers_count":685,"open_issues_count":7,"forks_count":23,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-19T22:37:40.866Z","etag":null,"topics":["ascii","cli","go","weather","weather-cli"],"latest_commit_sha":null,"homepage":"https://terminaltrove.com/stormy","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashish0kumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"ashish0kumar"}},"created_at":"2025-03-30T17:24:54.000Z","updated_at":"2026-01-17T02:20:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"af40752c-ab27-44c1-b8cf-b5d3bab39cd6","html_url":"https://github.com/ashish0kumar/stormy","commit_stats":null,"previous_names":["ashish0kumar/stormy"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/ashish0kumar/stormy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish0kumar%2Fstormy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish0kumar%2Fstormy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish0kumar%2Fstormy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish0kumar%2Fstormy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashish0kumar","download_url":"https://codeload.github.com/ashish0kumar/stormy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashish0kumar%2Fstormy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ascii","cli","go","weather","weather-cli"],"created_at":"2025-05-07T17:24:46.479Z","updated_at":"2026-01-21T13:25:18.522Z","avatar_url":"https://github.com/ashish0kumar.png","language":"Go","funding_links":["https://github.com/sponsors/ashish0kumar"],"categories":["Go"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003estormy\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\nMinimal, customizable, and neofetch-like weather CLI inspired by\n\u003ca href=\"https://github.com/liveslol/rainy\"\u003erainy\u003c/a\u003e, written in Go\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./assets/ss.png\" alt=\"screenshot\" width=\"70%\"\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eFeatured on\u003c/i\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://terminaltrove.com/stormy/\"\u003e\n    \u003cimg width=\"25%\" alt=\"Terminal Trove logo\" src=\"https://github.com/user-attachments/assets/f85b1470-a574-4bc2-b002-4e6dddb9e277\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Motivation\n\nstormy’s idea, structure, and design are based off\n[rainy](https://github.com/liveslol/rainy), but it’s written in Go instead of\nPython.\n\nI built this because I really liked the concept of a Neofetch-style weather CLI.\nThe simplicity and visual appeal of _rainy_ instantly clicked with me, and I\nwanted to recreate that experience in Go — partly for my own satisfaction and\npartly because I enjoy building clean CLI tools.\n\n## Features\n\n- Multiple weather providers: OpenMeteo (default, no API key required) and OpenWeatherMap\n- Current weather conditions with ASCII art representation\n- Temperature, wind, humidity, and precipitation information\n- Customizable units (metric, imperial, standard)\n- Local configuration file\n- Color support for terminals\n- Compact display mode\n- Works out of the box with OpenMeteo\n\n## Installation\n\n### Nix\n\n#### One-time run\n\n```bash\nnix run github:ashish0kumar/stormy -- --city \"London\"\n```\n\n#### Permanent installation\n\n```bash\nnix profile install github:ashish0kumar/stormy#stormy\n```\n\n#### Add to your system configuration (using flakes)\n\n```bash\n# In your flake.nix\ninputs.stormy.url = \"github:ashish0kumar/stormy\";\n\n# In your system or home-manager configuration\nenvironment.systemPackages = [ inputs.stormy.packages.x86_64-linux.stormy ];\n```\n\n### Via `go install`\n\n```bash\ngo install github.com/ashish0kumar/stormy@latest\n```\n\n### Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/ashish0kumar/stormy.git\ncd stormy\n\n# Build the application\ngo build\n\n# Move to a directory in your PATH\nsudo mv stormy /usr/local/bin/\n```\n\n## Configuration\n\n`stormy` follows the XDG Base Directory Specification for configuration files and will create a default configuration\nfile on first run:\n\n- Linux/macOS: `~/.config/stormy/stormy.toml`\n- Windows: `%APPDATA%\\stormy\\stormy.toml`\n- Custom: Set `XDG_CONFIG_HOME` environment variable to override the default location\n\n### Configuration Options\n\n- `provider`: Weather data provider (\"`OpenMeteo`\" or \"`OpenWeatherMap`\"). Defaults to \"`OpenMeteo`\".\n- `api_key`: Your OpenWeatherMap API key.\n- `city`: The city for which to fetch weather data.\n- `units`: Units for temperature and wind speed (`metric`, `imperial` or\n  `standard`).\n- `showcityname`: Whether to display the city name (`true` or `false`).\n- `use_colors`: Enables and disables text colors (`true` or `false`).\n- `live_mode`: Enables the \"live\" mode — long-running mode with frequent polling, never stops (`true` or `false`).\n- `compact`: Use a more compact display format (`true` or `false`).\n\n### Example Config\n\n#### Default Configuration (OpenMeteo — No API Key Required)\n\n```toml\nprovider = \"OpenMeteo\"\napi_key = \"\"\ncity = \"New Delhi\"\nunits = \"metric\"\nshowcityname = false\nuse_colors = false\nlive_mode = false\ncompact = false\n```\n\n#### OpenWeatherMap Configuration (Requires an API key from [OpenWeatherMap](https://openweathermap.org/api))\n\n```toml\nprovider = \"OpenWeatherMap\"\napi_key = \"your_openweathermap_api_key\"\ncity = \"New Delhi\"\nunits = \"metric\"\nshowcityname = false\nuse_colors = false\nlive_mode = false\ncompact = false\n```\n\n## Usage\n\n```bash\n# Basic usage\nstormy\n\n# Specify city via command line\nstormy --city \"New York\"\n\n# Use imperial units\nstormy --units imperial\n\n# Use compact display mode\nstormy --compact\n\n# Show version\nstormy --version\n\n# Show help\nstormy --help\n```\n\n## Display Examples\n\n| ![Base](./assets/base.png)       | ![Colored](./assets/colored.png)    |\n|----------------------------------|-------------------------------------|\n| ![Minimal](./assets/minimal.png) | ![1](./assets/1.png) |\n| ![4](./assets/4.png)             | ![3](./assets/3.png)                |\n\n## Acknowledgements\n\n- [OpenWeatherMap](https://openweathermap.org/) and [Open-Meteo](https://open-meteo.com/) for providing weather data\n- [rainy](https://github.com/liveslol/rainy) for the overall idea, structure, and\n  design of the project\n- [wttr.in](https://github.com/chubin/wttr.in?tab=readme-ov-file) for the ASCII\n  weather icons\n\n## Contributing\n\nContributions 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.\n\n## Contributors\n\n\u003ca href=\"https://github.com/ashish0kumar/stormy/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=ashish0kumar/stormy\" /\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true\" alt=\"catppuccin\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003e\u003ccode\u003e\u0026copy 2025-present \u003ca href=\"https://github.com/ashish0kumar\"\u003eAshish Kumar\u003c/a\u003e\u003c/code\u003e\u003c/i\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ashish0kumar/stormy/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/ashish0kumar/stormy?style=for-the-badge\u0026color=CBA6F7\u0026logoColor=cdd6f4\u0026labelColor=302D41\" alt=\"LICENSE\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish0kumar%2Fstormy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashish0kumar%2Fstormy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish0kumar%2Fstormy/lists"}