C++ API Reference
Reference surface for the C++ SDK. These APIs wrap the Autohand CLI JSON-RPC runtime while keeping host-language lifecycle and event handling idiomatic.
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_startturn_startmessage_updatemessage_endtool_starttool_updatetool_endpermission_requesterror
Structured JSON
Use the JSON helpers when the host application needs typed output from the final assistant response.