runClaude runs the unmodified CLI in print mode with a JSON-schema answer, in a fresh empty directory with only PATH, HOME, CLAUDE_CONFIG_DIR (the owner's login) and the session's HL_URL/HL_TOKEN; the tools profile allows Bash(hl *) and Read/Edit/Write under dontAsk, with a PreToolUse hook (model-guard.ts) that refuses anything else. Usage limits and expired logins come back as rate_limited / auth_failed. POST /run on the sidecar, one run at a time; the driver's client throws ModelError. hl (bin/hl) maps each command to one executor agent route; compose saves ./compose.yaml and write sends it back. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>