JavaScript/TypeScript SDK
Official JavaScript and TypeScript SDK for Tenzro. Works everywhere JavaScript runs - Node.js, browsers, Deno, Bun, and edge runtime environments.
npm package
TypeScript ready
Streaming
Installation
Install JavaScript SDKbash
# Install with npm
npm install @tenzro/sdk
# Install with yarn
yarn add @tenzro/sdk
# Install with pnpm
pnpm add @tenzro/sdk
# Install with bun
bun add @tenzro/sdk
Quick Start
Basic Usagejavascript
import { Tenzro } from '@tenzro/sdk';
// Initialize the client
const tenzro = new Tenzro({
apiKey: 'sk_your_key_here', // Get from platform.tenzro.com
baseURL: 'https://api.tenzro.com', // Optional, defaults to this
});
// Generate text with AI
const response = await tenzro.cortex.generate({
prompt: "Write a hello world function in Python",
model: "gpt-4o",
max_tokens: 1000
});
console.log(response.content);
Configuration
Environment Variablesjavascript
// Using environment variables (recommended)
// Set TENZRO_API_KEY in your environment
const tenzro = new Tenzro(); // Automatically uses process.env.TENZRO_API_KEY
// Or load from a .env file
import { config } from 'dotenv';
config();
const tenzro = new Tenzro({
apiKey: process.env.TENZRO_API_KEY
});
Error Handling
Try-Catch with TenzroErrorjavascript
import { TenzroError } from '@tenzro/sdk';
try {
const response = await tenzro.cortex.generate({
prompt: "Hello world",
model: "gpt-4o"
});
console.log(response.content);
} catch (error) {
if (error instanceof TenzroError) {
console.error('Tenzro API Error:', error.message);
console.error('Error code:', error.code);
console.error('Status:', error.status);
} else {
console.error('Unexpected error:', error);
}
}
Streaming
Real-time Streamingjavascript
// Streaming text generation
const stream = await tenzro.cortex.stream({
prompt: "Write a long story about space exploration",
model: "gpt-4o"
});
for await (const chunk of stream) {
process.stdout.write(chunk.content);
}
// Or with callback
await tenzro.cortex.stream({
prompt: "Write a story",
model: "gpt-4o"
}, {
onChunk: (chunk) => console.log(chunk.content),
onComplete: () => console.log('\nStream completed'),
onError: (error) => console.error('Stream error:', error)
});
React Integration
React Chat Componentjavascript
import React, { useState } from 'react';
import { Tenzro } from '@tenzro/sdk';
const tenzro = new Tenzro({
apiKey: process.env.REACT_APP_TENZRO_API_KEY
});
function AIChat() {
const [messages, setMessages] = useState([]);
const [input, setInput] = useState('');
const [loading, setLoading] = useState(false);
const sendMessage = async () => {
if (!input.trim()) return;
setLoading(true);
const userMessage = { role: 'user', content: input };
setMessages(prev => [...prev, userMessage]);
try {
const response = await tenzro.cortex.chat({
messages: [...messages, userMessage],
model: 'gpt-4o'
});
setMessages(prev => [...prev, {
role: 'assistant',
content: response.content
}]);
} catch (error) {
console.error('Error:', error);
} finally {
setLoading(false);
setInput('');
}
};
return (
<div className="chat-container">
<div className="messages">
{messages.map((msg, i) => (
<div key={i} className={`message ${msg.role}`}>
{msg.content}
</div>
))}
</div>
<div className="input-area">
<input
value={input}
onChange={(e) => setInput(e.target.value)}
onKeyPress={(e) => e.key === 'Enter' && sendMessage()}
disabled={loading}
/>
<button onClick={sendMessage} disabled={loading}>
{loading ? 'Sending...' : 'Send'}
</button>
</div>
</div>
);
}
Node.js Backend
Express.js API Serverjavascript
// Node.js backend example
import express from 'express';
import { Tenzro } from '@tenzro/sdk';
const app = express();
const tenzro = new Tenzro();
app.use(express.json());
// Generate text endpoint
app.post('/api/generate', async (req, res) => {
try {
const { prompt, model = 'gpt-4o' } = req.body;
const response = await tenzro.cortex.generate({
prompt,
model
});
res.json({
success: true,
content: response.content,
tokens_used: response.tokens_used,
cost: response.cost_estimate
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
// Deploy application endpoint
app.post('/api/deploy', async (req, res) => {
try {
const { github_url, name } = req.body;
const deployment = await tenzro.factory.quickDeploy({
github_url,
name
});
res.json({
success: true,
deployment_id: deployment.id,
url: deployment.endpoint.url
});
} catch (error) {
res.status(500).json({
success: false,
error: error.message
});
}
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Key Features
Full TypeScript Support
Complete type definitions for all API responses and request parameters
Universal Compatibility
Works in Node.js, browsers, Deno, Bun, and edge runtime environments
Tree Shakeable
Import only what you need for smaller bundle sizes
Streaming Support
Real-time streaming for chat, text generation, and live APIs
Async/Await
Modern promise-based API with async/await support
Error Handling
Comprehensive error types and automatic retry logic
Next Steps
Need help? Check out our Quick Start guide or contact support