Skip to content

netclaw status

netclaw status queries the running daemon and prints overall health, connector states, the active model, persistence, telemetry counters, and whether an update is available. Run it when something feels off, or wire it into a health check script.

Terminal window
netclaw status [options]

Requires a running daemon. If it’s not up, start it with netclaw daemon start (or run netclaw init which starts it for you).

FlagDescriptionDefault
--format <text|json>Output formattext
--jsonAlias for --format json
Terminal window
netclaw status

netclaw status showing healthy daemon with connectors

SectionWhat it tells you
overallhealthy or degraded
versionBuild version, commit hash, build timestamp
daemonPID, uptime, endpoint URL
persistenceStorage provider (e.g., SQLite)
memoryMemory provider and status — returns unavailable, healthy, or degraded
telemetryEnabled/disabled, OpenTelemetry Protocol (OTLP) endpoint if active
countersPer-channel message stats: recv, routed, dropped, replied, rejected, reply_failed
modelActive model name, provider, context window, input/output modalities
connectorsEach connector’s key, status, and enabled/disabled state
updateWhether a newer version is available

overall reflects connector health:

  • healthy — all enabled connectors are healthy
  • degraded — any enabled connector is disconnected, degraded, auth-required, or auth-failed

Channel connectors (Slack, Discord) report: healthy, degraded, disconnected, disabled, unknown.

MCP connectors — keyed as mcp:<server-name> from your configured MCP tool servers — add: auth-required and auth-failed.

Disabled connectors still appear in the list with (disabled) so you can tell they’re intentionally off, not broken.

If any connector shows degraded or worse, run netclaw doctor --fix to auto-repair common issues. If that doesn’t resolve it, check the specific connector’s configuration.

CodeMeaning
0Healthy
2Degraded
1Daemon unreachable or error response

Exit code 2 for degraded (rather than 1) lets scripts distinguish “something’s wrong but running” from “down entirely”:

Terminal window
netclaw status > /dev/null 2>&1
rc=$?
case $rc in
0) echo "healthy" ;;
2) echo "degraded — check connectors" ;;
*) echo "down or unreachable" ;;
esac

Note: the CLI overview documents exit code 2 as “usage/argument error” for most commands. status is an exception — it uses 2 specifically for degraded health.

Terminal window
netclaw status --json

Returns the full status response as JSON.

The JSON includes fields not shown in text output — notably reminders (with scheduledCount, activeExecutions, failedCount). Also, the version text section maps to the .build key in JSON, so use jq '.build' rather than jq '.version':

Terminal window
# Check overall health
netclaw status --json | jq -r '.overall'
# Get version info (note: `.build`, not `.version`)
netclaw status --json | jq '.build'
# List unhealthy connectors
netclaw status --json | jq '[.connectors[] | select(.enabled and .status != "healthy")]'

If the daemon is unreachable, you’ll see one of:

[FAIL] status: unable to reach daemon at http://127.0.0.1:5199: Connection refused
fix: run 'netclaw daemon start' and retry.
[FAIL] status: daemon returned 503 from http://127.0.0.1:5199
fix: run 'netclaw daemon status' and 'netclaw daemon start'.

The distinction:

CommandWhat it checksDaemon required
netclaw daemon statusPID file — is the process running?No
netclaw statusLive health query — are connectors, model, persistence all working?Yes

If you’re not sure the process is alive, start with daemon status. Once it’s up, status gives the full picture.

status queries http://127.0.0.1:5199/api/health/status by default. Override with:

  • NETCLAW_DAEMON_ENDPOINT
  • ~/.netclaw/client/config.json
  • netclaw doctor — Diagnostics with auto-repair (--fix)
  • netclaw stats — Token usage, session counts, and memory metrics
  • netclaw chat — Start a conversation (check status first if connections fail)
  • netclaw init — First-run setup that starts the daemon for you