Introduction
SkimmerDB is a hosted database for apps and AI agents: exact and regex search, vectors and SQL over documents kept in object storage.
SkimmerDB is a hosted database you create with one call. Make a namespace per user, agent, task or dataset, push documents into it, and read them back four ways from the same copy:
- Exact and regex search over the text, with metadata filters, newest first.
- Exact counts of what matches.
- Vector search (embeddings), alone or hybrid with a text and a filter.
- SQL over the metadata, with text matches inside
WHERE.
Every namespace lives in object storage (S3), and servers keep nothing of their own. An idle namespace costs only the bytes it stores, and the first query after a long sleep opens it in a round trip or two. A write is acknowledged only once it's stored in object storage.
What it's for
| Use | How it looks |
|---|---|
| Agent memory and context | a namespace per user or agent run, searched by exact names, ids and error codes, and by meaning with vectors |
| Search over docs, code, tickets and logs | literal or RE2 regex search with filters, exact counts, cursors that survive compaction |
| Semantic and hybrid search | vector search narrowed by a text match and a metadata filter in one query |
| Analytics over events and traces | SQL with GROUP BY and aggregates over metadata, with contains() and grep() on the text |
You reach it over a REST API (https://api.skimmerdb.com/v1), the
Python and TypeScript clients, or MCP for agents such as Claude, ChatGPT,
Codex and Cursor.
Three calls
Sign up (the answer has your key), write (the first write makes the namespace), search:
B=https://api.skimmerdb.com/v1
KEY=$(curl -s $B/signup -d '{"email": "ada@example.com", "name": "Ada", "password": "correct horse"}' | jq -r .key)
curl -s $B/namespaces/support/docs -H "Authorization: Bearer $KEY" -d '{
"wait": true,
"docs": [{"id": "t-1", "text": "Refund requested for order ACME-1042", "meta": {"status": "open"}}]}'
curl -s $B/namespaces/support/search -H "Authorization: Bearer $KEY" \
-d '{"q": "acme-1042", "filter": {"status": "open"}}'The quickstart goes on from there: filters, counts, SQL and vectors.
Where to go next
- Quickstart: from no account to search, SQL and vectors in a few minutes.
- Concepts: tenants, keys, namespaces, documents, and what a query costs.
- Data model: how to choose namespaces, ids, text and metadata so everything stays fast and cheap.
- Analytics with SQL: your documents as a column store.
- Connect an agent: the MCP server, with OAuth or a key.
- Agent skill: teach Claude Code or Codex to use SkimmerDB well.
- API reference: every operation, with a console to try it.