hermes-agent/skills/apple/apple-reminders/SKILL.md
kshitijk4poor ccfbf42844 feat: secure skill env setup on load (core #688)
When a skill declares required_environment_variables in its YAML
frontmatter, missing env vars trigger a secure TUI prompt (identical
to the sudo password widget) when the skill is loaded. Secrets flow
directly to ~/.hermes/.env, never entering LLM context.

Key changes:
- New required_environment_variables frontmatter field for skills
- Secure TUI widget (masked input, 120s timeout)
- Gateway safety: messaging platforms show local setup guidance
- Legacy prerequisites.env_vars normalized into new format
- Remote backend handling: conservative setup_needed=True
- Env var name validation, file permissions hardened to 0o600
- Redact patterns extended for secret-related JSON fields
- 12 existing skills updated with prerequisites declarations
- ~48 new tests covering skip, timeout, gateway, remote backends
- Dynamic panel widget sizing (fixes hardcoded width from original PR)

Cherry-picked from PR #723 by kshitijk4poor, rebased onto current main
with conflict resolution.

Fixes #688

Co-authored-by: kshitijk4poor <kshitijk4poor@users.noreply.github.com>
2026-03-13 03:14:04 -07:00

2.5 KiB

name description version author license platforms metadata prerequisites
apple-reminders Manage Apple Reminders via remindctl CLI (list, add, complete, delete). 1.0.0 Hermes Agent MIT
macos
hermes
tags
Reminders
tasks
todo
macOS
Apple
commands
remindctl

Apple Reminders

Use remindctl to manage Apple Reminders directly from the terminal. Tasks sync across all Apple devices via iCloud.

Prerequisites

  • macOS with Reminders.app
  • Install: brew install steipete/tap/remindctl
  • Grant Reminders permission when prompted
  • Check: remindctl status / Request: remindctl authorize

When to Use

  • User mentions "reminder" or "Reminders app"
  • Creating personal to-dos with due dates that sync to iOS
  • Managing Apple Reminders lists
  • User wants tasks to appear on their iPhone/iPad

When NOT to Use

  • Scheduling agent alerts → use the cronjob tool instead
  • Calendar events → use Apple Calendar or Google Calendar
  • Project task management → use GitHub Issues, Notion, etc.
  • If user says "remind me" but means an agent alert → clarify first

Quick Reference

View Reminders

remindctl                    # Today's reminders
remindctl today              # Today
remindctl tomorrow           # Tomorrow
remindctl week               # This week
remindctl overdue            # Past due
remindctl all                # Everything
remindctl 2026-01-04         # Specific date

Manage Lists

remindctl list               # List all lists
remindctl list Work          # Show specific list
remindctl list Projects --create    # Create list
remindctl list Work --delete        # Delete list

Create Reminders

remindctl add "Buy milk"
remindctl add --title "Call mom" --list Personal --due tomorrow
remindctl add --title "Meeting prep" --due "2026-02-15 09:00"

Complete / Delete

remindctl complete 1 2 3          # Complete by ID
remindctl delete 4A83 --force     # Delete by ID

Output Formats

remindctl today --json       # JSON for scripting
remindctl today --plain      # TSV format
remindctl today --quiet      # Counts only

Date Formats

Accepted by --due and date filters:

  • today, tomorrow, yesterday
  • YYYY-MM-DD
  • YYYY-MM-DD HH:mm
  • ISO 8601 (2026-01-04T12:34:56Z)

Rules

  1. When user says "remind me", clarify: Apple Reminders (syncs to phone) vs agent cronjob alert
  2. Always confirm reminder content and due date before creating
  3. Use --json for programmatic parsing