Home
Save a result and query it later
Turn a slow query, local file, or remote URL into a table Pawrly can reuse. Agents get stable data without fetching or rebuilding the same answer every time.
Save the answer
Keep expensive work from happening twice
Materialize the output of a query, a local file, or a remote URL when you know you will need it again. Pawrly gives the saved result a table name your team and agents can reuse.
pawrly materialize
# 1 · persist a query resultpawrly materialize top_customers \ "SELECT customer, SUM(amount) AS total FROM stripe.charges GROUP BY 1 ORDER BY 2 DESC LIMIT 10" # 2 · a local file (csv / parquet / json)pawrly materialize sales --file ./data/sales.csv # 3 · a remote http(s) filepawrly materialize prices --url https://ex.com/prices.parquetUse it again
Query it like any other table
Once a result is saved, use it in normal SQL beside live APIs, files, MCP tools, and databases. The query does not need to know whether the rows came from a fresh source or a saved result.
pawrly sql
pawrly sql " SELECT * FROM materialized.top_customers ORDER BY total DESC"Refresh on purpose
Update it when the source changes
A saved table stays stable until you decide to change it. Refresh it to pull the latest data, replace it with a new file or query, or drop it when the snapshot is no longer useful.
manage
# re-run the stored origin and overwritepawrly cache refresh materialized.sales # replace by re-materializing the same namepawrly materialize sales --file ./data/sales-2025.csv # remove the table and its filepawrly materialize sales --dropStable by design
Good for snapshots and agent workflows
Use materialization when repeatability matters: a customer list for a campaign, a remote dataset you do not want to fetch on every run, or a query result an agent will reference throughout a task.
Agents can save a result through the same workspace. With allow_inline enabled, a query can return rows and save them for later in the same call.
inline directive
-- pawrly: materialize big_ordersSELECT * FROM stripe.charges WHERE amount > 1000One binary. One config. Every source.
Start with one config file, then query APIs, files, MCP tools, and databases from the same command. Add MCP when you want agents to use that same workspace.