Daylight Left: an offline sunset clock that tells you where to go before dark
说明与用途
Daylight Left 是一款离线命令行工具,计算剩余日照时间,挑选符合用户时间限制的附近地点,并输出简洁的离开时间,使用本地 LLM 生成文字并通过检查防止时间被捏造。
问题
People miss the window to go outside before sunset because they don't know how much daylight remains and which nearby spots fit their time constraints.
结果
Daylight Left reduces missed outdoor opportunities by providing an offline, accurate, and privacy‑preserving nudge that tells users exactly when to leave and where to go, with a guard against LLM hallucinations.
工作流
- 1. User creates a plain‑text file listing spots with distance and desired duration.
- 2. User runs
daylight-leftwith latitude, longitude, timezone, spots file, and a local LLM model. - 3. The tool computes sunrise, sunset, and usable light using NOAA solar equations.
- 4. It selects the first spot that fits the remaining light and travel constraints.
- 5. The LLM generates two warm sentences based on the facts.
- 6. A guard extracts any times from the LLM output and rejects the text if any time is not in the facts, otherwise prints the fixed line.
- 7. The user receives a short message telling them when to leave and which spot to go to.
证据
Daylight Left is a small command‑line tool that answers one question: how much light do I have, and which of my places still fits?
I run Gemma 3 1B as a 4‑bit GGUF (806 MB) through llama.cpp and llama‑cpp‑python, on CPU.
The first time I ran it, Gemma said the trail was a great idea and that we'd "be at Riverside trail loop by 10:00 AM." At 4:30 PM. Later, after sunset, it suggested leaving "around 8 AM tomorrow," a time it made up.
A card that tells you the wrong time to leave is worse than no card at all, so every response now goes through a small check: pull every clock time out of the model's text, and if any of them isn't in the facts it was given, throw the text away and print the fixed line instead.
After the one‑time model download it needs no internet. Sunset maths doesn't need a server, and neither does a two‑line pep talk.
- 记录日期: 2026-10-05T19:55:53.347Z