Skip to content

netclaw reminder

netclaw reminder schedules autonomous agent sessions. A reminder fires on a schedule (once, on an interval, or via cron), runs a session with your instructions, and optionally delivers results to a Slack channel.

All subcommands except validate require the daemon to be running. Start it with netclaw daemon start or netclaw init.

Terminal window
netclaw reminder <subcommand> [options]
SubcommandDescription
listList all active reminders
createCreate or update a reminder
ui / tuiInteractive reminder builder
show <id>Show reminder details
history <id>Show execution history
enable <id>Enable a reminder
disable <id>Disable a reminder
cancel <id>Cancel (soft delete — disables, keeps definition)
delete <id>Permanently delete a reminder and its history
import <file>Import a reminder from a JSON file
validate <file>Validate a reminder file offline (no daemon needed)
Terminal window
netclaw reminder ui

The Reminder Builder walks you through six steps: title, schedule type, schedule value, instructions, delivery guidance, and review.

The netclaw reminder TUI builder walking through the creation flow

Navigate with arrow keys and Enter. Esc goes back a step (or quits on the first step). Ctrl+Q quits from anywhere. Ctrl+Enter adds newlines in multi-line fields.

Terminal window
netclaw reminder list

netclaw reminder list showing two reminders — a recurring cron reminder and a one-shot reminder

Terminal window
netclaw reminder create <id> <scheduleType> <schedule> "<prompt>" [options]
PositionalDescription
idStable identifier, kebab-case slug (e.g. daily-standup)
scheduleTypeonce, interval, or cron
scheduleDuration or cron expression (see Schedule types)
promptInstructions for what netclaw should do when the reminder fires
FlagDescriptionDefault
--name <title>Human-readable titleSame as id
--delivery <kind>none or channelnone
--transport <transport>Transport for channel delivery (e.g. slack)
--address <target>Target for channel delivery (#channel, @user, or ID)
--expires-in <duration>Auto-disable after duration (e.g. 24h, 7d)

If a reminder with the given ID already exists, it gets updated (upsert).

Channel delivery requires Slack to be configured in netclaw. Without it, the reminder runs but has nowhere to post results.

TypeWhat it doesExamples
onceFires one time, then auto-disables30m, 2h, or an ISO 8601 timestamp like 2026-06-01T18:00:00Z
intervalRepeats on a fixed duration15m, 2h, 1d
cronFires on a cron schedule (5-field, UTC)0 */6 * * *, 0 9 * * MON-FRI
Terminal window
netclaw reminder create akka-nuget-daily cron "0 15 * * MON-FRI" \
"Check Akka.NET NuGet download counts. Compare to yesterday and flag anything unusual." \
--name "Akka NuGet Daily Downloads Report"
Terminal window
netclaw reminder create stir-trek-talk once "2026-05-01T18:45:00Z" \
"Remind me to head to the Stir Trek talk room" \
--name "Head to Stir Trek talk room" \
--delivery channel --transport slack --address "#general"
Terminal window
netclaw reminder create infra-check interval "6h" \
"Run netclaw doctor and summarize any degraded services."
Terminal window
netclaw reminder show <id>

Shows the full JSON definition for a reminder — the same format import expects.

Terminal window
netclaw reminder history <id> [--last N]
FlagDescriptionDefault
--last <N>Number of history records to return20

Output is a table with columns: fired_at, status (ok/failed), duration_ms, and session_id. Use the session ID to dig into what the agent did with netclaw sessions.

Terminal window
netclaw reminder enable <id>
netclaw reminder disable <id>

Disabled reminders keep their definition and history — they just stop firing.

Terminal window
netclaw reminder cancel <id>
netclaw reminder delete <id>

cancel disables a reminder but leaves the definition and history intact, so you can re-enable it later. delete removes everything permanently.

Terminal window
netclaw reminder import <file> [--replace|--upsert]

Imports a reminder from a JSON file. The file format matches show output — grab a reminder’s JSON, edit it, and import it back.

ModeDescription
(default)Create only — fails if the reminder already exists
--upsertCreate or update
--replaceReplace the existing reminder entirely

The file is validated before import. Run validate first to check for errors without hitting the daemon.

Terminal window
netclaw reminder validate <file>

Checks a reminder JSON file for schema errors offline. Schedule-type-specific rules:

  • once reminders need a fireAtMs timestamp
  • interval reminders need intervalTicks
  • cron reminders need a valid cronExpression (standard 5-field format)
CodeMeaning
0Success
1Reminder not found, validation error, daemon unreachable, or other failure

Run netclaw reminder list to confirm your reminder appears with the right schedule and next fire time. After it fires, netclaw reminder history <id> shows whether it succeeded. Grab the session ID from the history output and pass it to netclaw sessions to see the full run.