typescript-sdk
Installation
SKILL.md
TypeScript SDK
Architecture
- Layered, non-blocking by default
- Data buffered and flushed async to backend
- Node >= 18, ESM + CJS builds
Layer Flow
Public API → OpikClient → Domain (Trace/Span) → BatchQueues → REST Client → Backend
Critical Gotchas
- When changing dependencies or minimum versions, update and verify version references in
README.mdand integration README files in the same PR.
Flush Before Exit
// ✅ REQUIRED - especially in CLI/tests
await client.flush();
// or globally:
await flushAll();
Domain Objects Don't Do HTTP
// ✅ 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
Never Leak rest_api
// ✅ GOOD - export from public API
export { Opik, track, flushAll } from 'opik';
// ❌ BAD - don't expose generated clients
import { TracesApi } from 'opik/rest_api'; // Internal!
Batching Semantics
- Updates wait for pending creates
- Deletes wait for creates and updates
flush()flushes all queues in order- Debounce window configurable via
OpikConfig
Error Handling
- HTTP failures:
OpikApiError,OpikApiTimeoutError - 404s translate to domain errors:
DatasetNotFoundError,ExperimentNotFoundError - Never swallow errors, include context in logs
Integration Guidelines
- Integrations wrap public API only
- Keep adapters thin, non-blocking
- Provide
flush()escape hatch if needed
Reference Files
- testing.md - Vitest patterns, mocking, flush timing
Related skills
More from comet-ml/opik
playwright-e2e
Playwright E2E test generation workflow for Opik. Use when generating, fixing, or planning automated tests in tests_end_to_end/.
49diagram-generation
Generate self-contained HTML architecture diagrams. Use when creating visual diagrams for PRs, task plans, or architectural explanations.
28documentation
Feature documentation and release notes patterns. Use when documenting changes, writing PR descriptions, or preparing releases.
27opik-frontend
React frontend patterns for Opik. Use when working in apps/opik-frontend, on components, state, or data fetching.
24python-sdk
Python SDK patterns for Opik. Use when working in sdks/python, on SDK APIs, integrations, or message processing.
24opik-backend
Java backend patterns for Opik. Use when working in apps/opik-backend, designing APIs, database operations, or services.
22