# A shared report in 30 seconds, with DuckDB

URL: https://briq.cloud/blog/reports-in-30-seconds-with-duckdb

> Ask your agent for a report on a dataset. It loads the file into DuckDB, writes the dashboard in SQL and sends you a link.

By Sylvain Goumy, Founder of briq ([LinkedIn](https://www.linkedin.com/in/sylvain-goumy/), [X](https://x.com/goooums), [GitHub](https://github.com/goums)). News, 20 October 2026.

Ask an agent for a report on a dataset and you usually get a table in the chat. It read the rows
into its context to build it: slow, expensive, and nothing you can send to anyone.

We want a link to a dashboard instead. And we want it before you have switched tabs.

## DuckDB does the work

[DuckDB](https://duckdb.org) is an analytics database that runs inside the program that uses it.
There is no server to start and no warehouse beside it. It reads CSV, Parquet and JSON straight
from a URL, and it is built for group-bys over millions of rows.

For the dashboards we use [Shaper](https://taleshape.com/shaper/docs/), an open source tool built
on DuckDB. A dashboard is a SQL file:

```sql
SELECT 'World generation by source (TWh)'::LABEL;
SELECT make_date(year::INT, 1, 1)::XAXIS, source::CATEGORY, twh::LINECHART FROM world;
```

Each `SELECT` is a chart, and its casts say how to draw it. Agents write SQL well, so they write
dashboards well.

## What the agent does

You ask:

> Start DuckDB on briq, load 'Our World in Data' energy dataset into it, generate a report on
> world energy generation, and share it with me.

The agent:

1. **Starts the duckdb recipe**: one briq, with DuckDB and Shaper set up.
2. **Loads the file**: one SQL statement. DuckDB downloads it itself, so the data never goes through
   the agent.
3. **Writes the dashboard**: one SQL file, two charts.
4. **Shares it**: a read-only dashboard behind the briq's private link. Only people with the link
   see it.

## What we measured

We ran the same task on briq, again and again, and timed it from the outside: a headless browser
opens the shared link and waits until both charts are drawn.

* **Start**: 12 to 15 seconds for the briq to boot, with DuckDB and Shaper ready.
* **Load**: under 5 seconds for the 23,000-row, 130-column energy file.
* **Dashboard**: under a second to save it, about 2 seconds to draw it.
* **In all**: 21 to 24 seconds from the agent's first call to both charts on screen.
* **Later**: the briq sleeps when nobody uses it. The next visit wakes it, and the charts are back
  in about 13 seconds. The visitor after that waits under a second.

It all runs on our smallest size. The agent can also save the dashboard as a PDF, to attach to a
message.

## Compared to Metabase

Our first reporting recipe ran Metabase on a Postgres warehouse, and it is still in the cookbook for
people who build dashboards by clicking. On the same task it took two and a half to almost eight
minutes: a large Java application boots slowly on a small machine.

*Figure: Two rows of bricks, one brick for every ten seconds. The duckdb recipe: 21 to 24 seconds, three orange bricks. The metabase recipe: 152 to 459 seconds, a row of 16 grey bricks that fades out at 46.*

## Try it

**Claude**

1. Add briq to Claude:

[Connect in Claude](https://claude.ai/directory/briq)

2. Connect Claude to briq: sign in, or create your account and claim your €10 of free credits.

**Other agents**

1. Paste this prompt into your agent:

```text
Add the briq MCP server to your config:
- name: "briq"
- url: https://api.briq.cloud/mcp (Streamable HTTP, OAuth)
- for all my projects

Then tell me what to do next to connect and activate it. If needed, read the setup instructions for agents: https://briq.cloud/docs/setup/agents.md
```

2. Follow your agent's next steps: usually a restart, then a link to sign in.

**Try it**

- GitHub repo: "Deploy briq-cloud/wall github repo on briq (https://briq.cloud/docs/guides/run-a-github-repo.md) and give me a link to it."
- Sandbox: "Start a sandbox on briq (https://briq.cloud/cookbook/sandbox.md), clone this project into it, run the test suite there instead of on my machine, and tell me what fails."
- Reporting: "Start DuckDB on briq (https://briq.cloud/cookbook/duckdb.md), load 'Our World in Data' energy dataset into it, generate a report on world energy generation, and share it with me." (DuckDB is an open-source analytics database; the dashboards are written in SQL.)
- Postgres: "Start a Postgres for this project on briq (https://briq.cloud/cookbook/postgres.md) and connect the app to it."
- Web app: "Run this app on briq (https://briq.cloud/cookbook/node.md) and give me a preview link."
- Memory: "Start a SiYuan notebook on briq (https://briq.cloud/cookbook/siyuan.md), keep your notes on this project in it, and give me a link to browse them." (SiYuan is an open-source notes app, like Obsidian.)
- Planning: "Start a Plane board on briq (https://briq.cloud/cookbook/plane.md), turn our TODO list into issues, and give me a link to the board." (Plane is an open-source project board, like Linear.)

The full walk-through is the guide [Report on a dataset](https://briq.cloud/docs/guides/report-on-a-dataset). Tell us
what you report on: [hello@briq.cloud](mailto:hello@briq.cloud).
