Open-source data movement platform for ELT pipelines, moving data from APIs, databases and files into warehouses, lakes and AI applications.
bruin-data/ingestr
A command-line tool that copies data between databases, files and SaaS platforms in one command, without writing code.
Open-source alternative to:Fivetran
Airbyte Cloud
- Stars
- 4,025
- Forks
- 165
- Open issues
- 28
- Last commit
- 2 hours ago
What is it?
ingestr is a command-line application for moving data from a source to a destination using flags rather than custom scripts. You give it a source URI and table, a destination URI and table, and it loads the data into the target, handling the connection and transfer for you.
It supports incremental loading with append, merge and delete+insert strategies, so repeated runs can keep a destination in sync instead of reloading everything. The README lists a broad set of sources and destinations, including PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, SQL Server, MongoDB, local CSV/JSON/Parquet files, and many SaaS APIs such as HubSpot and Stripe.
The tool is distributed as a single binary via an install script and as a pip package. The pip package also offers a Python SDK that can send rows, generators or DataFrames to the CLI. The project is source-available under the Functional Source License, which restricts offering it as a competing commercial ingestion service.
Key features
- 01Copies tables between databases and files with a single CLI command.
- 02Supports append, merge and delete+insert incremental loading modes.
- 03Connects to many databases, data warehouses and SaaS APIs.
- 04Installs via a shell script or pip, with a Python SDK available.
- 05Includes change data capture support for several databases such as MySQL, PostgreSQL and MongoDB.
Use cases
- Loading operational database tables into a data warehouse like BigQuery or Snowflake.
- Exporting warehouse tables back into a local DuckDB or Parquet file for analysis.
- Pulling data from SaaS tools such as HubSpot or Stripe into a SQL database on a schedule.
- Migrating data between two databases without writing custom ETL code.
Quick start
- 1
Run the official install script from the README
- 2
Or install with pip
pip install ingestr - 3
Run an ingest command from the Quickstart, with your own source and destination URIs
ingestr ingest --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' --source-table 'public.some_data' --dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' --dest-table 'ingestr.some_data'
Things to know
- The license is listed as NOASSERTION, so check the repository's license terms before use.
Topics
FAQ
- What is ingestr?
- A command-line tool that copies data between databases, files and SaaS platforms in one command, without writing code. ingestr is a command-line application for moving data from a source to a destination using flags rather than custom scripts. You give it a source URI and table, a destination URI and table, and it loads the data into the target, handling the connection and transfer for you.
- Is ingestr free to use? What license does it have?
- ingestr is open source under the Other license. Check the license terms before using it in commercial products.
- Is ingestr still maintained?
- Actively maintained. The last commit to ingestr was on Oct 21, 2026.
- What can I use ingestr for?
- Loading operational database tables into a data warehouse like BigQuery or Snowflake. Exporting warehouse tables back into a local DuckDB or Parquet file for analysis. Pulling data from SaaS tools such as HubSpot or Stripe into a SQL database on a schedule. Migrating data between two databases without writing custom ETL code.
- How do I install ingestr?
- Run the official install script from the README Or install with pip: pip install ingestr Run an ingest command from the Quickstart, with your own source and destination URIs: ingestr ingest --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' --source-table 'public.some_data' --dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' --dest-table 'ingestr.some_data'
- Where can I get ingestr?
- The source code and installation instructions are on GitHub: https://github.com/bruin-data/ingestr
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A distributed data integration tool for synchronizing large volumes of structured and unstructured data across 160+ connectors, in batch, streaming, and CDC modes.
CLI and data pipeline that syncs cloud and SaaS infrastructure metadata into a data warehouse for SQL querying, asset inventory, and security analysis.
Apache NiFi is a system for automating, routing, and monitoring data flows between sources and destinations, managed through a browser UI.
Local-first data workspace that connects company databases, SaaS tools and files into one ontology you can query, running on your own computer.
Incremental data pipeline framework in Python with a Rust core that keeps vector indexes and knowledge graphs in sync with changing sources for AI agents and RAG apps.