# Bruin

> One CLI for ingestion, SQL and Python models, and quality checks

Bruin is an open-source data pipeline tool written in Go that combines ingestion, SQL and Python transformations, automated quality checks, and column-level lineage in a single CLI, with a managed cloud layer above it.

Website: https://getbruin.com

## Use it when

- A small team wants ingestion, SQL and Python transformations, quality checks, and lineage in one CLI instead of a Fivetran plus dbt plus Airflow stack.
- Python models are a first-class need, for feature engineering or custom ingestion, not an afterthought.
- A single Go binary with no runtime to install fits your environments.
- You want a semantic layer and unit tests in the open-source tool, not behind a paid tier.

## Think twice when

- Depth beats consolidation for you: specialists go further on ingestion breadth (Airbyte), transformation ecosystem (dbt), and orchestration (Airflow, Dagster).
- The team is already invested in dbt's packages, integrations, and hiring pool.
- You need transparent managed pricing; Bruin Cloud publishes no price list.

## How it runs

The CLI is a single Go binary: bruin run executes pipelines against Snowflake, BigQuery, Databricks, Redshift, Postgres, DuckDB, or ClickHouse, from cron or CI. Named environments in .bruin.yml switch connection sets. Bruin Cloud schedules pipelines from the Git repo with backfills, notifications, and cross-pipeline dependencies, running each asset on an ephemeral instance.

## Details

### General

| Attribute | Value |
| --- | --- |
| License | Open source (permissive) |
| SPDX identifier | Apache-2.0 |
| Deployment | Self-hosted, Managed |
| Workload | Batch |
| Operational complexity | Low |
| Pricing | Free, Subscription |
| Language | Go |
| Repository | https://github.com/bruin-data/bruin |
| Documentation | https://bruin-data.github.io/bruin/ |
| Stars | 1.7k |

### Transformation

| Attribute | Value |
| --- | --- |
| Engines | Many: Snowflake, BigQuery, Databricks, Redshift, Postgres, DuckDB, ClickHouse |
| Model language | SQL, Python and R, all first-class |
| Model kinds | Table or view, with strategies for create+replace, truncate+insert, append, merge, delete+insert, time_interval and ddl, plus SCD2 by column or time and Data Vault hub, link and satellite |
| Change detection | Nothing classifies an edit: validate checks a pipeline before it runs and data-diff compares two tables, but what to rebuild is your call |
| Environments | Named environments in .bruin.yml, each a different set of connections chosen with --environment; nothing is shared or reused between them |
| Testing | Both halves: quality checks validate the data an asset produced, unit tests pin the SQL against mock inputs as a read-only SELECT that writes nothing |
| Lineage | Asset-level upstream and downstream from bruin lineage or the Cloud graph, including across pipelines; columns carry owners and a glossary maps them to business entities |
| Semantic layer | Real and in the open-source CLI, metrics, dimensions, segments and safe joins in YAML under a semantic directory, compiled to SQL and queried with bruin query |
| Scheduling | bruin run from cron or CI; Bruin Cloud schedules from the Git repo with backfills, notifications and cross-pipeline dependencies |
| Billing unit | The CLI is free; Bruin Cloud runs each asset on an ephemeral instance sized b1.nano to b1.4xlarge, and publishes no price list |

## Capabilities

- [Transformation](https://matca.io/capabilities/transformation)

---

Source: https://matca.io/bruin
Last updated: 2026-08-31T11:40:49.289Z
