Back to Skills
    šŸ¦ž

    timer

    Set timers and alarms.

    By @hisxo
    View on GitHub
    SKILL.md
    ---
    name: timer
    description: 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.
    metadata: {"clawdbot":{"emoji":"ā±ļø","requires":{"bins":["node"]}}}
    ---
    
    # 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)