# rawquery

A hosted data platform designed to be operated by LLM agents rather than humans. The product surface is a CLI that Claude Code, Cursor, or any other coding agent can invoke directly: connect a source, sync data, list schemas, run SQL, generate charts, publish results to a public URL. The human interacts in English; the agent handles the SQL and the plumbing.

## What it does

Three moving parts:

- **Source connectors.** Stripe, HubSpot, and similar SaaS sources land as queryable schemas. In the demo scenario the user connects both with two CLI commands and gets ten tables across `stripe_prod` and `hubspot_crm` schemas within minutes.
- **SQL execution.** The agent writes and runs the queries. The post's example goes from "did my email campaign work?" to a cohort comparison table (847 email customers at 89.41 avg basket vs 1,994 control at 61.27) with no SQL written by hand.
- **Publishing.** One command turns a query result into a shareable public URL (`https://rawquery.dev/c/<id>`) with the chart rendered, no login required on the viewer side.

The pitch positions it against the traditional BI path: data engineer models the source, analyst writes queries, dashboard tool (Looker) hosts results, everyone waits for access. rawquery compresses that to one English sentence per question.

## How it fits the LLM-agent workflow

Two design choices signal the target:

- **CLI-first.** The agent shells out. No MCP server, no web UI required, no auth handshake per query. This is the same reasoning behind [[mcp-vs-skills]]'s case for keeping tool access simple and low-context.
- **Schema introspection.** `list schemas` and `list tables with row counts` are designed to be the first calls an agent makes, giving it the context it needs to write correct SQL without being told the data model.

See [[llm-as-average-democratizer]] for the philosophy behind the product — average SQL is good enough for most business questions, so remove everything between the question and the query.

## Example usage

From the launch post [[average-is-all-you-need]]:

```
> connect my Stripe and my HubSpot to rawquery
[agent runs connector setup]
> I ran an email campaign in March. Did it move revenue?
  Compare people who received the email vs those who didn't.
[agent writes SQL, returns cohort table]
> Break it down by week. I want to see if the effect wore off.
[agent returns weekly breakdown]
> Save that, make a chart, give me a link I can send my manager.
Published: https://rawquery.dev/c/e3xW3uLXrGGheqYvZaEddw
```

The user wrote four sentences. The agent did the rest.

## Limitations and open questions

- **Correctness is on the user.** The platform lets the agent write SQL fast; it doesn't verify the joins are right. For high-stakes analytics this is the [[cult-of-vibe-coding]] problem in analytics form.
- **Closed source, hosted.** Your data flows to rawquery's backend. For sensitive data this is a non-starter; compare [[titit-local-ai]]'s argument for local AI.
- **Connector coverage.** The post shows Stripe and HubSpot only. Coverage breadth and freshness of sync will determine whether this is useful outside demo scenarios.
- **Pricing, scale, query limits.** Not disclosed in the launch post.

## Related

- [[average-is-all-you-need]] — launch essay
- [[llm-as-average-democratizer]] — general framing of the philosophy
- [[ai-assisted-workflow]] — broader pattern of agent-plus-human workflows

Homepage: [rawquery.dev](https://rawquery.dev). Free tier available via [rawquery.dev/signup](https://rawquery.dev/signup).
