Skip to main content

Overview

Productivity actions integrate with Apple Notes, Reminders, and Shortcuts to automate common tasks.
ActionDescriptionEnabled by Default
create_noteCreate a new note in Apple Notes
create_reminderCreate a reminder in Apple Reminders
run_shortcutRun an Apple Shortcut by name

create_note

Create a new note in Apple Notes (or via the memo CLI if installed).

Parameters

title
string
required
Note title
body
string
Note body content (optional)
folder
string
default:"Notes"
Target folder (defaults to “Notes”)

Examples

rcli listen
# Say: "Create a note called Meeting Notes"
# Say: "Make a note: Buy groceries tomorrow"

Implementation Details

The action first checks for the memo CLI tool (faster). If unavailable, it falls back to AppleScript:
tell application "Notes"
  tell folder "Notes"
    make new note with properties {name:"<title>", body:"<body>"}
  end tell
end tell
Source: src/actions/notes_actions.cpp:7-38

Response

{
  "action": "create_note",
  "title": "Meeting Notes",
  "status": "created"
}

create_reminder

Create a reminder in Apple Reminders with optional due date.

Parameters

title
string
required
Reminder text
due
string
Due date (AppleScript date format, e.g., “tomorrow at 3pm” or “2025-03-15 14:00”)
list
string
default:"Reminders"
Target list (defaults to “Reminders”)

Examples

rcli listen
# Say: "Remind me to buy groceries"
# Say: "Set a reminder for the dentist appointment tomorrow at 2pm"

Implementation Details

tell application "Reminders"
  tell list "Reminders"
    set r to make new reminder with properties {name:"<title>"}
    # If due date provided:
    # set r to make new reminder with properties {name:"<title>", due date:date "<due>"}
  end tell
end tell
Timeout: 20 seconds (Reminders.app can be slow to respond)Source: src/actions/reminders_actions.cpp:7-30

Response

{
  "action": "create_reminder",
  "title": "Buy groceries",
  "status": "created"
}

run_shortcut

Run an Apple Shortcut by name with optional input text.
Disabled by default. Enable in the Actions panel (press A in TUI) or via:
rcli action run_shortcut --enable

Parameters

name
string
required
Name of the shortcut (case-sensitive)
input
string
Optional input text to pass to the shortcut

Examples

rcli listen
# Say: "Run my Morning Routine shortcut"
# Say: "Execute the Log Weight shortcut with input 165"

Implementation Details

Uses the shortcuts:// URL scheme:
std::string url = "shortcuts://run-shortcut?name=" + url_encode(name);
if (!input.empty()) {
    url += "&input=text&text=" + url_encode(input);
}
run_shell("open '" + escape_shell(url) + "'");
Note: Shortcuts.app must be installed and the shortcut must exist. The action returns immediately (does not wait for shortcut completion).Source: src/actions/communication_actions.cpp:62-72

Response

{
  "action": "run_shortcut",
  "name": "Morning Routine"
}

Voice Examples

Productivity actions work naturally with conversational input:
You: “Create a note called Sprint Planning”RCLI: “Done! Created a note called Sprint Planning.”You: “Add another note: Follow up with design team about mockups”RCLI: “Got it. Created a new note.”
You: “Remind me to submit the report by Friday at 5pm”RCLI: “Reminder created: Submit the report by Friday at 5pm.”You: “Also remind me to call the client tomorrow”RCLI: “Added a reminder to call the client tomorrow.”
You: “Run my Morning Routine shortcut”RCLI: “Running shortcut: Morning Routine.”You: “Execute the Log Workout shortcut with input Chest Day”RCLI: “Running Log Workout with input ‘Chest Day’.”

Managing These Actions

See Managing Actions for details on enabling/disabling actions and persisting preferences.
# List all productivity actions
rcli actions | grep productivity

# Enable run_shortcut
rcli action run_shortcut --enable

# Disable create_note
rcli action create_note --disable

Build docs developers (and LLMs) love