factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
데이터 모델링 없이 실제 앱을 만들 수 있습니다 nlqdb가 사용 방식으로 스키마를 추론·진화·최적화하고 변경을 미리 보여줍니다
Build a real app with no data modeling. nlqdb infers your schema from how you use it, evolves it, keeps it optimized — and previews every change.
데이터TypeScript · AstroGitHub @nlqdb온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Simplest Natural Langauge Querying DB That scales. Fast.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
nlqdb — your autonomous DBA.
Build a real app from day one with no data modeling. nlqdb infers your schema from how you use it, evolves it, and keeps it optimized — and shows you every change before it lands.README 전문 보기 ↗nlqdb attaches to the Postgres or Cloudflare D1 database you already run, proposes the changes it needs, applies the ones you approve, measures them, and reverts any that regress.
Why it exists: the mission — encapsulate the trial-and-error journey every company walks to a good database infrastructure.
Where it is going (docs/END_GOAL.md): paste a
connection string — on nlqdb.com, with the CLI, through the SDK, or from your
coding agent over MCP — and the first proposals arrive within minutes, each
with its expected effect, cost and inverse. Apply is one click; nlqdb then
measures p95 on the same queries and keeps the change or reverts it, never on
your app's request path. That loop is being built
(Roadmap); what is live today is the hosted product below.
No backend to build. You write HTML; each component asks for what it wants in plain English; nlqdb infers the schema, writes the SQL, runs it, and renders the result. There is no backend for you to build.
Two actions. That's the whole product:
<script src="https://elements.nlqdb.com/v1.js" type="module"></script>
<nlq-data
goal="the 5 newest orders, with customer and item"
api-key="pk_live_xxx"
template="table"
refresh="10s"
></nlq-data>
That's the entire backend for a live order list — no API to write, no schema to define, no JSON to parse. Engine choice (Postgres / Mongo / Redis / DuckDB / pgvector / …), schema inference, indexing, backups, and auto-migration between engines based on your real workload are background concerns you never have to see.
nlqdb is early and built in the open, but fully public — no gate, no
invite code. The marketing site, the /v1/ask pipeline, the <nlq-data> /
<nlq-action> elements, the chat app, the TypeScript SDK, the hosted MCP
server, and the nlq CLI are all live in some form (see the surface table
below). Natural-language → SQL accuracy is still climbing toward our public
bar (BIRD ≥ 0.65, Spider 2.0 ≥ 0.75 on the free model chain), so answers can
be wrong — every response carries a confidence signal and the SQL it ran.
Connecting an agent over MCP? On Claude Code, one marketplace add wires the hosted server and both memory skills in a single step:
/plugin marketplace add nlqdb/nlqdb
/plugin install nlqdb-memory@nlqdb
On any other MCP host, connect your agent
with one browser-OAuth approval; headless hosts skip the browser with
npx -y @nlqdb/mcp and an sk_mcp_* MCP key
(MCP setup). @nlqdb/sdk and @nlqdb/mcp
are both published and importable from npm.
The 60-second walkthrough — plain HTML, CLI, and ten framework wrappers —
lives at docs.nlqdb.com. Start with the
HTML tutorial or the
CLI tutorial.
You don't generate an API key separately: describe your database at
nlqdb.com, and the chat hands you a
<nlq-data> snippet with the key already inlined.
examples/ — minimal scaffolds in plain HTML, Next.js,
Nuxt, SvelteKit, Astro, plus a CLI-only walkthrough. Each is the smallest
valid integration around one <nlq-data> element or one CLI session.
Four things every release has to move, none allowed to regress
(GLOBAL-025):
The bet: get this right on free, open models and it only gets better on frontier ones — the scaffolding compounds with whatever model is underneath.
The hosted-premium model lane went live 2026-08-14. The full model strategy is in
GLOBAL-026.
| Surface | Status | Where |
|---|---|---|
HTTP API (POST /v1/ask, POST /v1/run, POST /v1/insert) | ✓ shipped | apps/api/src/ask/** |
<nlq-data> + <nlq-action> elements | ✓ shipped (v0.1) | packages/elements/** |
@nlqdb/sdk (TypeScript) | ✓ shipped (incl. runSql + cross-tenant grant + pack-import runner verbs) — installable from npm; insert() and runSql params publish in 0.5.0 | packages/sdk/** |
| Framework wrappers (React / Next / Vue / Nuxt / Svelte / SvelteKit / Astro / Solid + Swift) | ~ built + CI-tested; npm / SPM publish pending | packages/{react,next,…}/** |
Chat app nlqdb.com/app | ✓ shipped | apps/web/** |
Hosted MCP server mcp.nlqdb.com/mcp | ✓ shipped (host auto-detect pending) | apps/mcp/**, packages/mcp/** |
Local stdio MCP server @nlqdb/mcp | ✓ shipped — npx -y @nlqdb/mcp with an sk_mcp_* key | packages/mcp/** |
| Droppable agent artifacts (AGENTS.md · Claude Code skill + plugin · Cursor rules · Codex config) | ✓ shipped — /plugin marketplace add nlqdb/nlqdb installs the server + skills in one step | apps/web/public/agent-artifacts/** |
nlq CLI (Go) | ✓ shipped (core verbs; device-login pending) | cli/** |
Full integration matrix in docs/progress.md.
Published to the public npm registry with build provenance
(SK-CIPERM-003). Version badges
are live from npm; the table itself is generated from the workspace by
scripts/sync-readme-packages.mjs, so it
lists exactly the packages that are un-gated ("private" removed) and nothing
that isn't.
| Package | Version | What it is | Source |
|---|---|---|---|
@nlqdb/cli | Shim that installs the nlq CLI binary for the host platform. | packages/cli-shim | |
@nlqdb/mcp | Analytical-memory MCP server for nlqdb — a real database your AI agent can GROUP BY / JOIN / aggregate over in natural language, not just recall. | packages/mcp | |
@nlqdb/sdk | Typed HTTP client for the nlqdb /v1 API — works in browsers, Node, Bun, Workers. | packages/sdk |
The section below is the live focus; the numbered phases after it are
the hosted product's roadmap, kept until the GLOBAL-043 deletion series. Canonical plan + exit gates:
docs/phase-plan.md. Legend:
✓ shipped · ~ in progress · ◯ planned.
This roadmap is yours to shape. Want something added, reprioritised, or dropped? Open a PR editing this section (and
docs/phase-plan.mdif it's engine-facing), or open an issue to float it first. Say why now — which of the four north-star pillars (engine quality, onboarding, UX, performance) it moves. New to the codebase? Point your coding agent at this repo and paste:Read README.md and docs/phase-plan.md, then propose a roadmap change: add/change "<your idea>" under the right section in one line, with a "why now" naming which north-star pillar it moves. Open a PR with just that edit — no code.Setup, branch naming, and the CLA are in CONTRIBUTING.md.
GLOBAL-043)One loop — observe → propose → apply → verify → revert — on your Postgres
(Supabase, Neon, RDS) or Cloudflare D1. Plan, KPIs and exit gate:
GLOBAL-043.
/app/dba change ledger — every change with its inverse, newest first
(read-only v0)create_index
proposal, apply → verify → auto-revert, the four doors (the API door,
POST /v1/attach / client.attach() with client.applyProposal() /
rejectProposal(), is live), tested in CIWorker skeleton · KV + D1 + R2 bindings · Neon adapter + OTel · LLM router
(free chain) · Better Auth (GitHub + Google + magic link) · /v1/ask
end-to-end · events queue + drain · Stripe webhook · CI/CD + PR preview
environments.
A stranger lands on nlqdb.com, creates a DB in plain English, embeds it,
and shares the link — in under 60 seconds, no card, no config.
nlqdb.com)<nlq-data> + <nlq-action> elements (v0.1)/app/keys)mcp.nlqdb.com/mcp) — host auto-detect pending;
local stdio @nlqdb/mcp is on npm, so npx -y @nlqdb/mcp with an
sk_mcp_* key is a headless route in with no browser consent step
(/agents now carries it; the per-host install panel is still OAuth-only).
On Claude Code, /plugin marketplace add nlqdb/nlqdb installs the server +
both memory skills in one stepnlq (Go) — core verbs + raw-SQL escape hatch; device-login +
chat REPL pending@nlqdb/sdk — basic methods + runSql + cross-tenant grant +
pack-import runner verbs; published and importable from the registry;
insert() and runSql params publish in 0.5.0/llms.txt for
agents now live; tutorial polish remainsPREMIUM_METER_LIVE flipped)POST /v1/db/connect + web UI, CLI, SDK, query dispatch); prod-gated on
the BYO_SECRET_KEK secret. Supabase adds one-click OAuth connect over
the read-only Management-API (no DSN to paste); prod-gated on the
SUPABASE_OAUTH_CLIENT_ID / _SECRET secrets, with a graceful fall-back to
paste when unsetgit clone [email protected]:nlqdb/nlqdb.git && cd nlqdb
scripts/bootstrap-dev.sh # installs everything, pulls Ollama models, seeds .envrc
scripts/login-cloud.sh # signs you into cloud providers that have a CLI flow
bootstrap-dev.sh stands up the whole toolchain in one shot — Bun, Node
20+, Go 1.25+, uv; Biome / gofumpt / golangci-lint / ruff; lefthook git
hooks; the cloud CLIs (wrangler, flyctl, stripe, gh); a local Ollama so the
LLM router works offline; and a .envrc with self-generated dev secrets.
Details in
docs/history/infrastructure-setup.md §8.
Day-to-day:
bun run fix # biome format + lint --write (most issues)
bun run check:all # biome + golangci-lint + ruff (what CI runs)
bun run hooks:run # run pre-commit hooks against staged files
E2E coverage is persona-driven and manually triggered so cost stays
inside the free-tier envelope — one workflow_dispatch workflow per
surface:
gh workflow run e2e-opencheck.yml # web — live LLM, Neon branch, Workers preview
gh workflow run e2e-cli.yml # Go testscript, hermetic
gh workflow run e2e-sdk.yml # vitest + cassettes, hermetic
gh workflow run e2e-mcp.yml # InMemoryTransport protocol tests, hermetic
gh workflow run e2e-examples.yml # Playwright across HTML/Next/Astro/Nuxt/SvelteKit
gh workflow run e2e-examples.yml -f live=true # + staging for the curl + CLI shell smokes
Run the hermetic surfaces locally without GitHub:
( cd tests/e2e/cli && go test ./... )
( cd tests/e2e/sdk && bun install && bun run test )
( cd tests/e2e/mcp && bun install && bun run test )
( cd tests/e2e/examples && bun install && bun run install:browsers && bun run test )
Only execution is manual: tests/e2e/{sdk,mcp,examples} live outside the root
workspace, so CI's typecheck-e2e job tscs them on every PR — the free
backstop against a suite that compiles today and rots before the next dispatch.
Conventions, persona mapping, and cassette governance are in
docs/features/e2e-coverage/FEATURE.md.
docs/architecture.md — system design (auth,
pricing, the $0 stack, model selection, hosted db.create, hello-world).docs/phase-plan.md — canonical phase plan and
exit gates.docs/decisions.md — cross-cutting GLOBAL-NNN
decisions; per-feature records live under
docs/features/.docs/performance.md — SLOs, latency budgets,
span/metric catalog.docs/competitors.md — competitive landscape.[email protected].[email protected]). 90-day fix target.FSL-1.1-ALv2 — Functional Source License, Apache 2.0 future license. Source-available for any non-competing use; auto-converts to Apache 2.0 two years after each release. (Pattern used by Sentry, Convex, and others.)
nlqdb™ is an unregistered trademark of the project's licensor. See
TRADEMARKS.md for usage guidelines.