hypereal-sdk
v0.1.0
Published
TypeScript SDK for the Hypereal AI API
Downloads
515
Maintainers
Readme
Hypereal TypeScript SDK
Official TypeScript SDK for the Hypereal AI API. Use one client for LLM responses, OpenAI-compatible chat completions, image generation, video generation, audio generation, job polling, and storage uploads.
Install
pnpm add hypereal-sdkUsage
import { Hypereal } from 'hypereal-sdk';
const client = new Hypereal({
apiKey: process.env.HYPEREAL_API_KEY!,
});
const models = await client.models.list();
console.log(models.data.map((model) => model.id));Chat completions
const completion = await client.chat.completions.create({
model: 'gpt-5.5',
messages: [
{ role: 'system', content: 'You write concise production notes.' },
{ role: 'user', content: 'Summarize the image generation API.' },
],
});Responses API
const response = await client.responses.create({
model: 'gpt-5.5',
input: 'Write a short launch checklist for an SDK release.',
});Image generation
const image = await client.images.generate({
model: 'gemini-3-1-flash-t2i',
prompt: 'A cinematic portrait in neon light',
aspect_ratio: '16:9',
resolution: '2K',
});Video generation
const video = await client.videos.generate({
model: 'veo-3.1',
input: {
prompt: 'A product shot rotating on a clean studio table',
duration: 5,
},
});Audio generation
const audio = await client.audio.generate({
model: 'audio-tts',
input: {
text: 'Ship the SDK with typed examples and clear errors.',
voice: 'alloy',
},
});Poll jobs
Some media providers return a job id. Poll until a terminal response is ready:
const job = await client.jobs.poll('job_or_prediction_id', {
params: {
model: 'veo-3.1',
type: 'video',
},
intervalMs: 2500,
timeoutMs: 180_000,
});Storage uploads
const result = await client.storage.uploadFile(file, {
filename: 'training-image.png',
contentType: 'image/png',
kind: 'dataset',
});
const object = await client.storage.get(result.id);For local development, point the SDK at your Next.js server:
const client = new Hypereal({
apiKey: process.env.HYPEREAL_API_KEY!,
baseURL: 'http://localhost:3000/api',
});Streaming
Streaming endpoints return the raw Response so callers can consume the body:
const response = await client.chat.completions.create<Response>({
model: 'gpt-5.5',
stream: true,
messages: [{ role: 'user', content: 'Stream a short answer.' }],
});
for await (const chunk of response.body!) {
process.stdout.write(Buffer.from(chunk).toString('utf8'));
}API reference
client.models.list()client.chat.completions.create(body)client.responses.create(body)client.images.generate(body)client.videos.generate(body)client.audio.generate(body)client.jobs.get(id, params)client.jobs.poll(id, options)client.storage.createUploadUrl(body)client.storage.uploadFile(file, body)client.storage.commit(id)client.storage.list(params)client.storage.get(id)client.storage.update(id, { isPublic })client.storage.delete(id)
Errors
import { Hypereal, HyperealAPIError } from 'hypereal-sdk';
try {
await new Hypereal({ apiKey: 'ck_invalid' }).models.list();
} catch (error) {
if (error instanceof HyperealAPIError) {
console.log(error.status, error.type, error.message);
}
}