Open source · Reporting as Code
Reporting as Code. Strictly IBCS®.
Write a report as YAML and SQL. bino renders it as an IBCS PDF. The files live in Git, so every change is reviewed and every report can be built again.
The tutorial runs in your browser. It takes you from your first manifest to a PDF, with no install.

Projects
One workflow, three projects
bino cli is open source under AGPL-3.0. The sandbox and the registry are free hosted services around it.
Share report definitions with the community
$ bino registry add @acme/base-layoutFrom YAML to PDF
Define. Build. Ship.
A data source, a query and a table. On the left is the file of a real sandbox, on the right is what it rendered. bino build makes the same output on your laptop and in CI.
apiVersion: bino.bi/v1alpha1
kind: DataSource
metadata:
name: new_cities
spec:
type: csv
path: https://sandbox.bino.bi/api/data/new_cities.csv
delimiter: ";"
---
apiVersion: bino.bi/v1alpha1
kind: DataSet
metadata:
name: new_cities_ds
spec:
query: |-
SELECT *
FROM new_cities
WHERE year(date) = 2025
OR year(date) = 2024
dependencies:
- new_cities
---
apiVersion: bino.bi/v1alpha1
kind: Table
metadata:
name: cities_table
spec:
dataset: new_cities_ds
type: sum
sumTitle: Revenue by city
scenarios:
- ac1
- pp1
variances: ["dpp1_ac1_pos"]
barColumns:
- "dpp1_ac1_pos"
interval: year
unitScaling: 20
Agentic reporting
An agent writes the report. bino checks it.
A bino report is plain YAML and SQL, so an AI agent can write it. bino mcp gives the agent tools to read your data, check every draft and render the result. The IBCS rules stay the same. The agent is one more way to write the report.
- 1
validate_draftCheck the draft
The agent writes a manifest. bino validates it against the schema in memory, before anything is saved.
- 2
write_manifestWrite it
bino validates the manifest again and only then writes it to disk.
- 3
get_rowsCheck the numbers
The agent queries its own DataSet and compares the rows with what the page should say.
- 4
buildRender the PDF
The same bino build as on your machine. The PDF is what you review.
Plugins · early access
Extend bino with plugins
A plugin adds data sources, visual components, lint rules, pipeline hooks or commands to bino. You write it in Go with the plugin SDK (Apache-2.0). The SDK is at v0.0.x, so the API can still change.
Need help running bino in your team? See services →
Blog
From the blog
Colors
Why colors in reporting should be used as sparingly as possible — and why red and green belong to variances.
Pattern recognitionPattern recognition
Why pattern recognition and visual standards are the key to efficient business reporting.
TimeScenarios
In which order scenarios such as previous year, plan, forecast, and actual should be displayed.
Questions about bino?
Write to us about your reports, a bug, or working together.