Unified AI SDK
Local AI: SDK & Model Provider
Run LLMs, speech, vision, image/video generation, and more on any device. Build mobile and desktop apps, or serve local models to your favorite AI tools.
npm install @qvac/sdkimport { loadModel, completion, unloadModel,
LLAMA_3_2_1B_INST_Q4_0 } from "@qvac/sdk"
const modelId = await loadModel({
modelSrc: LLAMA_3_2_1B_INST_Q4_0
})
const history = [{ role: "user",
content: "Explain quantum computing in one sentence" }]
const result = completion({ modelId, history, stream: true })
for await (const token of result.tokenStream) {
process.stdout.write(token)
}
await unloadModel({ modelId })from tetherto.qvac_sdk.notebook import SyncClient
from tetherto.qvac_sdk.models import (
LLAMA_3_2_1B_INST_Q4_0
)
with SyncClient() as client:
model = client.load_model(
model_src=LLAMA_3_2_1B_INST_Q4_0
)
history = [{"role": "user",
"content": "Explain quantum computing in one sentence"}]
for token in client.completion(model, history, stream=True):
print(token, end="")Without the cloud
Cloud-grade AI, without the cloud
The SDK runs models on the hardware your users already own, so inference happens where they are, not in a data center. The same code ships to a phone, a laptop, or a server.
Runs on every device
iOS, Android, macOS, Linux and Windows, native mobile in one npm install.
Private by architecture
No prompts and no user data ever leave the device.
Free and open
Apache 2.0, no API keys, no rate limits, no per-token bill.
The SDK
Every AI capability, one API
Text, vision, audio and more share one interface. Swap models without rewriting your app.
Text generation
Chat, completion and structured output.
Embeddings
Vectorize text for search and RAG.
RAG
Retrieval-augmented answers over local docs.
Transcription
Speech-to-text, fully on-device.
Translation
Translate between languages offline.
Image generation
Generate images locally, no cloud.
Text-to-speech
Natural speech synthesis on-device.
OCR
Extract text from images and scans.
Fine-tuning
LoRA fine-tuning, even on mobile.
Vision
Understand images with vision models.
Image upscaling
Upscale to high resolution on-device.
Classification
Millisecond labels with confidence.
And many more, with new capabilities in every SDK release
See the full task listQuickstart
The same shape for every task
Load a model, call one function. Every modality follows the same pattern. Copy, paste, run.
import {
loadModel, embed,
EMBEDDINGGEMMA_300M_Q4_0
} from "@qvac/sdk"
const modelId = await loadModel({
modelSrc: EMBEDDINGGEMMA_300M_Q4_0
})
const { embedding } = await embed({
modelId,
text: ["edge inference", "private by default"]
})
// embedding: number[][], 768 dims eachOpen ecosystem
Use any model
One loadModel() call for every format the open ecosystem ships: GGUF, Llama, Qwen, Gemma, Stable Diffusion, Whisper, or a QVAC model like MedPsy.
A curated registry of AI models
Load models from Tether's registry, as simple as using one constant.
A HuggingFace model
Pass a HuggingFace URL and the SDK fetches and runs the GGUF for you.
A local file
Point at any .gguf on disk, including one you quantized yourself.
GGUF for language and embedding models, safetensors for diffusion. One call, every model.
import { loadModel, LLAMA_3_2_1B_INST_Q4_0 } from '@qvac/sdk'
// 1. a curated registry of AI models (Llama, Qwen, Gemma, ...)
await loadModel({ modelSrc: LLAMA_3_2_1B_INST_Q4_0 })
// 2. any GGUF from HuggingFace
await loadModel({
modelSrc: 'https://huggingface.co/Qwen/Qwen3.5-4B-GGUF'
})
// 3. a local .gguf file
await loadModel({ modelSrc: './models/my-model.gguf' })Built with the SDK
Things people build with it
Ten runnable examples in the open, from natural-language SQL to on-device vision. Clone one and change it.
Get started
Run AI on what you own
One install, JavaScript or Python. 10+ AI tasks. Private, offline and free on the hardware you already own.