@caleblawson/client-js
v0.10.6-alpha.0
Published
The official TypeScript library for the Mastra Client API
Readme
Mastra Client
JavaScript/TypeScript client library for the Mastra AI framework. This client provides a simple interface to interact with Mastra AI's APIs for agents, vectors, memory, tools, and workflows.
Installation
npm install @mastra/client-jsQuick Start
import { MastraClient } from '@mastra/client-js';
// Initialize the client
const client = new MastraClient({
baseUrl: 'http://localhost:4111', // Your Mastra API endpoint
});
// Example: Working with an Agent
async function main() {
// Get an agent instance
const agent = client.getAgent('your-agent-id');
// Generate a response
const response = await agent.generate({
messages: [{ role: 'user', content: "What's the weather like today?" }],
});
console.log(response);
}Client Configuration
The client can be configured with several options:
const client = new MastraClient({
baseUrl: string; // Base URL for the Mastra API
retries?: number; // Number of retry attempts (default: 3)
backoffMs?: number; // Initial backoff time in ms (default: 300)
maxBackoffMs?: number; // Maximum backoff time in ms (default: 5000)
headers?: Record<string, string>; // Custom headers
});Available Methods
Agents
getAgents(): Get all available agentsgetAgent(agentId): Get a specific agent instanceagent.details(): Get agent detailsagent.generate(params): Generate a responseagent.stream(params): Stream a responseagent.getTool(toolId): Get agent tool detailsagent.evals(): Get agent evaluationsagent.liveEvals(): Get live evaluations
Memory
getMemoryThreads(params): Get memory threadscreateMemoryThread(params): Create a new memory threadgetMemoryThread(threadId): Get a memory thread instancesaveMessageToMemory(params): Save messages to memorygetMemoryStatus(): Get memory system status
Tools
getTools(): Get all available toolsgetTool(toolId): Get a tool instancetool.details(): Get tool detailstool.execute(params): Execute the tool
Workflows
getWorkflows(): Get all workflowsgetWorkflow(workflowId): Get a workflow instanceworkflow.details(): Get workflow detailsworkflow.createRun(): Create workflow runworkflow.startAsync(params): Execute the workflow and wait for execution resultsworkflow.resumeAsync(parmas): Resume suspended workflow step asyncworkflow.watch({runId},(record)=>{}): Watch the step transitions of the workflow runworkflow.start({runId, triggerData}): Start a workflow run syncworkflow.resume(params): Resume the workflow run sync
Vectors
getVector(vectorName): Get a vector instancevector.details(indexName): Get vector index detailsvector.delete(indexName): Delete a vector indexvector.getIndexes(): Get all indexesvector.createIndex(params): Create a new indexvector.upsert(params): Upsert vectorsvector.query(params): Query vectors
Logs
getLogs(params): Get system logsgetLog(params): Get specific log entrygetLogTransports(): Get configured Log transports
Telemetry
getTelemetry(params): Get telemetry data
Error Handling
The client includes built-in retry logic for failed requests:
- Automatically retries failed requests with exponential backoff
- Configurable retry count and backoff timing
- Throws error after max retries reached
Internal Implementation
The client uses the native fetch API internally for making HTTP requests. All requests are automatically handled with:
- JSON serialization/deserialization
- Retry logic with exponential backoff
- Custom header management
- Error handling
License
MIT
