TypeScript SDK patterns for Opik. Use when working in sdks/typescript.
Public API → OpikClient → Domain (Trace/Span) → BatchQueues → REST Client → Backend
README.md and integration README files in the same PR.// ✅ REQUIRED - especially in CLI/tests
await client.flush();
// or globally:
await flushAll();
// ✅ GOOD - domain objects enqueue, not HTTP
trace.update({ metadata: { key: 'value' } }); // Enqueues update
trace.end(); // Enqueues update
// ❌ BAD - don't call REST directly from domain
// ✅ GOOD - export from public API
export { Opik, track, flushAll } from 'opik';
// ❌ BAD - don't expose generated clients
import { TracesApi } from 'opik/rest_api'; // Internal!
flush() flushes all queues in orderOpikConfigOpikApiError, OpikApiTimeoutErrorDatasetNotFoundError, ExperimentNotFoundErrorflush() escape hatch if needed