Raw Protocol
Write handlers in any language without an SDK using the raw stdin/stdout protocol.Protocol Overview
TaskDaemon communicates with handlers via:- Input: JSON task objects sent to stdin (one per line)
- Output: JSON result objects written to stdout (one per line)
Input Format
Each line on stdin is a JSON object:
The handler request uses
attempt = stored attempts + 1, starting at attempt: 1. API attempts starts at zero and increments on retry scheduling or a Failed marking; successful completion does not increment it. An initial success therefore has request attempt: 1 and API attempts: 0, while an initial terminal failure stores attempts: 1. Recovery can repeat the same request attempt, so this number is not a unique execution counter.
The daemon retries only valid status: "error" responses with retryable: true, subject to the task’s stored retry budget and backoff. Execution timeout or broken protocol/I/O is a terminal failure, and the unusable handler stream is stopped before reuse.