Skip to main content

A minimal, cute and customizable weather cli

Project description

starlit

A minimal and customizable weather CLI, written in Python 🐍

preview Powered by the OpenWeatherMap API and styled with the Python rich library + terminal text effects ✨

GitHub Repo stars GitHub Issues or Pull Requests GitHub Release GitHub repo size

Requirements

  • Python 3.13+
  • Poetry or pip package manager
  • An OpenWeatherMap API key
  • UTF-8 terminal with 256 colors and nerd font

Installation

Installing starlit is quick and easy. The built-in setup command guides you through configuration.

Option 1: Install with pipx

The easiest way to install starlit is via pipx:

pipx install starlit-cli

Then set up your configuration:

starlit --setup # creates ~/.config/starlit/.env
starlit --edit  # opens .env file (add your api key here) 

To upgrade to the latest version:

pipx upgrade starlit-cli

Option 2: Install from source

For local development or contributing:

  1. Clone this repository
git clone https://github.com/ashuhlee/starlit.git
cd starlit
  1. Create the virtual environment
# macOS / Linux / Windows
python -m venv .venv

Activate the virtual environment:

source .venv/bin/activate # macOS / Linux
.venv\Scripts\Activate    # Windows (Powershell)
  1. Install in editable mode

Some packages are required for this project. They will automatically be installed if you run:

pip install -e .
  1. Set up your configuration

Generates a configuration file from the example template and open the file:

starlit --setup
starlit --edit

To update your installation:

git pull origin main
pip install -e .

Get your OpenWeatherMap API key and paste it into the .env file under API_KEY=

Configuration

starlit creates a default configuration file when you run starlit --setup. The .env file stores your API key, default city and display preferences.

  • Linux/macOS: ~/.config/starlit/.env
  • Windows: C:\users\username\.config\starlit\.env
Setting Description
API_KEY Your OpenWeatherMap API key
DEFAULT_CITY The city shown when you don’t pass one
UNITS Options: metric (°C) or imperial (°F)
DISABLE_ANIMATION Turns off all animations in starlit
SHOW_DT Shows local date and time
SHOW_ASCII Shows the little ASCII art to the left
SHOW_MSG Adds a cute message at the bottom
SHOW_EMOJI Shows emojis in your terminal
EMOJI_TYPE Choose a cute emoji for messages

Customize colors

You can also set your own colors for the gradient title and message labels. Use six-digit RGB hex codes (no # needed):

Setting Description Example
COLOR_1 Gradient color stop 1 color1 5D63FF
COLOR_2 Gradient color stop 2 color1 F7A4F4
LABEL_COLOR Message label color color1 5CE7F9

Usage

# basic usage
starlit

# specify city via command line
starlit seattle

# start interactive mode
starlit --interactive 

# opens the .env file in your default editor
starlit --edit

# shows config in .env file (if found)
starlit --config

# shows contents of .env file (if found)
starlit --config --show-full

# show version
starlit --version

# show help
starlit --help

Usage examples

preview-1 preview-2
preview-3 preview-4
preview-5 preview-6

What's next

  • Different Modes: Add live updates or full forecast modes
  • Interactive Mode+: Add a full command line interface when using starlit -i
  • Color Themes: Support for .json theme files so you can easily switch between color palettes
  • Multi-language Support: Option to view weather info in different languages

Tech stack

About this project

I built this fun little project as a way to learn more about APIs and creating colorful terminal apps. It grew into a CLI project I'm proud of!

Thank you to charm for the color palette and design interface inspo 🎨 and to wego for the ASCII icons

⭐ If you like this project, please consider giving it a star!

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

starlit_cli-0.2.3.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.

starlit_cli-0.2.3-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file starlit_cli-0.2.3.tar.gz.

File metadata

  • Download URL: starlit_cli-0.2.3.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.5 Darwin/24.6.0

File hashes

Hashes for starlit_cli-0.2.3.tar.gz
Algorithm Hash digest
SHA256 415af60487236f69dfa02721ff02b83fc43b0a53e79c1e8422cb23fea171a1b6
MD5 0de923414ab0deb22edf8b2a2bafe703
BLAKE2b-256 1a7601f96cd9f600e482d87442bb332b48bde104f7c99c132456e5db657cb499

See more details on using hashes here.

File details

Details for the file starlit_cli-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: starlit_cli-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.5 Darwin/24.6.0

File hashes

Hashes for starlit_cli-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fc722a9893468d6c678dbf0823b558d36f2d9f966a88e5c49ab6e72c90d7d59d
MD5 34ca7a9d4cbd8173ce0c4c1c2d7d7239
BLAKE2b-256 a093c2b6f9b8b082a7dd9cc17c071ee65b20e452b1cbc1a7c6ae5e6108bfa978

See more details on using hashes here.

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