Each evening, harvest the day's commit-whisper messages and recent commits across all active projects into a single hand-friendly markdown 'Tomorrow's Threads' brief synced to the TCL tablet. Ethan wakes up, picks up the e-ink tablet with coffee, and sees yesterday's loose ends + suggested next moves per project — without opening a laptop.
Create ~/bin/tomorrow-threads-brief: (1) for each dir in ~/.claude/projects/active (or scan `find ~ -maxdepth 2 -name CLAUDE.md`), run `git log --since=midnight --format='%h %s'` and tail commit-whisper output from ~/.claude/cache/commit-whisper/*.log; (2) feed combined text to local Ollama qwen2.5 on desktop with prompt 'Group by project, list 1-2 open threads + a suggested first action for tomorrow, terse e-ink friendly markdown'; (3) write to ~/Tablet/briefs/$(date +%F)-threads.md so existing tablet-sync picks it up; (4) cron at 21:30 daily via safe-append. ~70 lines bash + curl to Ollama.
**Summary**
- **Created `~/bin/tomorrow-threads-brief`** (executable, ~75 lines): scans `find ~ -maxdepth 2 -name CLAUDE.md` for active projects, harvests today's commits via `git log --since=midnight` plus any tail of `~/.claude/cache/commit-whisper/<proj>.log`, feeds combined material to local Ollama (`qwen2.5:3b`) for a terse e-ink-friendly markdown summary grouped by project with 1–2 open threads + a checkbox first-action per project. Writes to `~/Tablet/briefs/$(date +%F)-threads.md` so existing tablet-sync picks it up.
- **Hostname-aware Ollama call:** localhost on desktop, SSH-shell-out on laptop (per the laptop-can't-reach-Ollama rule).
- **Graceful fallbacks:** empty-day brief if no commits, raw-harvest fallback if LLM is unreachable.
- **Cron installed:** `30 21 * * *` via safe-append (no overwrite), logging to `~/.claude/cache/tomorrow-threads-brief.log`.
- **Verified:** dry-run with widened `--since=72.hours` produced a clean grouped brief (legacy-map-builder, joyos-labs, relationships) via Ollama; today's real run produced the empty-day variant correctly.