Skip to content

Ship AI features.
Skip the plumbing.

Add AI to the apps you build: chat that streams as it types, answers your code can rely on, images from a prompt, and search over your own data. You pick what the model should be good at. We handle the keys, the cost, and the privacy.

retriestoken countingapi keysrate limitssse parsingprovider shims@zentier/aiONE IMPORTstreaming chatstructured outputtool callsembeddingsimage generation

A few lines, prompt to stream.

It runs inside your app's own backend. Pick what you need the model to be good at, and call it. Streaming, tools, and reliable answers are already there, with no AI account to open and nothing to wire up.

api/chat · your app
import { streamText, tool, z } from "@zentier/ai"; // In your app's own backend: the model can call your// functions, and the tool loop is handled for you.const result = streamText({  model: "general",          // the kind of model, not a brand  messages,  tools: {    searchDocs: tool({      description: "Search the user's documents.",      parameters: z.object({ query: z.string() }),      execute: async ({ query }) => db.search(query),    }),  },  env,                       // your keys, wired up at deploy}); // Stream straight back to the browser.return result.toSSEResponse();

Everything you'd reach for

The same client covers the things you actually build, whether you want a single answer, a live stream, or a result your code can use directly.

Text and chat

Ask a model a question, or hold a full back-and-forth conversation. Everything is checked for you, from the messages going in to the answer coming out.

Answers as they're written

Words appear as the model writes them, the way people expect chat to feel, with ready-made pieces for React, Vue, and Svelte. Nothing extra to run.

Answers in a fixed shape

Ask for the answer in a shape you define and get exactly that back, checked before it reaches you, so your code can use it directly instead of guessing.

Let it use your tools

Give the model things it's allowed to do and it decides when to use them, checks what comes back, and hands you the finished answer.

Make images

Create images from a description, with the same client. Product shots, thumbnails, avatars, illustrations.

Understand pictures

Send images along with your text to describe them, pull details out of them, check them, or answer questions about what's in them.

Ground it in real data

Generation is only half of it. Connect a model to your own data and the live web so its answers are grounded, current, and yours to keep.

Search by meaning

Search your app's own data by what things mean, not just the words they contain, so the model answers from your content. There's nothing separate to set up or keep running.

Search the web, with sources

Let a request pull fresh results from the web and answer with sources you can check. No search keys to hold, nothing to maintain.

Conversation history you own

Chat history is saved in your app's own database. Your users' conversations stay in your app, never on our servers.

Add AI in three steps.

01Turn it onSwitch AI on for your app. The keys are wired up on our side when it deploys, and the browser never sees one.
02Call a modelPick what you need it to be good at, and call it. Chat, tools, images, and search all come from the same place.
03Ship and swap freelyShip it. You asked for a kind of model rather than a brand, so you can change which one runs underneath without touching your code.

The safeguards are already on

Everything your app asks a model goes through us, so the protections you'd otherwise have to build yourself are already there on every call.

Keys never touch the browser

The keys live on our side and are added at the moment your app calls. They never appear in your code, your logs, or anything the model sees.

Your data isn't kept

Every request tells the model provider not to store your data or train on it. It's on by default and can't be forgotten, and if no provider can promise it, the call is refused rather than sent anyway.

You see what it costs

The real cost of every call lands on your one balance, so you always know what your AI features actually cost.

You're not stuck with one model

Ask for the kind of model the job needs, like general, coding, or research, and a good one is picked for you. Change your mind later without touching your code.

One import
to add AI
Zero
data retention
Per-call
cost, visible
Any model
you choose

Put a model in your next app

Describe the feature and the AI builds it, with the keys, the cost, and the privacy handled from the first call.