Core concepts
The handful of objects everything else in ChatPlotDB is built from: connections, configs, threads, and credits.
Connection
A connection is one data source you have registered: a PostgreSQL or MySQL database, a DynamoDB table set, or an uploaded file. Credentials are encrypted at rest and never returned to the client.
One connection is marked default, so a new chat lands on it without you choosing. Connections belong to you personally or to an organization: a personal one can be migrated to an org later.
Config
A config is the semantic layer over a connection: which tables matter, how they join, what your team's words mean, and which metrics are defined how. It is stored as YAML and versioned, so switching the active version is a rollback.
This is the part that makes answers repeatable. Without it the agent infers your schema's intent from column names; with it, "net revenue" has exactly one definition. See the YAML reference.
Thread
A thread is one conversation. It is pinned server-side to the model that answered it, picking a different model starts a new thread, and the old one stays in your history.
Threads carry their own attached files and can be shared as read-only public snapshots.
Data modes
| Mode | What it queries |
|---|---|
| Database | One SQL connection |
| File | An uploaded CSV or Excel file, via DuckDB |
| Hybrid | A file attached to a database chat: both sources in one thread |
| Stitched | Two to five databases composed into one conversation |
Credits
Usage is metered in credits rather than raw tokens, with a flat cost per action (a chat turn, a config generation, a web search). The Usage and Cost page shows the real number per turn. Your remaining balance also rides on API responses. See Usage.