Joelclaw runtime-monitor
Monitor ADR-0217 real workloads across Redis queue, Restate, Dkron, and transitional Inngest using joelclaw CLI plus the pi TUI monitor extension. Use when asked to monitor jobs, watch runtime health, keep an eye on async work, run a workload dashboard, or report back on system state. Always pair with `pi-tui-design` for TUI work and `system-architecture` for topology truth.
git clone https://github.com/joelhooks/joelclaw
T=$(mktemp -d) && git clone --depth=1 https://github.com/joelhooks/joelclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/runtime-monitor" ~/.claude/skills/joelhooks-joelclaw-runtime-monitor && rm -rf "$T"
skills/runtime-monitor/SKILL.mdRuntime Monitor
Use this skill when the task is real workload monitoring, not vague status-checking.
The canonical operator surfaces are:
joelclaw jobs statusjoelclaw queue depthjoelclaw queue control statusjoelclaw queue observejoelclaw restate statusjoelclaw restate cron status- pi extension tool:
runtime_jobs_monitor
Load order
Before doing runtime monitor work:
- load
system-architecture - load
if you are building or changing the monitor widget/TUIpi-tui-design - load
for CLI operator flowsjoelclaw
What to use when
First glance
joelclaw jobs status --hours 1 --count 10
This is the first operator answer to:
- can the system take more work right now?
- is the queue/runtime layer healthy?
- is Dkron alive?
- is Inngest still healthy during transition?
Queue-specific investigation
joelclaw queue depth joelclaw queue control status --hours 1 joelclaw queue observe --hours 1 joelclaw queue stats --since <iso|ms>
Use these once
jobs status tells you the queue layer is the interesting bit.
Runtime substrate investigation
joelclaw restate status joelclaw restate cron status joelclaw runs --count 20 --hours 1
Use these when the top-level surface says Restate, Dkron, or transitional Inngest needs a closer look.
Async pi monitor
The loaded pi extension at
packages/pi-extensions/inngest-monitor/index.ts exposes:
runtime_jobs_monitorinngest_sendinngest_runs
Start
{"action":"start","interval":5,"report":true}
Effects:
- polls
in the backgroundjoelclaw jobs status - paints a persistent TUI widget
- emits OTEL on runtime severity changes and meaningful workload-state changes
- sends hidden follow-up summaries when the runtime meaningfully changes or the monitor stops/times out
Status
{"action":"status"}
Returns the latest runtime snapshot:
- overall status/summary
- queue depth
- active pause count
- Restate / Dkron / Inngest state
Stop
{"action":"stop"}
Stops the background poller and sends a final follow-up summary.
Rules
is the aggregated truth surface; do not rebuild the same picture by hand unless the command is wrong.joelclaw jobs status- If
is noisy or misleading, fix it first. Don’t teach agents to ignore a lying operator surface.jobs status - For TUI work, prefer compact status blocks with explicit severity and short summaries. No decorative sludge.
- Any runtime monitor widget line must be clamped to the active terminal width with pi-tui truncation (
/truncateToWidth
). Pi will crash narrow terminals if a custom widget emits over-wide lines.visibleWidth - During transition, Inngest stays visible but must not dominate the runtime story when Restate + queue + Dkron are the real workload path.
- Report earned truth only. If the monitor compiles but hasn’t been dogfooded, say that.