Sleep Channel
Deterministic sleep tracker for Discord channel-based sleep logging.
Configuration
Set the following environment variables before use:
| Variable | Required | Description |
|---|---|---|
SLEEP_TIMEZONE |
Yes | IANA timezone string (e.g. America/Los_Angeles, Europe/Berlin) |
WORKSPACE |
No | Workspace root path. Defaults to $HOME/.openclaw/workspace |
Core Rules
- Treat the configured channel as the dedicated sleep channel.
- Prefer
scripts/tracker.pyfor all log mutations and rendering. - Never write
nowas a logged time. - Never derive event time from the model turn time.
- Use the source Discord message timestamp unless the user explicitly gives a different time.
- Convert displayed times to the user's local timezone (
SLEEP_TIMEZONE). - Never invent entries, dates, or file contents.
- If showing the sleep log, render from the real tracker/file output.
Commands
Add a new sleep event
For messages like: going to bed, still awake, fell asleep, awake now, resting, nap, back to sleep.
python3 scripts/tracker.py add \
"$MESSAGE_TEXT" \
"$CHANNEL_ID" \
"$MESSAGE_ID" \
"$AUTHOR_ID" \
"$TIMESTAMP_UTC"
Correct the latest entry
When the user is clearly correcting the previous sleep event.
python3 scripts/tracker.py correct-latest \
"$MESSAGE_TEXT" \
"$CHANNEL_ID" \
"$MESSAGE_ID" \
"$AUTHOR_ID" \
"$TIMESTAMP_UTC"
Delete the latest entry
When the user explicitly wants the latest sleep entry removed.
python3 scripts/tracker.py delete-latest
Render the sleep log
Display the current sleep log/summary.
python3 scripts/tracker.py render
Classification Hints
The tracker handles common phrases: fell asleep, awake now, got up, still awake, laying in bed, going to bed, trying to sleep, going back to sleep. Pass raw text to the tracker instead of re-parsing.
If Uncertain
Ask a short clarifying question only when intent is ambiguous:
- Correction vs new event?
- Delete the latest entry?
- Explicit time override?
Files
| File | Purpose |
|---|---|
scripts/tracker.py |
Canonical sleep tracker (self-contained, stdlib only) |
references/CHANNEL_RULES.md |
Channel setup guide (optional) |
references/README.md |
System documentation (optional) |