a command-line program for tracking sunrise and sunset times (Mac / Linux / Windows)
It tells you the sunrise, sunset, solar noon times and day length. It also projects these changes over the next ten days.
daylight uses your IP-based location and timezone to tailor the results to your geometry. It works in (ant)arctic
locations, and you can override the IP location if you're travelling / on a VPN.
I love the sunlight and dread the long, dark winter evenings of Northern Europe. I often look up sunrise / sunset times and count off the days until the dreary darkness is gone.
(IP lookup is powered by https://ipinfo.io. They provide a good service so please don't spam requests.)
Daylight is provided under the GPL license.
# Add my tap (formula repository)
brew tap jbreckmckye/formulae
# Install daylight
brew install daylight
# Check it
daylight --helpPick up the executable for your system in the releases.
Unzip the package and put the program in a folder that's within your system PATH.
# Today's data for your IP location
daylight
# Override the IP location and timezone (allows offline operation)
daylight --latitude="-33.92" --longitude="18.42" --timezone="Africa/Johannesburg"
# Short summary of the data
daylight --short
# JSON version of summary
daylight --json
# Data for another date
daylight --date="2025-12-31"
# Disable the colour output
NO_COLOR=true daylight
# Show help
daylight --helpDaylight will attempt to adapt to your terminal background colour (dark vs light) but this might not work well for your
colour scheme. In this case you can use NO_COLOR to disable any colours
$ NO_COLOR=true daylight
Today's daylight
════════════════════════════════════════════════════════════════════════════
Rises Noon: Sets:
05:41 12:58 20:14
Day length
════════════════════════════════════════════════════════════════════════════
Daylight for: versus yesterday:
14 hrs, 32 mins +3m 39s
.................R-------------------------------------------S...........
Ten day projection
════════════════════════════════════════════════════════════════════════════
┌────────────────┬───────────┬───────────┬─────────────────────┐
│ DATE │ SUNRISE │ SUNSET │ LENGTH │
├────────────────┼───────────┼───────────┼─────────────────────┤
│ Sun Apr 27 │ 05:39 │ 20:16 │ 14 hrs, 36 mins │
│ Mon Apr 28 │ 05:37 │ 20:17 │ 14 hrs, 40 mins │
│ Tue Apr 29 │ 05:35 │ 20:19 │ 14 hrs, 43 mins │
│ Wed Apr 30 │ 05:33 │ 20:21 │ 14 hrs, 47 mins │
│ Thu May 01 │ 05:32 │ 20:22 │ 14 hrs, 50 mins │
│ Fri May 02 │ 05:30 │ 20:24 │ 14 hrs, 54 mins │
│ Sat May 03 │ 05:28 │ 20:26 │ 14 hrs, 57 mins │
│ Sun May 04 │ 05:26 │ 20:27 │ 15 hrs, 1 mins │
│ Mon May 05 │ 05:24 │ 20:29 │ 15 hrs, 4 mins │
│ Tue May 06 │ 05:23 │ 20:31 │ 15 hrs, 8 mins │
└────────────────┴───────────┴───────────┴─────────────────────┘
Your stats
════════════════════════════════════════════════════════════════════════════
LOCATION Latitude 51.51, Longitude -0.1257 IP ADDRESS 146.90.4.96
https://github.com/jbreckmckye/daylight
There is also a short summary mode
$ daylight --short
Rises: 05:41
Sets: 20:14
Length: 14 hrs, 32 mins
Change: +3m 39s
This project comes from pretty early in my journey to learn Go. It's always possible there are bugs. Feel free to raise issues.
The terminal UI library is lipgloss.
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢠⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠸⣷⣦⣀⠀⠀⠀⠀⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣦⠀⠠⠾⠿⣿⣷⠀⠀⠀⠀⠀⣠⣤⣄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠟⢉⣠⣤⣶⡆⠀⣠⣈⠀⢀⣠⣴⣿⣿⠋⠀⠀⠀⠀
⠀⢀⡀⢀⣀⣀⣠⣤⡄⢀⣀⡘⣿⣿⣿⣷⣼⣿⣿⣷⡄⠹⣿⡿⠁⠀⠀⠀⠀⠀
⠀⠀⠻⠿⢿⣿⣿⣿⠁⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣁⠀⠋⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⠻⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢰⣄⣀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⡀⠀⣴⣿⣿⣿⣿⣿⣿⣿⡿⢿⡿⠀⣾⣿⣿⣿⣿⣶⡄⠀
⠀⠀⠀⠀⠀⢀⣾⣿⣷⡀⠻⣿⣿⡿⠻⣿⣿⣿⣿⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⣾⡿⠟⠉⠉⠀⢀⡉⠁⠀⠛⠛⢉⣠⣴⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠉⠉⠀⠀⠀⠀⠀⢸⣿⣿⡿⠉⠀⠙⠿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⠁⠀⠀⠀⠀⠀⠙⠿⣷⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀ ⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
