Skip to main content

Health Checks

Health Checks

Health check endpoints are not consistent across services — different services use different paths and protocols. Use exactly the commands listed here.


Native Services (HTTPS — use -sk to skip certificate verification)

Service Command
Mothership API curl -sk https://localhost:10000/api/v1/system/health
QUI Core API curl -sk https://localhost:10008/api/v1/health

Native Services (HTTP)

Service Command
Terminal Service curl -s http://localhost:3001/health
MCP Gateway curl -s http://localhost:8890/health

Docker Services (HTTP)

Service Command Path
Qui Anima curl -s http://localhost:10030/api/v1/health /api/v1/health
M2M curl -s http://localhost:10020/health /health
Memory curl -s http://localhost:8001/health /health
Cortex curl -s http://localhost:10040/health /health
Autothink curl -s http://localhost:10050/health /health
Thalamus curl -s http://localhost:10060/health /health
ThinkThing curl -s http://localhost:10070/health /health
Qonscious curl -s http://localhost:10180/health /health
FractalMind curl -s http://localhost:10092/health /health
Qleph curl -s http://localhost:10082/health /health
Voice curl -s http://localhost:3002/health /health
Strings (nginx) curl -s http://localhost:10085/ -o /dev/null -w "%{http_code}" Returns 200 if running

Key Differences to Note

  • Mothership uses /api/v1/system/health (not /health or /api/v1/health)
  • QUI Core uses /api/v1/health
  • Anima uses /api/v1/health (same as QUI Core)
  • All other Docker services use /health (no /api/v1/ prefix)
  • Mothership and QUI Core require HTTPS (-sk flag for self-signed certs)
  • Strings has no health endpoint — check if nginx responds with HTTP 200

Quick Check All Services

Run all health checks at once. Uses ; separators so all checks run even if some services are down:

echo "=== Native (HTTPS) ==="; \
curl -sk --max-time 3 https://localhost:10000/api/v1/system/health -o /dev/null -w "Mothership: %{http_code}\n"; \
curl -sk --max-time 3 https://localhost:10008/api/v1/health -o /dev/null -w "QUI Core: %{http_code}\n"; \
echo "=== Native (HTTP) ==="; \
curl -s --max-time 3 http://localhost:3001/health -o /dev/null -w "Terminal: %{http_code}\n"; \
echo "=== Docker ==="; \
curl -s --max-time 3 http://localhost:10030/api/v1/health -o /dev/null -w "Anima: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10020/health -o /dev/null -w "M2M: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:8001/health -o /dev/null -w "Memory: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10040/health -o /dev/null -w "Cortex: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10050/health -o /dev/null -w "Autothink: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10060/health -o /dev/null -w "Thalamus: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10070/health -o /dev/null -w "ThinkThing: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10180/health -o /dev/null -w "Qonscious: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10092/health -o /dev/null -w "FractalMind: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10082/health -o /dev/null -w "Qleph: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:3002/health -o /dev/null -w "Voice: %{http_code}\n"; \
curl -s --max-time 3 http://localhost:10085/ -o /dev/null -w "Strings: %{http_code}\n"

Any response other than 200 means that service is down or unreachable. A 000 response means the connection was refused (service not running).


Anima Downstream Health (Shortcut)

Anima has a special endpoint that checks 7 downstream services in one call:

curl -s http://localhost:10030/api/v1/services/health | python3 -m json.tool

Returns "connected": true/false for: Memory, M2M, Cortex, Thalamus, Autothink, Qonscious, and MCP Gateway. If Anima itself is down, this call fails — check Anima's own health first.

Updated on Mar 21, 2026