Install
openclaw skills install @kens-agents/internet-timeopenclaw skills install @kens-agents/internet-timeOutput ONLY the beat time formatted as bold @000 (three digits, zero-padded). No reasoning, no explanation, no inner monologue, no extra text. Just the bold beat time.
Returns the current time in Swatch Internet Time — a decimal time system where the day is divided into 1000 beats. Each beat = 1 minute 26.4 seconds. No time zones, no daylight saving.
| Binary | Purpose |
|---|---|
python3 | Run the beat calculation script |
Only output the beat time formatted as bold @000 (three digits, zero-padded).
| Beat | Output |
|---|---|
| 0 | @000 |
| 6 | @006 |
| 42 | @042 |
| 483 | @483 |
| 999 | @999 |
Never output @6, @42, or any unpadded form. When the day rolls over, both beat 0 and beat 1000 are represented as @000.
No extra text, no explanation — just the bold beat time.
internet-time
# **@483**
Or as a module:
from internet_time import get_swatch_time
print(get_swatch_time()) # @483
When a user asks for the time in a specific location (e.g., "What is the time in California in beats?"):
America/Los_Angeles)The script accepts an optional ISO timestamp argument for this purpose.
Single-file Python module at scripts/get_swatch_time.py:
#!/usr/bin/env python3
# get_swatch_time.py
# Single-file example that prints the current Swatch Internet Time to stdout
# Canonical definition: Biel = UTC+1 (fixed), no DST. One beat = 86.4 seconds.
from datetime import datetime, timezone, timedelta
import sys
def get_swatch_time(dt=None):
# Use provided datetime or current UTC time
if dt is None:
now = datetime.now(timezone.utc)
else:
# Accept naive or aware datetimes; normalize to UTC
if dt.tzinfo is None:
dt = dt.replace(tzinfo=timezone.utc)
now = dt.astimezone(timezone.utc)
utc_seconds = now.hour * 3600 + now.minute * 60 + now.second
biel_seconds = (utc_seconds + 3600) % 86400
beat = int(biel_seconds // 86.4) % 1000
return f"@{beat:03d}"
# Centibeat helper (safe rounding + wrap):
# raw = biel_seconds / 86.4
# rounded = round(raw * 100) / 100
# if rounded >= 1000:
# rounded -= 1000
# display = f"{rounded:.2f}"
if __name__ == '__main__':
# Optional: allow passing an ISO timestamp as first arg
if len(sys.argv) > 1:
t = datetime.fromisoformat(sys.argv[1].replace('Z', '+00:00'))
print(get_swatch_time(t))
else:
print(get_swatch_time())
# Examples:
# python3 get_swatch_time.py # prints current beat
# python3 get_swatch_time.py 2025-01-01T00:00:00Z # -> @041
Algorithm:
@ + zero-padded 3 digitsinternet-time/
├── SKILL.md
└── scripts/
└── get_swatch_time.py