Quickstart
Spin up an agent, trigger a run, and stream the output — in about 30 lines of TypeScript.
1. Get an API key
Sign up at veroagents.com and create an API key in the dashboard. Keys are scoped to a tenant and look like sk_live_....
2. Install the SDK
bash
pnpm add @veroai/sdk3. Create an agent
typescript
import { VeroAI } from "@veroai/sdk";
const veroai = new VeroAI({ apiKey: process.env.VERO_API_KEY! });
const agent = await veroai.agents.create({
displayName: "Claims Coordinator",
roleId: "coordinator",
model: "claude-sonnet-4-20250514",
systemPrompt: "You handle denied insurance claims. Be calm and precise.",
autoTrigger: true,
});
console.log("agent id:", agent.id);4. Trigger a run and stream it
typescript
const { runId } = await veroai.agents.trigger(agent.id, {
conversationId: "call_8291",
senderId: "david-cohen",
message: "Policy IL-4821 was denied yesterday. What happened?",
});
for await (const ev of veroai.agents.runs.stream(runId)) {
switch (ev.type) {
case "token":
process.stdout.write(String(ev.data.text));
break;
case "tool_call":
console.error("\ntool:", ev.data.name, ev.data.args);
break;
case "done":
return;
case "error":
throw new Error(String(ev.data.message));
}
}5. (Optional) Isolate tool calls in a Sandcastle VM
If your agent runs untrusted code — scraping, browser automation, arbitrary shell — spawn a Sandcastle microVM and point the agent at its MCP endpoint.
typescript
const vm = await veroai.sandcastle.create({
image: "dev-machine",
agentId: agent.id,
secrets: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },
idleTtl: 300,
});
console.log("MCP endpoint:", vm.mcpEndpoint);
// point any MCP-compatible agent at vm.mcpEndpoint, or veroai.sandcastle.exec() shell commands directly.