Get the FREE Ultimate OpenClaw Setup Guide →

rem

Flagged

{"isSafe":false,"isSuspicious":true,"riskLevel":"high","findings":[{"category":"shell_command","severity":"high","description":"Installation uses curl -fsSL https://rem.sidv.dev/install | bash, which downloads and immediately executes a remote script. This is a classic remote code execution pattern with no verification, posing significant security risk.","evidence":"# macOS (recommended)\ncurl -fsSL https://rem.sidv.dev/install | bash"},{"category":"suspicious_url","severity":"high","description":"External installer URL used to fetch and run code. Remote URL should be verified, trusted, and ideally signed or checksummed before execution.","evidence":"https://rem.sidv.dev/install"}],"summary":"The skill content includes a remote installation pattern that pipes a downloaded script directly to the shell. This is a high-risk security pattern because it allows arbitrary code execution from an external source. Recommend replacing curl | bash with a safer installation method (e.g., download a verified installer, verify checksums or signatures, or provide a package manager installation). If curl | bash must be used, require verification and provide explicit assurances about the source and integrity."}

npx machina-cli add skill BRO3886/agent-skills/rem-cli --openclaw
Files (1)
SKILL.md
5.9 KB

rem — CLI for macOS Reminders

A Go CLI that wraps macOS Reminders. Sub-200ms reads via cgo + EventKit. Single binary, no dependencies at runtime.

Installation

# macOS (recommended)
curl -fsSL https://rem.sidv.dev/install | bash

# Or via Go
go install github.com/BRO3886/rem/cmd/rem@latest

Install this skill into your agent:

# Claude Code or Codex
rem skills install

# OpenClaw
rem skills install --agent openclaw

Quick Start

# See all lists with reminder counts
rem lists --count

# Add a reminder with natural language date
rem add "Buy groceries" --list Personal --due tomorrow --priority high

# List incomplete reminders in a list
rem list --list Work --incomplete

# Search across all reminders
rem search "meeting"

# Complete a reminder by short ID
rem complete abc12345

# View stats
rem stats

Command Reference

Reminder CRUD

CommandAliasesDescription
rem addcreate, newCreate a reminder
rem listlsList reminders with filters
rem showgetShow full details of one reminder
rem updateeditUpdate reminder properties
rem deleterm, removeDelete a reminder
rem completedoneMark reminder complete
rem uncompleteMark reminder incomplete
rem flagFlag a reminder
rem unflagRemove flag

List Management

CommandAliasesDescription
rem listsShow all lists
rem list-mgmt createlm newCreate a list
rem list-mgmt renameRename a list
rem list-mgmt deletelm rmDelete a list

Search & Analytics

CommandDescription
rem search <query>Search title and notes
rem statsShow statistics and per-list breakdown
rem overdueShow overdue reminders
rem upcomingShow reminders due in next N days (default: 7)

Import/Export

CommandDescription
rem exportExport to JSON or CSV
rem import <file>Import from JSON or CSV file

Skills & Other

CommandDescription
rem skills installInstall rem skill for AI agents
rem skills uninstallUninstall rem skill from AI agents
rem skills statusShow skill installation status
rem interactive / rem iInteractive menu-driven mode
rem versionPrint version
rem completionGenerate shell completions (bash/zsh/fish)

For full flag details on every command, see references/commands.md.

Key Concepts

Short IDs

Reminders have UUIDs like x-apple-reminder://AB12CD34-.... The CLI displays the first 8 characters as a short ID (AB12CD34). You can pass any unique prefix to commands — rem complete AB1 works if it matches exactly one reminder.

Natural Language Dates

The --due flag accepts natural language:

rem add "Call dentist" --due tomorrow
rem add "Submit report" --due "next friday at 2pm"
rem add "Quick task" --due "in 30 minutes"
rem add "Wrap up" --due eod

Supported patterns: today, tomorrow, next monday, in 3 hours, eod, eow, 5pm, 2026-02-15, and more. See references/dates.md for the full list.

Priority Levels

LevelFlag valueAppleScript value
High--priority high1 (range 1-4)
Medium--priority medium5
Low--priority low9 (range 6-9)
None--priority none0

Output Formats

All read commands support -o / --output:

  • table (default) — formatted table with borders
  • json — machine-readable JSON
  • plain — simple text, one item per line

The NO_COLOR environment variable is respected.

URL Storage

macOS Reminders has no native URL field. rem stores URLs in the notes/body field with a URL: prefix and extracts them for display.

Common Workflows

Daily review

rem overdue                          # Check what's past due
rem upcoming --days 1                # See today's reminders
rem list --list Work --incomplete    # Focus on work items

Batch operations with JSON

rem export --list Work --format json > backup.json
rem import backup.json --list "Work Archive"

Scripting with JSON output

# Get overdue count
rem overdue -o json | jq 'length'

# List all incomplete reminder titles
rem list --incomplete -o json | jq -r '.[].name'

Public Go API

For programmatic access, use go-eventkit directly:

import "github.com/BRO3886/go-eventkit/reminders"

client, _ := reminders.New()
r, _ := client.CreateReminder(reminders.CreateReminderInput{
    Title:    "Buy milk",
    ListName: "Shopping",
    Priority: reminders.PriorityHigh,
})
items, _ := client.Reminders(reminders.WithCompleted(false))

See go-eventkit docs for the full API surface.

Limitations

  • macOS only — requires EventKit framework and osascript
  • No tags, subtasks, or recurrence — not exposed by EventKit/AppleScript
  • --flagged filter is slower (~3-4s) — falls back to JXA since EventKit doesn't expose flagged
  • List deletion may fail on some macOS versions

Source

git clone https://github.com/BRO3886/agent-skills/blob/main/rem-cli/SKILL.mdView on GitHub

Overview

rem is a Go CLI that wraps Apple Reminders, enabling you to create, list, update, complete, delete, search, and export reminders and lists from the command line. It supports natural language due dates, filtering, and import/export in JSON or CSV, making it ideal for automating reminder workflows or embedding reminders into scripts.

How This Skill Works

rem is a Go binary that communicates with macOS Reminders via EventKit (using cgo) for fast, near real-time reads and writes. It exposes commands like add, list, show, update, delete, complete, and export, with support for aliases, filtering, and multiple output formats to fit automation needs.

When to Use It

  • Automate daily reminder workflows in shell scripts.
  • Interact with Apple Reminders from CI or terminal workflows.
  • Export reminders to JSON or CSV for reporting or dashboards.
  • Filter and search across multiple lists for project planning.
  • Manage due dates with natural language expressions (today, tomorrow, next Friday).

Quick Start

  1. Step 1: See all lists with reminder counts rem lists --count
  2. Step 2: Add a reminder with natural language date rem add "Buy groceries" --list Personal --due tomorrow --priority high
  3. Step 3: List incomplete reminders in a list rem list --list Work --incomplete

Best Practices

  • Use short IDs when targeting a reminder (rem complete AB12CD34) to speed up actions.
  • Take advantage of natural language due dates to create reminders quickly.
  • Export before large edits to preserve a backup in JSON or CSV.
  • Combine filters (e.g., --list and --incomplete) to narrow results before actions.
  • Keep list names consistent and organized to simplify automation.

Example Use Cases

  • Add a reminder with a natural language due date: rem add "Buy groceries" --list Personal --due tomorrow --priority high
  • List incomplete reminders in a specific list: rem list --list Work --incomplete
  • Search across all reminders for a term: rem search "meeting"
  • Complete a reminder by its short ID: rem complete abc12345
  • Export reminders to JSON or CSV: rem export --format json

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers