Skip to content

Add structured (JSON) output for tool/agent integration #3262

Description

@dndungu

What

A machine-readable output mode for claw -- a --json (or --format json) flag that emits a structured final result instead of (or alongside) raw stdout.

Ideally:

  • a single final JSON envelope with at least: the result/assistant text, an exit/outcome status, and token usage + cost when available; and/or
  • a newline-delimited JSON (NDJSON) event stream for progress, terminated by the final result object (the shape codex exec --json and opencode run --format json already use).

Why

Tools that drive a coding agent as a non-interactive subprocess need machine-parseable output to integrate it reliably. kazi (an open-source reconciliation controller that drives a coding agent in a loop until a goal's predicates are objectively true) supports multiple harnesses as config-driven profiles -- claude, opencode, codex, and others -- by parsing each harness's structured output for the result and token/cost usage.

Because claw currently emits only raw stdout with no structured envelope, its integration is necessarily best-effort: the raw text can be captured as the result, but there is no reliable way to extract the outcome status or token/cost. A --json mode would let claw be driven as a first-class, cost-accountable harness the same way codex/opencode are.

Suggested shape (for reference)

claw <prompt> --json
# -> {"result": "...", "status": "ok", "usage": {"input_tokens": N, "output_tokens": M, "cost_usd": X}}

Matching the codex/opencode NDJSON convention would let existing parsers be reused. Happy to share how the kazi profile contract works if useful. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions