Documentation Index
Fetch the complete documentation index at: https://runcrate.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
The @runcrate/ai package is a Runcrate provider for the Vercel AI SDK. Use it to build AI-powered applications with generateText, streamText, generateImage, structured output, and tool calling — all backed by Runcrate’s 140+ open-source models.
Installation
npm install @runcrate/ai ai
Requires ai v6+ and Node.js 18+.
Quick Start
import { runcrate } from '@runcrate/ai';
import { generateText } from 'ai';
const { text } = await generateText({
model: runcrate('deepseek-ai/DeepSeek-V3'),
prompt: 'Explain quantum computing in simple terms.',
});
console.log(text);
Set the RUNCRATE_API_KEY environment variable, or pass apiKey directly when creating the provider.
Configuration
import { createRuncrate } from '@runcrate/ai';
const runcrate = createRuncrate({
apiKey: 'rc_live_...', // or RUNCRATE_API_KEY env var
baseURL: 'https://api.runcrate.ai/v1', // default
headers: { 'X-Custom-Header': 'value' }, // optional
});
A default instance is also exported for convenience:
import { runcrate } from '@runcrate/ai';
// Uses RUNCRATE_API_KEY env var automatically
Text Generation
Basic
import { runcrate } from '@runcrate/ai';
import { generateText } from 'ai';
const { text } = await generateText({
model: runcrate('deepseek-ai/DeepSeek-V3'),
prompt: 'What is the capital of France?',
});
Streaming
import { runcrate } from '@runcrate/ai';
import { streamText } from 'ai';
const result = streamText({
model: runcrate('deepseek-ai/DeepSeek-V3'),
prompt: 'Write a short story about a robot.',
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}
Chat Messages
const { text } = await generateText({
model: runcrate('meta-llama/Llama-4-Scout'),
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'What is the capital of France?' },
],
});
Structured Output
import { runcrate } from '@runcrate/ai';
import { generateText, Output } from 'ai';
import { z } from 'zod';
const { output } = await generateText({
model: runcrate('deepseek-ai/DeepSeek-V3'),
output: Output.object({
schema: z.object({
name: z.string(),
ingredients: z.array(z.string()),
steps: z.array(z.string()),
}),
}),
prompt: 'Generate a recipe for chocolate chip cookies.',
});
Image Generation
import { runcrate } from '@runcrate/ai';
import { generateImage } from 'ai';
const { image } = await generateImage({
model: runcrate.imageModel('black-forest-labs/FLUX.1-schnell'),
prompt: 'A futuristic cityscape at sunset',
size: '1024x768',
});
console.log(image.base64);
Embeddings
import { runcrate } from '@runcrate/ai';
import { embed } from 'ai';
const { embedding } = await embed({
model: runcrate.embeddingModel('BAAI/bge-large-en-v1.5'),
value: 'The quick brown fox jumps over the lazy dog',
});
Model Methods
| Method | Returns | Description |
|---|
runcrate(modelId) | LanguageModel | Chat model (shorthand for chatModel) |
runcrate.chatModel(modelId) | LanguageModel | Chat model for generateText, streamText |
runcrate.completionModel(modelId) | LanguageModel | Completion model |
runcrate.imageModel(modelId) | ImageModel | Image generation model for generateImage |
runcrate.embeddingModel(modelId) | EmbeddingModel | Embedding model for embed, embedMany |
When to Use Which SDK
| SDK | Best For |
|---|
@runcrate/ai | Next.js/React apps using the Vercel AI SDK — useChat, streamText, generateImage |
@runcrate/sdk | Full platform access — instances, storage, billing, and inference in one client |
| OpenAI SDK | Drop-in compatibility — just change the base URL |