hypereal-sdk
v0.1.0
Published
TypeScript SDK for the Hypereal AI API
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);
}
}