From esdb
Observe events in real time from an EventSourcingDB instance. Use when the user wants to watch, monitor, or stream live events as they are written.
How this skill is triggered — by the user, by Claude, or both
Slash command
/esdb:observe-eventsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Observe events in real time from an EventSourcingDB instance. This opens a long-lived streaming connection.
Observe events in real time from an EventSourcingDB instance. This opens a long-lived streaming connection.
Read configuration from environment variables:
echo "ESDB_URL: ${ESDB_URL:-http://localhost:3000}"
echo "ESDB_API_TOKEN: ${ESDB_API_TOKEN:-(not set)}"
ESDB_URL if set, otherwise default to http://localhost:3000.ESDB_API_TOKEN is not set, use AskUserQuestion to ask the user for the API token.This endpoint returns a long-lived NDJSON stream. Always use --max-time to ensure the connection terminates (default: 30 seconds). Use --no-buffer and filter out heartbeats:
curl -s --no-buffer --max-time 30 -X POST \
-H "authorization: Bearer ${ESDB_API_TOKEN}" \
-H "content-type: application/json" \
-d '<REQUEST_BODY>' \
"${ESDB_URL:-http://localhost:3000}/api/v1/observe-events" \
| grep -v '"type":"heartbeat"'
When the user wants a custom timeout, use AskUserQuestion to ask for the desired duration in seconds.
{
"subject": "/<subject-path>",
"options": {
"recursive": false,
"lowerBound": {
"id": "<event-id>",
"type": "exclusive"
},
"fromLatestEvent": {
"subject": "/<subject-path>",
"type": "<event-type>",
"ifEventIsMissing": "read-everything"
}
}
}
Options:
recursive (boolean): Include sub-subjects.lowerBound: Resume from event ID. type: "inclusive" or "exclusive".fromLatestEvent: Start from last event of given type. ifEventIsMissing: "read-everything" or "wait-for-event". Cannot be combined with lowerBound.curl -s --no-buffer --max-time 30 -X POST \
-H "authorization: Bearer ${ESDB_API_TOKEN}" \
-H "content-type: application/json" \
-d "{
\"subject\": \"/\",
\"options\": {
\"recursive\": true
}
}" \
"${ESDB_URL:-http://localhost:3000}/api/v1/observe-events" \
| grep -v '"type":"heartbeat"'
NDJSON stream with one line per event:
{"type":"event","payload":{...}}
Heartbeats ({"type":"heartbeat","payload":{}}) are sent periodically and are filtered out by the grep -v pattern.
/ (e.g., /books/42)."42").npx claudepluginhub thenativeweb/claude-plugins --plugin esdbProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.