• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
kamenxrider

kamenxrider

slimarmor

Semantic vector DB on Val Town SQLite — DiskANN, hybrid search
Public
Like
slimarmor
Home
Code
4
GUIDE.md
README.md
H
api.ts
vectordb.ts
Environment variables
4
Branches
1
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
2/2/2026
Viewing readonly version of main branch: v38
View latest version
README.md

🛡️ SlimArmor - Mini Vector DB for Val Town

A lightweight, optimized vector database built on Val Town's SQLite (powered by Turso/libSQL). Supports any OpenAI-compatible embedding provider.

Supported Providers

ProviderEnv VarsDefault ModelDimensions
Nebius (default)NEBIUS_API_KEYQwen3-Embedding-8B4096
OpenAIOPENAI_API_KEYtext-embedding-3-small1536
OpenRouterOPENROUTER_API_KEYopenai/text-embedding-3-small1536
CustomEMBEDDING_API_KEY + EMBEDDING_API_URL(configurable)(configurable)

Quick Stats (Nebius/4096 dims)

MetricValue
Storage per record~22 KB
Max records per 1GB~47,500
Avg embedding time~460ms
Recommended maxDistance0.6 - 0.65

Configuration

Option 1: Use a preset provider

# Set the provider (nebius, openai, openrouter) EMBEDDING_PROVIDER=openai OPENAI_API_KEY=sk-...

Option 2: Custom provider

EMBEDDING_API_URL=https://your-api.com/v1/embeddings EMBEDDING_API_KEY=your-key EMBEDDING_MODEL=your-model EMBEDDING_DIM=1536

API Endpoints

Core API

MethodEndpointDescription
POST/upsertInsert/update {id, text, meta?}
POST/searchSearch {query, k?, maxDistance?}
POST/deleteDelete {id}
GET/get?id=...Get single record
GET/list?limit=...List record IDs

Admin / Testing

MethodEndpointDescription
GET/pingHealth check
GET/statsDetailed storage stats
GET/seed?n=100Seed N synthetic records
GET/calibrate?q=...Suggest distance thresholds
POST/reindexRecreate optimized index
POST/clear?confirm=yesDelete ALL records

Distance Score Guide

DistanceMeaningAction
0.0 - 0.4Very similarAlways include
0.4 - 0.6RelatedInclude (tight mode)
0.6 - 0.7Somewhat relatedInclude (balanced mode)
0.7+Likely unrelatedFilter out

Default recommendation: maxDistance: 0.64

Import as Module

import * as db from "https://esm.town/v/kamenxrider/slimarmor/vectordb.ts"; // Check provider console.log(db.getProviderInfo()); await db.setup(); await db.upsert("doc-1", "Your text here", { category: "notes" }); const results = await db.search("search query", 10, 0.64);

Switching Providers

⚠️ Important: If you switch providers or models, the embeddings will be incompatible. You'll need to:

  1. Clear existing data: POST /clear?confirm=yes
  2. Set new provider env vars
  3. Re-insert your data

Tech Stack

  • Runtime: Val Town (Deno)
  • Database: Val Town SQLite (Turso/libSQL with DiskANN)
  • Embeddings: Any OpenAI-compatible API
  • Index: Cosine similarity, max_neighbors=64, compress_neighbors=float8

License

MIT

FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.