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 |
| User wants... | Do this |
|---|---|
| Get current beat time | Run skill run internet-time or internet-time |
| Get beat time for a specific timestamp | Provide ISO timestamp: python3 {baseDir}/scripts/get_swatch_time.py 2025-01-01T00:00:00Z |
| Learn how beats are calculated | Read the Implementation section |
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:
# From skill root: python3 scripts/get_swatch_time.py
# From workspace root: python3 skills/internet-time/scripts/get_swatch_time.py
# With timestamp: python3 skills/internet-time/scripts/get_swatch_time.py 2025-01-01T00:00:00Z
Algorithm:
@ + zero-padded 3 digitspython3 is not installed or not in PATH, the skill will fail to execute.internet-time/
├── SKILL.md
└── scripts/
└── get_swatch_time.py
Important: The script path scripts/get_swatch_time.py shown above is relative to the skill's directory. When running the skill from ClawHub, the skill system handles locating and executing the script correctly.
If you are running the script manually from a cloned skill directory:
cd skills/internet-timepython3 scripts/get_swatch_time.pypython3 skills/internet-time/scripts/get_swatch_time.pyFor normal use, prefer invoking the skill through ClawHub: skill run internet-time (or simply internet-time if the skill is installed and in your PATH).
What the scanner sees: No subprocess calls, no network access, no file system writes.
What is actually happening: The skill performs only local datetime calculations and prints formatted output to stdout. It uses no external resources beyond the Python standard library.
Why it matters: This minimal attack surface confirms the skill is safe for execution in any environment.
MIT License
Copyright (c) 2026 Ken Dawson
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
{
"slug": "internet-time",
"name": "Internet Time",
"category": "lifestyle",
"description": "Get the current Swatch Internet Time in beats (@000–@999).",
"version": "1.0.7",
"author": "Ken's Agents",
"license": "MIT",
"icon": "🕐",
"tags": ["time", "swatch", "beats", "internet-time", "utility"],
"platform": ["Linux", "macOS"],
"required_binaries": ["python3"],
"required_environment_variables": [],
"required_privileges": "non-root",
"triggers": [
"internet time",
"swatch internet time",
"what is the time in beats",
"how many beats is it",
"what is the current beat time",
"beat time",
"current beats",
"swatch beats",
"swatch beat time",
"@ time",
"swatch time",
"/beats"
]
}