Connect Postgres, MySQL, Oracle, or anything reachable over Tailscale. Parameterize SQL with Jinja. Cache results in DuckDB. Attach PDFs, docs, and sheets directly to prompts and the model recalls them on demand. Never copy/paste a CSV again.
SQL is the lingua franca of business data. Catalyst lets you wire up the real databases — not exports, not snapshots — and lets the model run parameterized queries against them at chat speed.
First‑class drivers for the big three. Connection strings live encrypted in your tenant. Add a read‑replica for safety, a prod for live data, a warehouse for analytics — all in one picker.
Need to reach a warehouse behind your VPC? Catalyst joins your Tailnet. Internal databases stay internal — no public endpoints, no IP allow‑lists, no ssh tunnels.
Prompts and workflow nodes carry typed parameters. Jinja substitutes them safely into your SQL — WHERE q = {{ quarter }} beats f"WHERE q = '{q}'" every time.
Expensive query you keep re‑running? Catalyst caches the result in DuckDB on the backend. Same params, same SQL, same result — no second round‑trip to the warehouse.
SELECT * FROM revenue WHERE q = {{ quarter }} AND plan IN {{ plans }} Some context isn't in a database — it's in a PDF, a deck, a spreadsheet. Attach files directly to a Prompt and they become part of that prompt's context, every session, no copy/paste.
Files ≤ 5KB appear in the system prompt verbatim (the model reads them every turn, no tool call). Larger docs auto‑chunk (~3200 chars, 400‑char overlap) and embed for on‑demand recall.
Markitdown converts at upload time so the model sees readable text. Raw bytes stick around for Python code that needs the native library (pdfplumber, python‑docx).
When a prompt has chunked docs, a recall_prompt_docs tool appears in that session — and only that session. Other prompts don't see it. Tool surface stays focused.
The cap is real‑data sized, not toy‑sized. Annual reports, technical spec docs, customer transcripts — they fit. Configurable per deployment if you need more.
Share a prompt publicly and recipients see the doc metadata + inline content — but they can't download the raw files. Your storage is never exposed by a share link.
One delete drops the Supabase row, the Lance embeddings, and the on‑disk files in one operation. No orphaned chunks haunting the vector store.
Real connections to real databases. Real attachments to real prompts. The model sees what it needs to see, when it needs to see it — and nothing else.