https://github.com/autohandai/code-agent-sdk-cpp
Autohand Code Agent SDK for C++: C++20 CLI-backed agent orchestration with CMake targets and examples. Docs: https://autohand.ai/docs/agent-sdk/
https://github.com/autohandai/code-agent-sdk-cpp
agent-sdk autohand cpp
Last synced: about 1 month ago
JSON representation
Autohand Code Agent SDK for C++: C++20 CLI-backed agent orchestration with CMake targets and examples. Docs: https://autohand.ai/docs/agent-sdk/
- Host: GitHub
- URL: https://github.com/autohandai/code-agent-sdk-cpp
- Owner: autohandai
- Created: 2026-05-08T16:45:53.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-12T05:01:38.000Z (about 2 months ago)
- Last Synced: 2026-05-12T06:28:00.271Z (about 2 months ago)
- Topics: agent-sdk, autohand, cpp
- Language: C++
- Homepage: https://autohand.ai/docs/agent-sdk/
- Size: 34.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Autohand Code Agent SDK for C++
Modern C++20 SDK for building applications that control Autohand code agents through the Autohand CLI JSON-RPC mode.
**Documentation:** https://autohand.ai/docs/agent-sdk/
**Beta:** this SDK is actively evolving while the Agent SDK APIs stabilize. Pin versions in production and review release notes before upgrading.
## What It Does
The C++ SDK wraps the existing Autohand CLI process and exposes a small host-friendly API:
```text
C++ app -> autohand::sdk -> Autohand CLI subprocess -> provider -> model
```
Use it when you want Autohand inside native developer tools, editors, desktop apps, automation services, or CI utilities without reimplementing the CLI agent protocol.
## Features
- C++20 API with value-oriented configuration
- CMake target: `autohand::sdk`
- CLI subprocess transport over JSON-RPC 2.0
- Typed event helpers for message deltas, tools, permissions, and errors
- High-level `Agent` and `Run` workflow
- Low-level `AutohandSdk` control methods
- Structured JSON extraction helper
- Example parity with the TypeScript SDK examples
## Requirements
- C++20 compiler
- CMake 3.22 or later
- POSIX runtime for the initial transport implementation
- Autohand CLI installed and authenticated
- A configured provider in `~/.autohand/config.json`, or environment variables accepted by the CLI
Set `AUTOHAND_CLI_PATH` when you want to force a local CLI binary:
```bash
export AUTOHAND_CLI_PATH=/path/to/autohand
```
## Installation
Use the repository as a CMake dependency:
```cmake
include(FetchContent)
FetchContent_Declare(
autohand_sdk
GIT_REPOSITORY https://github.com/autohandai/code-agent-sdk-cpp.git
GIT_TAG main
)
FetchContent_MakeAvailable(autohand_sdk)
target_link_libraries(my_app PRIVATE autohand::sdk)
```
## Quick Start
```cpp
#include
#include
int main() {
autohand::Agent agent(
autohand::Config::from_environment()
.with_cwd(".")
.with_instructions("Review code with senior C++ judgement."));
auto run = agent.send("Review this repository for release readiness.");
run.stream([](const autohand::SdkEvent& event) {
if (event.type == "message_update") {
std::cout << event.text_delta();
} else if (event.type == "permission_request") {
std::cerr << "\npermission requested: " << event.description() << "\n";
}
});
auto result = run.wait();
std::cout << "\nRun " << result.id << " finished with " << result.status << "\n";
}
```
## Low-Level Control
Use `AutohandSdk` when your host needs direct access to the JSON-RPC control surface:
```cpp
#include
#include
int main() {
autohand::AutohandSdk sdk(autohand::Config::from_environment().with_cwd("."));
sdk.start();
sdk.set_plan_mode(true);
sdk.stream_prompt("Create a discovery plan for this SDK change.", [](const autohand::SdkEvent& event) {
std::cout << event.type << "\n";
});
sdk.stop();
}
```
## Examples
The `examples/` directory mirrors the TypeScript SDK example inventory:
- `01-hello-agent.cpp`
- `02-streaming-query.cpp`
- `03-code-reviewer.cpp`
- `04-bash-command.cpp`
- `05-file-editor.cpp`
- `06-prompt-skills.cpp`
- `07-direct-skills.cpp`
- `08-memory-management.cpp`
- `10-multi-tool-reasoning.cpp`
- `13-permissions.cpp`
- `20-sdlc-discovery-plan.cpp`
- `21-sdlc-gated-implementation.cpp`
- `22-sdlc-release-readiness.cpp`
- `23-system-prompts.cpp`
- `24-high-level-agent.cpp`
- `25-structured-json.cpp`
- `basic-agent.cpp`
- `basic-usage.cpp`
- `loop-strategies.cpp`
- `permission-handling.cpp`
- `sdk-control-features.cpp`
- `streaming.cpp`
Build and run an example:
```bash
cmake -S . -B build -DAUTOHAND_BUILD_EXAMPLES=ON
cmake --build build --target example_01_hello_agent
./build/example_01_hello_agent
```
Live examples require an authenticated Autohand CLI and may ask for tool permissions depending on your CLI configuration.
## Documentation
- [Getting Started](./docs/getting-started.md)
- [API Reference](./docs/API_REFERENCE.md)
- [Configuration](./docs/configuration.md)
- [Event Streaming](./docs/event-streaming.md)
- [Permissions](./docs/permissions.md)
- [Plan Mode](./docs/plan-mode.md)
- [SDLC Workflows](./docs/sdlc-workflows.md)
- [Error Handling](./docs/error-handling.md)
- [Examples](./docs/examples.md)
- [Contributing](./CONTRIBUTING.md)
- [Security](./SECURITY.md)
## Development
```bash
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DAUTOHAND_BUILD_TESTS=ON -DAUTOHAND_BUILD_EXAMPLES=ON
cmake --build build
ctest --test-dir build --output-on-failure
```
The transport tests use a deterministic fake CLI, so the unit suite does not require model credentials.
## Other SDKs
- [TypeScript](https://github.com/autohandai/code-agent-sdk-typescript)
- [Python](https://github.com/autohandai/code-agent-sdk-python)
- [Go](https://github.com/autohandai/code-agent-sdk-go)
- [Java](https://github.com/autohandai/code-agent-sdk-java)
- [Swift](https://github.com/autohandai/code-agent-sdk-swift)
- [Rust](https://github.com/autohandai/code-agent-sdk-rust)
- [C#](https://github.com/autohandai/code-agent-sdk-csharp)
## Support
- SDK docs: https://autohand.ai/docs/agent-sdk/
- Issues: https://github.com/autohandai/code-agent-sdk-cpp/issues
- Security reports: security@autohand.ai