Skip to main content

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

preview

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!

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.3.0.tar.gz (16.1 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.3.0-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: starlit_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 16.1 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.3.0.tar.gz
Algorithm Hash digest
SHA256 3f3090e3ebb3886e5f12c8113319bbc678458a9bb9fdaba3bed66be86acb1020
MD5 b76b429b5227d81c8362aa1641ba4efe
BLAKE2b-256 57f941ae3003ede961ce78955420d1b7f3d14bfbc3bd6ba23fda42ee2e9bcdf6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: starlit_cli-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.6 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f79c9c39bc8643b0df4781e285c0248e608f604dafe6ccb0b0a925554a62959
MD5 39214e80bc0c5731744b1754dae3e748
BLAKE2b-256 8d4ef7239f1820ed8dc83a80686a14bdf3503d4f2a3504a2f721fe5765fa7d04

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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