Introduction
Silvi gives you a small reports app on your own computer. You tell Claude which figures you want, and Claude builds the report.
Silvi gives you a small reports app on your own computer. You tell Claude, in plain words, which figures you want to see — from spreadsheets, CSV files or your company’s database — and Claude builds the report page for you. You don’t write code or type commands: Claude does that and tells you what it did. Your first report takes about 30 minutes.
What you need#
- Node.js and git, two free programs: Node.js runs the app, and git downloads it and keeps saved versions of your work. Quickstart links to them, and Claude can check whether you have them.
- The Claude desktop app with its Code tab, on a plan that includes Claude Code.
- Some data. A CSV or Excel export of one table is enough to start.
How it goes#
- Pick a look in Create. Create is a web page where you choose the theme, colour, font and logo, and which kinds of data the app reads. It shows your app as you pick.
- Paste the prompt into Claude. Create writes a short message for Claude. You paste it into the Code tab, and Claude makes the app, starts it and opens it in your browser.
- Ask for a report. For example: “Make a report of orders per week from orders.csv.” Claude writes it and opens it.
What you start with#
The app’s sidebar has two modules. A module is an entry in the sidebar, with its own screens:
- Reports: every report in the app. A new app has three examples for a made-up data society: Events, Members and Website visitors. They read sample CSV files that come with the app, through the CSV connector, so they work before you connect anything. A connector is the part of the app that reads one kind of data: CSV files, Excel files, or a database such as Postgres.
- Wiki: how the app works, and a place for what you learn about your data.
Settings has Appearance, where the theme, colour, font and logo live.
Who it is for#
People who own a set of figures and want them as clear pages: a shop’s weekly sales, a team’s sign-ups, a budget against plan. You know your data. You do not need to write code or type commands.
You work in the Code tab of the Claude desktop app. Claude runs every command for you and says what it did. The commands on this site are there so you know what happens, not for you to type.
Under the hood#
Most reporting tools keep your reports inside their product: you click charts together in their editor, and the result lives on their servers. Silvi works the other way round:
- Reports are files. Each report is a folder with a
report.tsxfile, which lists the page’s components (its building blocks: a row of tiles, a chart, a table), and one.sqlfile per question it asks your data. SQL is the standard language for asking a database a question, such as “the total sales per region”. - Read live. The app runs each report’s SQL on your data whenever the page opens, through a connector.
- Written by Claude. You describe the report; Claude writes it, runs the checks and opens it.
- Yours to keep. The code is copied into your folder, and the app runs on your computer. See Your data and Claude.
This is what a small report looks like. Claude writes it; you never have to.
Regions
Sales by region
-- Sales and orders per region
select region, sum(amount) as sales, count(*) as orders
from sales
where sold_on between $from and $to
group by regionimport { defineReport, query } from "~/components/report-kit/define"
import regions from "./regions.sql?raw"
type Region = { region: string; sales: number; orders: number }
export default defineReport({
meta: { title: "Regions", description: "Sales and orders by region.", connector: "postgres" },
queries: { regions: query<Region>(regions) },
components: (k) => [
<k.CategoryBars key="bars" series="regions" x="region" value="sales" title="Sales by region" />,
],
})The rules it keeps#
These are written into the app’s instructions for Claude (its CLAUDE.md file), so Claude follows them without being asked.
- Content before code. Claude changes reports, wiki pages and the named metrics first. It touches the app’s own code only when that cannot do the job.
- Explanations go in the dialog. The page shows figures. What a figure means goes in the dialog behind the report’s (i) button.
- SQL only reads. A query can only read your data. The app refuses anything that would change it.
- Passwords stay in
.env. Passwords and connection details go inapp/.env, a private settings file on your computer that is never saved with your work. - Every change is checked. After a change Claude runs the checks, and fixes what fails before you look.
What if I want a chart Silvi does not have?
Ask Claude first whether an existing component can do it. Most of the time one can.
If not, the app’s code can change: the app is yours. The new component joins the others, so every report can use it.
Your data and Claude#
The app and your data stay on your computer: the app runs there and reads your files and your database from there, and there is no Silvi server in between. Claude is different: it runs at Anthropic, and it sees what it works with: table and column names, sample rows, query results, and the files it writes. So connect your database with a read-only user, and follow your company’s rules for AI tools. Anthropic’s own terms are in its Privacy Policy and Commercial Terms.
Next#
After that, the Get started pages go in order: Your first report and Connect your own data.
Later, when you want to know more:
- Report files: what a report file holds.
- Connectors: every kind of data the app can read, and what each needs.
- All components: every chart, table and input.
- Modules: the app’s sidebar entries.