Install

`autohand::Config`

Configuration sets the working directory, CLI binary path, debug output, request timeout, model override, skills, system prompt additions, and execution-mode flags.

`autohand::AutohandSdk`

Use the low-level wrapper when you need direct JSON-RPC control.

  • start() / stop()
  • request(method, params_json)
  • prompt(message, options)
  • stream_prompt(message, on_event, options)
  • interrupt()
  • set_plan_mode(enabled)
  • set_permission_mode(mode)
  • set_model(model)
  • get_state()
  • get_messages()
  • permission_response(request_id, decision)

`autohand::Agent`

The high-level agent API is the best fit for product code that sends prompts, streams events, and waits for final results.

  • send(prompt, options)
  • run(prompt, options)
  • run_json(prompt, schema_json)
  • allow_permission(request_id)
  • deny_permission(request_id)
  • set_plan_mode(enabled)
  • close()

Run

  • stream(on_event): stream events and record final text
  • wait(): wait until the run finishes and collect text/events
  • json_text(): parse final output as JSON text
  • abort(): interrupt the current run

SDK events

All CLI-backed SDKs expose the same runtime event names, with language-specific wrappers or helper methods around the raw JSON payload.

  • agent_start
  • turn_start
  • message_update
  • message_end
  • tool_start
  • tool_update
  • tool_end
  • permission_request
  • error

Structured JSON

Use the JSON helpers when the host application needs typed output from the final assistant response.