timer
Set timers and alarms. When a background timer completes, you receive a System notification - respond with the reminder message (NOT HEARTBEAT_OK) to notify the user.
Best use case
timer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Set timers and alarms. When a background timer completes, you receive a System notification - respond with the reminder message (NOT HEARTBEAT_OK) to notify the user.
Teams using timer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/timer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How timer Compares
| Feature / Agent | timer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Set timers and alarms. When a background timer completes, you receive a System notification - respond with the reminder message (NOT HEARTBEAT_OK) to notify the user.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Timer
Set timers that run in the background. When they complete, you will receive a system notification and MUST respond with the reminder to notify the user.
## Quick Start
```bash
# Set a 5-minute timer
bash background:true command:"node {baseDir}/timer.js 5m"
# Set a timer with a label
bash background:true command:"node {baseDir}/timer.js 10m 'Check the oven'"
# Set a timer in seconds
bash background:true command:"node {baseDir}/timer.js 30s"
# Set a timer in hours
bash background:true command:"node {baseDir}/timer.js 1h"
```
## Time Formats
| Format | Description | Example |
|--------|-------------|---------|
| `Ns` | N seconds | `30s`, `90s` |
| `Nm` | N minutes | `5m`, `15m` |
| `Nh` | N hours | `1h`, `2h` |
| `N` | N minutes (default) | `5` = 5 minutes |
| `MM:SS` | Minutes and seconds | `5:30` |
| `HH:MM:SS` | Hours, minutes, seconds | `1:30:00` |
## ⚠️ CRITICAL: Timer Completion Notification
When a timer completes, you receive a `System:` message like:
```
System: [2026-01-24 21:27:13] Exec completed (swift-me, code 0) :: ⏰ Timer complete! Check the pasta!
```
### ❌ WRONG - Do NOT respond like this:
```
HEARTBEAT_OK
🎉 Your timer is complete! Check the pasta!
```
This response will be **filtered and NOT delivered** to the user!
### ✅ CORRECT - Respond like this:
```
⏰ Timer Alert! Your timer is complete: Check the pasta!
```
Start directly with the notification message. Do NOT include HEARTBEAT_OK.
**Why?** Responses starting with `HEARTBEAT_OK` followed by less than 300 characters are automatically suppressed and never reach the user. Your timer notification will be lost!
## Examples
### Cooking Timer
```bash
bash background:true command:"node {baseDir}/timer.js 12m 'Pasta is ready!'"
```
When complete, respond: "⏰ Your 12-minute timer is up! Pasta is ready!"
### Quick Reminder
```bash
bash background:true command:"node {baseDir}/timer.js 2m 'Take a break'"
```
### Pomodoro Session
```bash
# Work session
bash background:true command:"node {baseDir}/timer.js 25m 'Pomodoro done - time for a break!'"
# After user is notified...
# Break
bash background:true command:"node {baseDir}/timer.js 5m 'Break over - back to work!'"
```
### Multiple Timers
```bash
bash background:true command:"node {baseDir}/timer.js 5m 'Tea is ready'"
bash background:true command:"node {baseDir}/timer.js 10m 'Eggs are done'"
bash background:true command:"node {baseDir}/timer.js 30m 'Meeting starts soon'"
```
## Managing Timers
```bash
# List all running timers
process action:list
# Check specific timer status
process action:poll sessionId:XXX
# View timer output
process action:log sessionId:XXX
# Cancel a timer
process action:kill sessionId:XXX
```
## Notes
- Timers run as background processes with unique sessionIds
- Completed timers exit with code 0
- Cancelled timers (via kill) exit with code 130
- Sound notification plays on macOS when timer completes (if `afplay` available)
- Progress is logged every second (short timers) or every 10 seconds (long timers)Related Skills
paylock
Non-custodial SOL escrow for AI agent deals.
agent-reputation
summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.
Telecom Agent Skill
Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.
OpenClaw-Finnhub
OpenClaw skill for real-time stock quote, and financials via Finnhub API.
```markdown
# OpenClaw-Last.fm
security-operator
Runtime security guardrails for OpenClaw agents.
operator-humanizer
Transform AI-generated text into authentic human writing.
kit-email-operator
**AI-powered email marketing for Kit (ConvertKit)**.
agora
Trade prediction markets on Agora — the prediction market exclusively for AI agents. Register, browse markets, trade YES/NO, create markets, earn reputation via Brier scores.
surf-check
Surf forecast decision engine.
jinko-flight-search
Search flights and discover travel destinations using the Jinko MCP server. Provides two core capabilities: (1) Destination discovery — find where to travel based on criteria like budget, climate, or activities when the user has no specific destination in mind, and (2) Specific flight search — compare flights between two known cities/airports with flexible dates, cabin classes, and budget filters. Use this skill when the user wants to: search for flights, find cheap flights, discover travel destinations, compare flight prices, plan a trip, find deals from a specific city, or explore where to go. Triggers on any flight-booking, travel-planning, or destination-discovery request. Requires the Jinko MCP server connected at https://mcp.gojinko.com.
mlx-whisper
Local speech-to-text with MLX Whisper (Apple Silicon optimized, no API key).