Point your AI agents at Scopex3D and watch them run in 3D — see every step, cost, and failure live.
The same traces you send to LangSmith or Langfuse — rendered live in 3D.
If your app already emits OpenTelemetry (LangSmith, Langfuse, OpenLLMetry, Arize…), just set these env vars. One trace becomes one 3D session.
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT = https://scopex3d.com/v1/traces OTEL_EXPORTER_OTLP_PROTOCOL = http/json OTEL_EXPORTER_OTLP_HEADERS = x-api-key=<your SCOPEX3D_API_KEY>
Watch a trace at /live?sessionId=otel-<traceId>. OTLP/HTTP JSON supported today.
Drop sdk/scopex3d.ts into your project and emit events from anywhere in your agent code.
import { Scopex3D } from "./sdk/scopex3d";
const ns = new Scopex3D({ apiKey: (process.env.SCOPEX3D_API_KEY ?? process.env.SCOPEX3D_API_KEY)! });
await ns.start({ agent: "Planner" });
console.log("Watch live:", ns.watchUrl());
await ns.llmCall({ agent: "Planner", cost: 0.02, reasoning: "Drafting the plan" });
await ns.toolUse({ agent: "Coder", payload: { file: "LoginForm.tsx" } });
await ns.error({ agent: "Coder", reasoning: "TypeError: cannot read 'map'" });
await ns.end();Try it instantly: node examples/try-scopex3d.mjs
POST https://scopex3d.com/api/sessions x-api-key { "agent": "Planner" } → { "id" }
POST https://scopex3d.com/api/ingest x-api-key { "sessionId", "agent", "type", "cost", "payload" }
GET https://scopex3d.com/live?sessionId=<id> ← open in a browser to watch in 3DEvent types: agent_start · llm_call · tool_use · routing_decision · error · agent_end · plan
Optional: attach payload.eval ({ score: 0–1, criteria, grader }) to any event to see graded steps on click.