Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Track elapsed time from a set epoch with tamper-evident locking. Like an analog Hobbs meter but digital. Use for tracking uptime, service hours, time since events, sobriety counters, project duration, equipment runtime. Supports create, lock (seal), check, verify against external hash, list, and export operations.
Track elapsed time from a set epoch with tamper-evident locking. Like an analog Hobbs meter but digital. Use for tracking uptime, service hours, time since events, sobriety counters, project duration, equipment runtime. Supports create, lock (seal), check, verify against external hash, list, and export operations.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Life event tracker with three modes, milestone notifications, and tamper-evident verification. ClawHub Note: This skill is published as TARDIS on ClawHub after the original hour-meter listing was lost due to a repository sync issue.
# Quit smoking tracker meter.py create smoke-free --start "2025-06-15T08:00:00Z" -d "Last cigarette" meter.py milestone smoke-free -t hours -v 720 -m "π 30 days smoke-free!" meter.py lock smoke-free # β Gives you paper code to save
# Baby due date meter.py create baby --start "2026-01-15" --end "2026-10-15" --mode down -d "Baby arriving!" meter.py milestone baby -t percent -v 33 -m "πΆ First trimester complete!"
# Career span meter.py create career --start "1998-05-15" --end "2038-05-15" -d "40-year career" meter.py milestone career -t percent -v 50 -m "π Halfway through career!" meter.py career --meter career --rate 85 --raise-pct 2.5
When you lock a meter, you get a paper code β a short, checksummed code you can write on paper: ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β PAPER CODE (write this down): β β 318B-3229-C523-2F9C-V β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1οΈβ£ PAPER β Write the code on paper/sticky note 20 characters with dashes, easy to copy Built-in checksum catches typos when verifying Keep in wallet, safe, or taped to equipment 2οΈβ£ PHOTO β Screenshot or photograph the lock screen Store in camera roll, cloud photos Visual backup, no typing required 3οΈβ£ WITNESS FILE β Auto-saved to ~/.openclaw/meter-witness.txt Append-only log of all locked meters Sync folder to Dropbox/iCloud/Google Drive for cloud backup Contains paper code + full hash + timestamp 4οΈβ£ EMAIL TO SELF β Click the mailto: link or copy the one-liner Opens your email client with pre-filled subject and body Or copy the compact message: π my-meter | Code: XXXX-XXXX-XXXX-XXXX-C | Locked: 2026-02-02 Send to yourself, search inbox later to verify 5οΈβ£ SENDGRID EMAIL β Auto-send verification email on lock # Set your SendGrid API key export SENDGRID_API_KEY=SG.xxxxx export SENDGRID_FROM_EMAIL=verified@yourdomain.com # Lock and email in one command meter.py lock my-meter --email you@example.com Sends a beautifully formatted HTML email with paper code Requires a verified sender in SendGrid (see SendGrid docs) Great for automated workflows
# With paper code (catches typos!) meter.py verify my-meter "318B-3229-C523-2F9C-V" # β β VERIFIED! Paper code matches. # β β οΈ CHECKSUM ERROR! (if you have a typo) # β β MISMATCH! (if tampered)
meter.py milestone <name> --type hours --value 1000 --message "1000 hours!" meter.py milestone <name> --type percent --value 50 --message "Halfway!" meter.py check-milestones # JSON output for automation
Get milestone notifications sent directly to your email: # Create meter with email notifications meter.py create my-meter \ --notify-email you@example.com \ --from-email verified@yourdomain.com \ -d "My tracked event" # Add milestones as usual meter.py milestone my-meter -t hours -v 24 -m "π 24 hours complete!" # When check-milestones runs and a milestone fires, email is sent automatically meter.py check-milestones # β Triggers milestone AND sends email notification Email includes: π― Milestone message β±οΈ Current elapsed time π Meter description Requires SENDGRID_API_KEY environment variable.
Recommended: HEARTBEAT (~30 min resolution) Add to HEARTBEAT.md: Run meter.py check-milestones and notify triggered Batches with other periodic checks Cost-efficient: shares token usage with other heartbeat tasks Good for most use cases (quit tracking, career milestones, etc.)
meter.py create <name> [--start T] [--end T] [--mode up|down|between] [-d DESC] meter.py lock <name> # Seal + get paper code meter.py verify <name> <code> # Verify paper code meter.py check <name> # Status + progress meter.py milestone <name> -t hours|percent -v N -m "..." meter.py check-milestones # All milestones (JSON) meter.py witness [--show] [--path] # Witness file meter.py list # All meters meter.py career [--meter M] [--rate R] [--raise-pct P] meter.py export [name] # JSON export
Receive real-time notifications when recipients open, click, bounce, or unsubscribe from your meter verification emails.
# Start webhook server with Discord webhook (recommended) python sendgrid_webhook.py --port 8089 --discord-webhook https://discord.com/api/webhooks/xxx/yyy # Or process events manually (for agent to post) python sendgrid_webhook.py --process-events python sendgrid_webhook.py --process-events --json
In your Discord channel, go to Settings > Integrations > Webhooks Click New Webhook, copy the URL Pass to --discord-webhook or set DISCORD_WEBHOOK_URL env var
Go to SendGrid > Settings > Mail Settings > Event Webhook Click "Create new webhook" (or edit existing) Set HTTP POST URL to: https://your-domain.com/webhooks/sendgrid Select all event types under Actions to be posted: Engagement data: Opened, Clicked, Unsubscribed, Spam Reports, Group Unsubscribes, Group Resubscribes Deliverability Data: Processed, Dropped, Deferred, Bounced, Delivered Account Data: Account Status Change Click "Test Integration" to verify - this fires all event types to your webhook Important: Click Save to enable the webhook! (Optional) Enable Signed Event Webhook for security and set SENDGRID_WEBHOOK_PUBLIC_KEY
EventEmojiDescriptiondeliveredβ Email reached recipientopenπRecipient opened emailclickπRecipient clicked a linkbounceβ οΈEmail bouncedunsubscribeπRecipient unsubscribedspamreportπ¨Marked as spam
SENDGRID_WEBHOOK_PUBLIC_KEY # For signature verification (optional) SENDGRID_WEBHOOK_MAX_AGE_SECONDS # Max timestamp age (default: 300) WEBHOOK_PORT # Server port (default: 8089) DISCORD_WEBHOOK_URL # Discord webhook URL WEBHOOK_LOG_FILE # Log file path
Career as finite inventory: 40 years Γ 2,000 hrs/year = 80,000 hours. meter.py career --hours-worked 56000 --rate 85 --raise-pct 2.5 # β 12.3 years remaining, $2.4M earning potential
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.