Vibe-code a report.
Ship a professional dashboard.
Built with your favorite AI tools: Claude Code, Cursor, Codex or anything else you like. Shared with your team, rebuilt on schedule, hosted where everyone can find them.
$ git clone https://github.com/trellumhq/trellum.git # the full product is AGPL-3.0-only
▼ the console below is live. Click a card, it opens.
uplift +4.1% · CI [1.2, 7.0] · CUPED
PDF · CSV · share link (scoped)
live. This is how the portal behaves, not a picture of it. Click a card, flip a theme, toggle the delivery.
A report is one conversation.
You talk to your own harness, the one you already enjoy. It writes the report as plain Python and SQL in your repository. After the source install in the guide, python -m trellum.run turns that folder into what you saw above. No new tool. No DSL. No account.
You can start right now. Clone trellum, make reports on your own machine, and use the included portal when you want to schedule or share them.
reports/weekly-revenue/: query, KPI row, trend chart, shared annotation. Built in 4.1s. Pushed report/weekly-revenue.Any source. Combined. One dataset.
Warehouse, files, APIs. Every source you have, compiled together into one dataset, and every report builds from it. That's the speed, and that's the end of most of your ETL.
And this is the trick: combine them. A CSV + your warehouse + an API, joined into the same dataset, in the same report.
✓ rebuilds in seconds. reads the dataset, not the warehouse
⚡ live is an option, per report: skip the compiled dataset and query at view time. Viewers pick the parameters and get this minute's numbers. Choose it where freshness beats speed.
The framework makes the report.
The portal makes it reporting.
Make reports today, on your machine, for free. When one is worth sharing, put it on the portal: it gets a schedule, a home and an audience, current every morning, governed by the org. That's the product you saw at the top.
Everything the portal does.
Real behaviours, not marketing shots. The live tile is ticking right now.
Custom themes, everywhere
Defined once. Every report, email and PDF follows your brand.
The metrics layer
One definition of revenue. Reports claim it, and the numbers cannot disagree.
€412k ✓claims gross_revenueboard-pack
€412k ✓claims gross_revenue
Live reports
Queried at view time; the viewer picks the parameters.
Runs on a schedule
Built on the clock. The published report is simply current.
Email delivery, built in
Themed email with the numbers inline, and the PDF attached when you want it.
Shared annotations
Add "W8 · pricing change" once. Every report that shows W8 carries it.
A/B testing, honest
Not just "B looks bigger". An uplift with an interval you can sign.
Buddy, the AI assistant
Ask the portal about your own reports. It answers from the builds, with sources.
Share links, safely
Send a report outside the studio. Scoped, password protected, revocable.
Review what ships
Fetch repository changes, inspect the diff, and publish the exact commit you reviewed.
One overview
Every report, every studio, state at a glance.
Governed & observed
Your directory signs people in; the org frames studios; the audit log remembers.
Every chart you'd reach for.
And zero walls when you don't.
Built in so you never build them. And never a limit on what your agent can invent on top.
None of them fit? There is no wall.
A report is code, so a component is whatever your agent writes. Any HTML, any JS, any visualization that doesn't exist yet. It arrives themed, filtered and wired to the same dataset as every built-in. No plugin API to wait for. No marketplace. Completely open, up to you.
Start with a conversation.
End with reporting that runs itself.
You saw it behave at the top. Explore the demo gallery, then run the complete product on your own infrastructure.
Your agent writes the first report today. Free, local, no account.
Published on merge. Scheduled or live. Yours to govern.