Skip to main content

Laminar.initialize(options?)

Initialize Laminar tracing and auto-instrumentation. Parameters:
NameTypeDefaultDescription
projectApiKeystringLMNR_PROJECT_API_KEY envProject API key
baseUrlstringhttps://api.lmnr.aiBase URL
baseHttpUrlstringbaseUrlOTLP HTTP base URL
httpPortnumber443OTLP HTTP port
grpcPortnumber8443OTLP gRPC port
instrumentModulesRecord<string, unknown>undefinedLibraries to auto-instrument
disableBatchbooleanfalseDisable batching span processor
traceExportTimeoutMillisnumber30000Export timeout
maxExportBatchSizenumber512Max spans per export batch
forceHttpbooleanfalseForce OTLP HTTP exporter
logLevel'error' | 'warn' | 'info' | 'debug''error'SDK log level
sessionRecordingOptionsSessionRecordingOptionsBrowser session recording options
Returns: void

instrumentModules

Pass modules to auto-instrument in initialize().
import { Laminar } from '@lmnr-ai/lmnr';
import OpenAI from 'openai';
import Anthropic from '@anthropic-ai/sdk';

Laminar.initialize({
  projectApiKey: process.env.LMNR_PROJECT_API_KEY,
  instrumentModules: {
    openAI: OpenAI,
    anthropic: Anthropic,
  },
});
Supported module keys:
KeyPackage
openAI / OpenAIopenai
anthropic@anthropic-ai/sdk
azureOpenAIAzure OpenAI
coherecohere-ai
bedrockAWS Bedrock
google_vertexaiVertex AI
google_aiplatformAI Platform
pinecone@pinecone-database/pinecone
langchainlangchain (with submodules)
llamaIndexllamaindex
chromadbchromadb
qdrant@qdrant/js-client-rest
togethertogether-ai
playwrightplaywright
puppeteerpuppeteer
stagehand@browserbasehq/stagehand
kernelMicrosoft Kernel
claudeAgentSDK@anthropic-ai/claude-agent-sdk
Special cases:
  • Pass undefined → auto-instrument all supported
  • Pass {} → disable all auto-instrumentation

Laminar.patch(modules)

Manually instrument modules after initialization.
import { Laminar } from '@lmnr-ai/lmnr';
import OpenAI from 'openai';

Laminar.initialize({ projectApiKey: '...' });

// Later (e.g., in Next.js server components)
Laminar.patch({ openAI: OpenAI });
Parameters:
NameTypeDefaultDescription
modulesInitializeOptions['instrumentModules']Modules to instrument
Returns: void Note: Throws if modules empty. Warns if Laminar not initialized.

Laminar.wrapClaudeAgentQuery(originalQuery)

Instrument Claude Agent SDK query function.
import { Laminar } from '@lmnr-ai/lmnr';
import { query } from '@anthropic-ai/claude-agent-sdk';

const instrumentedQuery = Laminar.wrapClaudeAgentQuery(query);
Use when: Claude Agent SDK imported before Laminar.initialize() or in ESM environments. Parameters:
NameTypeDefaultDescription
originalQueryFunctionThe original Claude Agent SDK query function
Returns: Function (same type as originalQuery) Alternative: Use the top-level export instrumentClaudeAgentQuery(originalQuery).