Skip to content

PuruVJ/aibind

Repository files navigation

aibind

aibind

Universal AI SDK bindings for every major JavaScript framework. Reactive streaming, structured output, agents, branching chat history, markdown rendering — built on the Vercel AI SDK.

Packages

Fullstack frameworks

Package Framework
@aibind/sveltekit SvelteKit
@aibind/nextjs Next.js
@aibind/nuxt Nuxt
@aibind/solidstart SolidStart
@aibind/tanstack-start TanStack Start
@aibind/react-router React Router v7

Client-only

Package Framework
@aibind/svelte Svelte 5
@aibind/react React
@aibind/vue Vue 3
@aibind/solid SolidJS

Storage integrations

Package Backend
@aibind/redis Redis (ioredis, Upstash, node-redis)
@aibind/sqlite SQLite / Turso (libsql, better-sqlite3)
@aibind/postgres PostgreSQL (pg, Neon, Supabase, postgres.js)
@aibind/cloudflare Cloudflare Workers (D1 + KV)
@aibind/service-worker Service Worker (zero-server, IndexedDB)

Core

Package Description
@aibind/core Framework-agnostic controllers and types
@aibind/markdown Streaming markdown parser

Quick Start

pnpm add @aibind/sveltekit ai @openrouter/ai-sdk-provider
// src/hooks.server.ts
import { createStreamHandler } from "@aibind/sveltekit/server";
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
import { defineModels } from "@aibind/sveltekit";

const openrouter = createOpenRouter({
  apiKey: process.env.OPENROUTER_API_KEY!,
});

export const handle = createStreamHandler({
  models: defineModels({
    fast: openrouter("google/gemini-3.1-flash-lite-preview"),
    smart: openrouter("openai/gpt-5-mini"),
  }),
});
<script lang="ts">
  import { Stream } from "@aibind/sveltekit";
  const stream = new Stream({ model: "fast" });
  let prompt = $state("");
</script>

<input bind:value={prompt} />
<button onclick={() => stream.send(prompt)} disabled={stream.loading}
  >Send</button
>
<p>{stream.text}</p>

Development

pnpm install
pnpm test
pnpm dev        # start demo playground

License

MIT

About

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors