fastdata
Reference

Configuration reference

fastdata reads fastdata.yaml. Commands look for it in the current folder, then in each parent folder; -c, --config <path> points at a specific file. Relative paths inside it are resolved from the folder that contains it.

Full example

version: 1

knowledge: ./knowledge
model: claude-opus-5-5
effort: medium
max_turns: 30
dialect: postgres

connector:
  type: mcp
  command: fastdata
  args: ["connector", "postgres"]
  env:
    DATABASE_URL: ${ANALYTICS_DB_URL}

limits:
  preview_rows: 50
  max_rows: 100
  query_timeout_s: 60

Options

KeyDefaultMeaning
version1Config format version.
knowledge./knowledgeFolder the agent reads. See Knowledge base.
modelclaude-opus-5-5Claude model id. Any model your account can use, e.g. claude-sonnet-5-5 for lower cost.
effortmediumHow much the model thinks: low, medium, high, xhigh, max. Higher is slower and costs more; try high for hard multi-table questions.
max_turns30Maximum agent steps per question. Caps the cost of one answer.
dialectnoneSQL dialect the agent should write: postgres, mysql, sqlite, mssql, snowflake, bigquery, …
connectornoneHow queries run. Omit for manual mode. See Connectors.
limits.preview_rows50Rows of each result the model sees. All fetched rows (up to max_rows) still reach the UI.
limits.max_rows100Rows fetched per query. The built-in Postgres and SQLite executors stop in the database (Postgres wraps the query in LIMIT); results from other connectors are trimmed to this. The UI table and CSV download get the same rows. Raise it if people need bigger exports.
limits.query_timeout_s60Time fastdata waits for the connector per query.

connector (MCP)

KeyDefaultMeaning
typemcp
commandProgram that starts an MCP server over stdio. fastdata means this fastdata (built-in executors).
args[]Arguments for command.
env{}Environment for the server process (only these plus basics like PATH/HOME are passed).
urlMCP endpoint for the streamable HTTP transport. Set exactly one of command or url.
headers{}HTTP headers for url.
toolautoName of the SQL tool.
sql_argautoArgument of tool that takes the SQL.
extra_args{}Constant arguments added to every call.

connector (HTTP)

KeyDefaultMeaning
typehttp
urlEndpoint that receives POST with a JSON body.
headers{}HTTP headers.
sql_fieldsqlBody field that carries the SQL.
extra_body{}Constant fields added to the body.

Secrets and environment variables

Never write passwords or tokens into fastdata.yaml. Reference environment variables instead:

SyntaxMeaning
${NAME}Value of NAME; fastdata stops with an error naming the variable if it is unset or empty.
${NAME:-fallback}Value of NAME, or fallback if it is unset or empty.

Variables come from your shell or from a .env file next to fastdata.yaml (shell values win). Keep .env out of git; commit a .env.example with the variable names instead.

Claude credentials

These are read from the environment, not from fastdata.yaml:

SetupWhat to set
Claude Code installed and logged in on this machinenothing
Anthropic API keyANTHROPIC_API_KEY
Amazon BedrockCLAUDE_CODE_USE_BEDROCK=1 and your AWS credentials/region
Google Vertex AICLAUDE_CODE_USE_VERTEX=1 and your GCP project/region credentials

fastdata doctor tells you whether it found credentials in the environment.

Files fastdata writes

PathWhat
.fastdata/last-session (next to fastdata.yaml)Id of the last terminal conversation, for ask --continue
Claude Code's config folder (~/.claude/projects/…)Conversation transcripts, kept by the Claude Agent SDK so follow-ups work

Add .fastdata/ to your .gitignore.