Cremind
Using CremindCLI

cremind skill-events

Manage skill event subscriptions, simulate events, tail notifications over SSE, and control listener daemons.

cremind skill-events (alias cremind events) is the CLI for the event-driven side of Cremind skills. A skill (declared by a SKILL.md) can declare events it watches for; when one fires it can spawn a conversation, run a script, or notify the user. This group inspects those subscriptions, tails live events, and controls the listener daemons that emit them. It is the terminal counterpart to the Skill Events page in the web UI.

CREMIND_TOKEN is required for every subcommand, and all of them accept the root-level --json flag.

Subcommands

SubcommandPurpose
listList skill event subscriptions for the active profile.
delete <id>Remove a subscription so its events stop being routed.
events <skill>List the events a skill declares (read from its SKILL.md).
simulate <id>Drop a Markdown file into a subscription's watched folder to fire an event by hand.
streamTail the server-wide skill-events admin snapshot over SSE.
notificationsTail the active profile's notifications over SSE, with a --since resume cursor.
listener-status <skill>Check whether a skill's listener daemon is alive.
listener-start <skill>Start (or resume) a skill's listener daemon as an autostart process.

Inspecting and subscribing

See what a skill exposes, then confirm a subscription appears. Subscriptions are created when a skill is bound to a conversation in the web UI — the CLI has no subscribe subcommand:

cremind skill-events events daily-brief
cremind skill-events list
ID         SKILL          EVENT_TYPE  CONVERSATION  CONV_TITLE
sub_19a8   daily-brief    morning     c_82bc        Daily Brief
sub_4f02   review-pr      pr-opened

Streaming events and notifications

Both stream and notifications hold a long-lived SSE connection and print one line per event; Ctrl-C exits cleanly. In default mode each line is [<event_type>] <raw JSON>; with --json it is the raw payload only, ready for jq:

cremind skill-events notifications --json | jq '.summary'

notifications accepts --since <millis> (Unix milliseconds) to backfill everything recorded at or after that timestamp before going live, so you can resume after a disconnect without losing events.

Simulating an event

simulate reads a Markdown body from stdin and writes it into a subscription's watched folder; the skill's listener then routes it through the normal pipeline — handy for developing event handlers:

cremind skill-events simulate sub_19a8 <<'EOF'
# Morning brief
- Top issue: cremind#42
- Calendar:  09:30 standup
EOF

The listener for that skill must be running for the dropped file to be picked up.

Listener daemons

Check liveness, then start the daemon if it is down. listener-start is idempotent — a second call against a running listener returns the existing process and autostart ids without duplicating:

cremind skill-events listener-status daily-brief
cremind skill-events listener-start daily-brief
process_id    p_9d72
autostart_id  a_8c14

The listener is backed by the autostart process machinery, so it relaunches at server boot. Manage it further with cremind proc (proc autostart list/delete).

If a skill should have fired but no notification arrived, the usual causes are: the listener is down (listener-status), the subscription is bound to a deleted conversation, or the skill's declared event_type changed and the old subscription no longer matches.

On this page