Skip to main content

Ludus Info — Read-Only Queries

2026-02-23 by Showboat (ludus-m4j.1)

Showboat recording of all ludus info subcommands against live Mimas. All checks pass — 0 errors, 0 warnings.

1. Bare invocation

ludus
Ludus — 22 agents, 4 images, 2 cron jobs, gateway running

Next:
ludus info status Full system status
ludus info doctor Health check
ludus ops deploy Sync & configure Mimas
ludus run agent task MSG Send task to main agent

PASS: Output contains "Ludus" and a summary line. Exit code 0.

ludus --json
{
"summary": "Ludus — 22 agents, 4 images, 2 cron jobs, gateway running",
"reachable": true,
"agents": 22,
"images": 4,
"cron_jobs": 2,
"gateway": true,
"next": [
{"command": "ludus info status", "description": "Full system status"},
{"command": "ludus info doctor", "description": "Health check"},
{"command": "ludus ops deploy", "description": "Sync & configure Mimas"},
{"command": "ludus run agent task MSG", "description": "Send task to main agent"}
]
}

PASS: Valid JSON. reachable is true. Keys: summary, reachable, agents, images, cron_jobs, gateway, next.

2. ludus info status

ludus info status
Container Images (Mimas)
✓ openclaw-sandbox:fedora
✓ openclaw-sandbox-common:fedora
✓ b4arena-base:latest
✓ b4arena-dev:latest

Registered Agents
✓ Agents:
✓ - main (default)
✓ Identity: 🏁 Apex (IDENTITY.md)
✓ Workspace: ~/.openclaw/workspace
✓ Agent dir: ~/.openclaw/agents/main/agent
✓ Model: anthropic/claude-sonnet-4-6
✓ Routing rules: 0
✓ Routing: default (no explicit rules)
✓ - b4-dev
✓ Identity: wrench Dev (IDENTITY.md)
✓ Workspace: ~/b4arena/agents/dev
✓ Agent dir: ~/.openclaw/agents/b4-dev/agent
✓ Model: anthropic/claude-sonnet-4-6
✓ Routing rules: 0
✓ - b4-eng-mgr
✓ Identity: clipboard Eng Manager (IDENTITY.md)
✓ Workspace: ~/b4arena/agents/eng-mgr
✓ Agent dir: ~/.openclaw/agents/b4-eng-mgr/agent
✓ Model: anthropic/claude-sonnet-4-6
✓ Routing rules: 0

Sandbox Defaults
✓ Sandbox defaults: image=b4arena-base:latest memory=512m cpus=1

Cron Jobs
✓ */30 * * * * BEADS_DIR=... beads-watcher.sh | beads-notify.sh ...
✓ */30 * * * * BEADS_DIR=... gh-event-poll --repo b4arena/test-calculator --repo b4arena/test-greeter ...

Gateway
✓ Gateway process running

PASS: Output contains sections "Container Images", "Registered Agents", "Gateway". All images found. Exit code 0.

ludus --json info status
{
"status": {
"images": {
"openclaw-sandbox:fedora": true,
"openclaw-sandbox-common:fedora": true,
"b4arena-base:latest": true,
"b4arena-dev:latest": true
},
"agents": {
"agents": ["Agents:", "- main (default)", ...],
"count": 22
},
"sandbox": {
"image": "b4arena-base:latest",
"memory": "512m",
"cpus": "1"
},
"cron": {
"installed": true,
"entries": ["*/30 * * * * ...", "*/30 * * * * ..."]
},
"gateway": true
}
}

PASS: Valid JSON. status.images all true. status.agents.count = 22. status.gateway = true. status.cron.installed = true.

3. ludus info doctor

ludus info doctor
Checking ludus health...

Info:
✓ SSH reachability
✓ Image: openclaw-sandbox:fedora
✓ Image: openclaw-sandbox-common:fedora
✓ Image: b4arena-base:latest
✓ Image: b4arena-dev:latest
✓ Agent: b4-dev
✓ Agent: main
✓ Agent: b4-eng-mgr
✓ Config: sandbox.image
✓ Config: sandbox.memory
✓ Cron entries
✓ Gateway
✓ Intercom DB

Summary: 0 errors, 0 warnings

PASS: Contains "Checking ludus health". All 13 checks green. "Summary: 0 errors, 0 warnings". Exit code 0.

ludus --json info doctor
{
"errors": [],
"warnings": [],
"checks": [
{"check": "SSH reachability", "ok": true, "detail": ""},
{"check": "Image: openclaw-sandbox:fedora", "ok": true, "detail": "", "fix": "ludus ops images build"},
{"check": "Image: openclaw-sandbox-common:fedora", "ok": true, "detail": "", "fix": "ludus ops images build"},
{"check": "Image: b4arena-base:latest", "ok": true, "detail": "", "fix": "ludus ops images build"},
{"check": "Image: b4arena-dev:latest", "ok": true, "detail": "", "fix": "ludus ops images build"},
{"check": "Agent: b4-dev", "ok": true, "detail": ""},
{"check": "Agent: main", "ok": true, "detail": ""},
{"check": "Agent: b4-eng-mgr", "ok": true, "detail": ""},
{"check": "Config: sandbox.image", "ok": true, "detail": "b4arena-base:latest"},
{"check": "Config: sandbox.memory", "ok": true, "detail": "512m"},
{"check": "Cron entries", "ok": true, "detail": "", "fix": "ludus ops cron deploy"},
{"check": "Gateway", "ok": true, "detail": "", "fix": "ludus ops ssh, then: openclaw gateway restart"},
{"check": "Intercom DB", "ok": true, "detail": ""}
],
"summary": {"errors": 0, "warnings": 0, "ok": 13}
}

PASS: Valid JSON. summary.errors (0) + summary.warnings (0) + summary.ok (13) = 13 total checks. Zero errors.

4. ludus info cron

ludus info cron
b4arena cron entries (openclaw@mimas)
*/30 * * * * BEADS_DIR=/home/openclaw/b4arena/intercom/.beads BD_ACTOR=watcher /home/openclaw/b4arena/scripts/beads-watcher.sh | /home/openclaw/b4arena/scripts/beads-notify.sh --map /home/openclaw/b4arena/agents/agent-map.json 2>>/var/log/openclaw/beads-watcher.log; BEADS_DIR=/home/openclaw/b4arena/intercom/.beads /home/openclaw/b4arena/skills/intercom/intercom-sync.sh 2>>/var/log/openclaw/beads-watcher.log
*/30 * * * * BEADS_DIR=/home/openclaw/b4arena/intercom/.beads BD_ACTOR=watcher /home/openclaw/b4arena/scripts/gh-event-poll --repo b4arena/test-calculator --repo b4arena/test-greeter --state-dir /home/openclaw/b4arena/.poll-state --trigger-label ludus 2>>/var/log/openclaw/gh-event-poll.log

PASS: Shows cron entries between b4arena markers. Exit code 0.

ludus --json info cron
{
"entries": [
"*/30 * * * * BEADS_DIR=/home/openclaw/b4arena/intercom/.beads BD_ACTOR=watcher /home/openclaw/b4arena/scripts/beads-watcher.sh | /home/openclaw/b4arena/scripts/beads-notify.sh --map /home/openclaw/b4arena/agents/agent-map.json 2>>/var/log/openclaw/beads-watcher.log; BEADS_DIR=/home/openclaw/b4arena/intercom/.beads /home/openclaw/b4arena/skills/intercom/intercom-sync.sh 2>>/var/log/openclaw/beads-watcher.log",
"*/30 * * * * BEADS_DIR=/home/openclaw/b4arena/intercom/.beads BD_ACTOR=watcher /home/openclaw/b4arena/scripts/gh-event-poll --repo b4arena/test-calculator --repo b4arena/test-greeter --state-dir /home/openclaw/b4arena/.poll-state --trigger-label ludus 2>>/var/log/openclaw/gh-event-poll.log"
]
}

PASS: Valid JSON. entries array has 2 items. First mentions beads-watcher.

5. ludus info images

ludus info images
Container Images (Mimas, podman)
✓ openclaw-sandbox:fedora
✓ openclaw-sandbox-common:fedora
✓ b4arena-base:latest
✓ b4arena-dev:latest

PASS: Shows each expected image with ✓. All 4 expected images found. Exit code 0.

ludus --json info images
{
"images": {
"openclaw-sandbox:fedora": true,
"openclaw-sandbox-common:fedora": true,
"b4arena-base:latest": true,
"b4arena-dev:latest": true
}
}

PASS: Valid JSON. images dict with 4 keys, all true.

6. ludus info agents

ludus info agents
Registered Agents
✓ Agents:
✓ - main (default)
✓ Identity: 🏁 Apex (IDENTITY.md)
✓ Workspace: ~/.openclaw/workspace
✓ Agent dir: ~/.openclaw/agents/main/agent
✓ Model: anthropic/claude-sonnet-4-6
✓ Routing rules: 0
✓ Routing: default (no explicit rules)
✓ - b4-dev
✓ Identity: wrench Dev (IDENTITY.md)
✓ Workspace: ~/b4arena/agents/dev
✓ Agent dir: ~/.openclaw/agents/b4-dev/agent
✓ Model: anthropic/claude-sonnet-4-6
✓ Routing rules: 0
✓ - b4-eng-mgr
✓ Identity: clipboard Eng Manager (IDENTITY.md)
✓ Workspace: ~/b4arena/agents/eng-mgr
✓ Agent dir: ~/.openclaw/agents/b4-eng-mgr/agent
✓ Model: anthropic/claude-sonnet-4-6
✓ Routing rules: 0

PASS: Shows registered agent IDs (main, b4-dev, b4-eng-mgr). Exit code 0.

ludus --json info agents
{
"agents": {
"agents": [
"Agents:",
"- main (default)",
"Identity: 🏁 Apex (IDENTITY.md)",
"Workspace: ~/.openclaw/workspace",
"Agent dir: ~/.openclaw/agents/main/agent",
"Model: anthropic/claude-sonnet-4-6",
"Routing rules: 0",
"Routing: default (no explicit rules)",
"- b4-dev",
"Identity: wrench Dev (IDENTITY.md)",
"Workspace: ~/b4arena/agents/dev",
"Agent dir: ~/.openclaw/agents/b4-dev/agent",
"Model: anthropic/claude-sonnet-4-6",
"Routing rules: 0",
"- b4-eng-mgr",
"Identity: clipboard Eng Manager (IDENTITY.md)",
"Workspace: ~/b4arena/agents/eng-mgr",
"Agent dir: ~/.openclaw/agents/b4-eng-mgr/agent",
"Model: anthropic/claude-sonnet-4-6",
"Routing rules: 0"
],
"count": 22
}
}

PASS: Valid JSON. agents.count = 22. agents.agents array contains agent details.

7. ludus info intercom

ludus info intercom
Intercom (Mimas)
✓ Total: 0 Open: 0 In progress: 0 Ready: 0 Blocked: 0
No issues in intercom.

PASS: Shows "Intercom (Mimas)" header. Summary counts present. Exit code 0.

ludus --json info intercom
{
"intercom": {
"total": 0,
"open": 0,
"in_progress": 0,
"ready": 0,
"blocked": 0,
"issues": []
}
}

PASS: Valid JSON. intercom object with keys: total, open, in_progress, ready, blocked, issues. Counts are non-negative integers.

8. ludus --version

ludus --version
ludus 0.1.0

PASS: Matches pattern ludus N.N.N. Exit code 0.

Edge Cases

Mimas unreachable

LUDUS_HOST=nonexistent ludus --json
{
"summary": "Ludus — Mimas unreachable",
"reachable": false,
"agents": 0,
"images": 0,
"cron_jobs": 0,
"gateway": false,
"next": [
{"command": "ludus info status", "description": "Full system status"},
{"command": "ludus info doctor", "description": "Health check"},
{"command": "ludus ops deploy", "description": "Sync & configure Mimas"},
{"command": "ludus run agent task MSG", "description": "Send task to main agent"}
]
}

PASS: reachable is false. No stack trace. Exit code 0. Graceful degradation.

Summary

CommandHumanJSONStatus
ludus (bare)PASSPASS22 agents, 4 images
ludus info statusPASSPASSall green
ludus info doctorPASSPASS0 errors, 0 warnings
ludus info cronPASSPASS2 entries
ludus info imagesPASSPASS4/4 found
ludus info agentsPASSPASS22 agents
ludus info intercomPASSPASSempty
ludus --versionPASS0.1.0
Mimas unreachablePASSgraceful

All 9 spec checks pass. Zero errors, zero warnings.