Search docs…⌘K
v0.10.0 · MIT

Feather Core is open source. Star us and ship fast.

View on GitHub →
Home/Docs/Integrations
Integrations

Plugs into your stack.

Feather works with every embedding model, agent framework, and runtime you already use. Pick your poison.

Embedding models

Supported

OpenAI

text-embedding-3-small/large. 1536 or 3072 dim.

from openai import OpenAI
from feather_db import DB
import numpy as np

client = OpenAI()
db = DB.open("embeddings.feather", dim=1536)

resp = client.embeddings.create(
    model="text-embedding-3-small",
    input="Your text here",
)
vec = np.array(resp.data[0].embedding, dtype=np.float32)

db.add(id=1, vec=vec)
db.save()
Supported

Anthropic Claude

Use with Voyage or Cohere embeddings + Claude for retrieval.

# Embed with voyage-3, retrieve with Feather, answer with Claude
from voyageai import Client as Voyage
from anthropic import Anthropic
from feather_db import DB

voyage = Voyage()
claude = Anthropic()
db = DB.open("rag.feather", dim=1024)

def ingest(text: str, id: int):
    e = voyage.embed([text], model="voyage-3").embeddings[0]
    db.add(id=id, vec=e)

ctx = db.context_chain(query_vec, k=5, hops=2)
msg = claude.messages.create(model="claude-sonnet-4-6", ...)
Supported

Gemini Embedding

gemini-embedding-exp-03-07. Multimodal, 768 dim.

import google.generativeai as genai
from feather_db import DB

db = DB.open("embeddings.feather", dim=768)

r = genai.embed_content(
    model="gemini-embedding-exp-03-07",
    content="Your text here",
)
db.add(id=1, vec=r["embedding"])
Supported

Sentence Transformers

Local, zero-cost. Great for prototyping.

from sentence_transformers import SentenceTransformer
from feather_db import DB
import numpy as np

model = SentenceTransformer("all-MiniLM-L6-v2")
db = DB.open("embeddings.feather", dim=384)

text = "Your text here"
vec = model.encode(text).astype(np.float32)
db.add(id=1, vec=vec)
Supported

Ollama

Local LLM embeddings, fully offline.

import ollama
from feather_db import DB
import numpy as np

db = DB.open("embeddings.feather", dim=1024)
r = ollama.embeddings(model="nomic-embed-text", prompt="Your text")
vec = np.array(r["embedding"], dtype=np.float32)
db.add(id=1, vec=vec)

Agent frameworks

Supported

LangChain

Use Feather as a vectorstore in RAG chains.

from langchain.vectorstores import FeatherVectorStore
from langchain.embeddings import OpenAIEmbeddings

emb = OpenAIEmbeddings()
store = FeatherVectorStore(embedding=emb, db_path="langchain.feather")

store.add_texts(["Document 1", "Document 2"])
results = store.similarity_search("query", k=5)
Supported

LangGraph

Stateful agent graphs with persistent memory.

from langgraph.graph import StateGraph
from feather_db import DB

db = DB.open("agent_memory.feather", dim=768)

def retrieve(state):
    ctx = db.context_chain(state["query_vec"], k=5, hops=2)
    return {"context": ctx}

graph = StateGraph(state_schema).add_node("retrieve", retrieve)
Supported

CrewAI

Shared memory across a crew of agents.

from crewai import Crew, Agent
from feather_db import DB

db = DB.open("crew_memory.feather", dim=768)

researcher = Agent(
    role="researcher",
    memory=lambda q: db.context_chain(q, k=5, hops=2),
)
crew = Crew(agents=[researcher], verbose=True)
Supported

LlamaIndex

Drop-in vector store for LlamaIndex pipelines.

from llama_index.vector_stores import FeatherVectorStore
from llama_index import VectorStoreIndex

store = FeatherVectorStore(db_path="llamaindex.feather")
index = VectorStoreIndex.from_vector_store(store)
engine = index.as_query_engine()
print(engine.query("Your question"))

Runtimes & platforms

Supported

Node / Bun

Native bindings via N-API. Works in Node 20+, Bun 1.1+.

import { DB } from "feather-db";

const db = await DB.open("vectors.feather", { dim: 384 });
await db.add(1, new Float32Array(384));
const results = await db.search(query, { k: 5 });
Supported

WebAssembly

Run Feather inside the browser. No server hop.

import init, { DB } from "feather-wasm";

await init();
const db = new DB("vectors.feather", 384);
db.add(1, new Float32Array(384));
const results = db.search(query, 5);
Supported

iOS / Android

Native mobile bindings. Ships as a single .framework / .aar.

// Swift (iOS)
import Feather

let db = try DB.open(path: "vectors.feather", dim: 384)
try db.add(id: 1, vector: vector)
try db.save()