Connect a database — the built-in SQLite demo, a SQLite file of your own, or a live Postgres / MySQL / SQL Server / Oracle connection. The agent only ever reads from it: every generated query is guarded and, for SQLite, opened read-only and gated by an authorizer. Its schema is read once on connect and is what goes in the prompt.
Connected database
—
Upload a database
Drag & drop a file here, or browse
.db · .sqlite · .sqlite3 — a copy is stored server-side
…or import a server-side path
The file is copied into this app's managed directory and opened read-only — the original is never touched.
…or connect a live database
Postgres, MySQL, SQL Server, Oracle — or anything else SQLAlchemy can reach. On first connect the schema is read and understood automatically, the same as above.
A database user with SELECT-only grants is strongly recommended — the agent's guard blocks writes, but a read-only credential is the real guarantee for a non-SQLite engine.
Examples: postgresql+psycopg2://user:pass@host:5432/db · mysql+pymysql://user:pass@host:3306/db · mssql+pyodbc://user:pass@host:1433/db?driver=ODBC+Driver+17+for+SQL+Server · oracle+oracledb://user:pass@host:1521/?service_name=orclpdb1
Schema
No database selected — pick, upload, or import one above.
Settings are locked
Enter the settings password to view or change the model, credentials & execution policy.
Configuration
Stored server-side in SQLite (app_config.db) — never in the browser.
Model & connection
anthropic.* models get fully-streamed answers; other families (e.g. qwen.*) use the OpenAI-compatible endpoint.
SQL execution policy
The browser can tighten these but never exceed the server's hard ceilings — every query is truncated at the row cap and aborted at the timeout no matter what.