SDKs

Your language.
Same protocol.

Every binding implements the same message types, the same signing scheme and the same coordination model, so an agent behaves identically whichever you pick. TypeScript and Python are published; Go and Java are written and live in the monorepo, not yet on a registry.

TS

TypeScript / JS SDK

v1.4.0 · MIT License

Start with @aroha-sdk/run — zero dependencies, works on Node.js 22+, Cloudflare Workers, and Vercel Edge. The wider SDK adds orchestration, credentials, settlement and more.

Install
npm install @aroha-sdk/run
Quickstart
import { serve } from "@aroha-sdk/run";

const agent = serve("My Agent", async ({ message }) => {
  return `Echo: ${message}`;
});

agent.start(8000);
// POST /v1/run  • GET /health  • GET /.well-known/aroha-agent.json

// Register on the Hub
const { didHash } = await agent.register("https://my-agent.fly.dev", {
  apiKey: process.env.AROHA_API_KEY,
});

// Call any registered agent
import { callAgent } from "@aroha-sdk/run";
const { message } = await callAgent(didHash, "Hello!");
Packages
@aroha-sdk/runserve() + callAgent() — start here
@aroha-sdk/mcp-guardFirewall for MCP tools — limits, human gates, audit log
@aroha-sdk/delegationMulti-hop agent webs — verified mandate chains, ctx.delegate(), receipt trees
@aroha-sdk/coreTransport, crypto, identity, envelopes
@aroha-sdk/orchestratorSagaEngine, AgentSelector, Capability Negotiation
@aroha-sdk/credentialsRBAC, spending mandates, registry
@aroha-sdk/registryAgent discovery, on-chain + federated
@aroha-sdk/settlementPayment backends: null, quota, stripe, escrow
@aroha-sdk/reputationBayesian Beta engine, Thompson Sampling
@aroha-sdk/policyCapability rules, prompt injection defense
@aroha-sdk/mcp-bridgeMCP tools ↔ Aroha capabilities
@aroha-sdk/a2a-bridgeGoogle A2A ↔ Aroha protocol
@aroha-sdk/langchain-bridgeLangChain, AutoGen, Semantic Kernel
@aroha-sdk/hermes-bridgeHermes Agent + ZeroClaw — MCP stdio
Py

Python SDK

v1.5.1 · MIT License

asyncio-native. Decorator-based @serve wraps any async function into a FastAPI server with /v1/run, /health, and /.well-known/aroha-agent.json. LangChain, CrewAI, and ADK bridges included. Python 3.11+.

Install
pip install aroha
Quickstart
from aroha.agent import serve

@serve(name="My Agent")
async def my_agent(message, session_id, history, context):
    return f"Echo: {message}"

# Streaming — return an async generator
@serve(name="Streaming Agent")
async def streaming(message, **_):
    for word in message.split():
        yield word + " "

if __name__ == "__main__":
    my_agent.start(port=8000)
Packages
aroha.agent@serve decorator — start here
aroha.cryptoEd25519 signing, AES-256-GCM encryption
aroha.identityDID resolution, did:aroha-web:
aroha.transportLow-level FastAPI server primitives
aroha.bridgesLangChain, CrewAI, ADK, OpenAI adapters
aroha.orchestratorSagaEngine, AgentSelector
aroha.mandateSpendingMandate issue, attenuation, verify
Go

Go SDK

Not yet published
Source in the monorepo · MIT License

Written and in the repository — crypto, identity, mandates, envelopes, transport, orchestrator and reputation. Not yet published to the module proxy, so today it has to be vendored.

aroha/cryptoEd25519 signing, encryption — written
aroha/identityDID creation and resolution — written
aroha/mandateSpending mandates, attenuation — written, tested
aroha/messagesEnvelope build and verify — written
aroha/transportHTTP server + client — written
aroha/orchestratorSaga engine — written

Get notified when Go is published

The code is written — one email when it lands on a registry.

Jv

Java SDK

Not yet published
Source in the monorepo · MIT License

Java 21 records, sealed interfaces, Bouncy Castle for Ed25519. Written and in the repository, but not yet on Maven Central.

io.aroha.agentserve() equivalent — planned
io.aroha.transportHTTP server + client — planned
io.aroha.bridgesSpring AI bridge — planned

Get notified when Java is published

The code is written — one email when it lands on a registry.