Cloud Parts

Meltano

A command-line ELT tool that runs Singer taps and targets from a meltano.yml project kept in git.

Type
Open source
Made by
Matatika
License
MIT (the Meltano Singer SDK is Apache 2.0); the managed Meltano Cloud is proprietary
Facts checked
6 October 2026

What it is

Meltano is a Python CLI, not a server. A project is a directory with a meltano.yml file that lists plugins and their settings: extractors (Singer “taps”), loaders (Singer “targets”), mappers, and utilities such as dbt. meltano add looks a plugin up on MeltanoHub, which catalogues more than 600 connectors, and installs it into its own Python virtual environment. meltano run tap-github target-duckdb starts both programs and pipes one into the other: the tap prints Singer messages (SCHEMA, RECORD and STATE) as JSON lines and the target loads them. Meltano saves the last STATE, by default in a SQLite system database under .meltano/, or in S3, GCS or Azure Blob Storage for throwaway runners, and hands it back on the next run so only new data is read.

Meltano is free under the MIT licence. It has no scheduler of its own: meltano schedule hands schedules to an orchestrator plugin, usually Airflow, or you call meltano run from cron or CI. New connectors are usually built with the Meltano Singer SDK. The project now belongs to Matatika, a London data company that sells a managed Meltano Cloud priced by compute hours (Starter includes 200 a month, Growth 2,000, Scale 5,000), with prices given on request.

Why teams pick it

  • Pipelines as code: meltano.yml, named environments such as dev and prod, and changes reviewed in pull requests
  • Reuses the Singer ecosystem: 600+ taps and targets on MeltanoHub, often in several maintained variants
  • Light to run: one pip-installable CLI that works on a laptop, in CI or in a container, with no service to keep up
  • The Singer SDK makes a new REST, GraphQL or SQL tap a small Python project
  • Plain MIT licence on the core

Watch out for

  • Connector quality varies: many taps are community-maintained, a source may have several competing variants, and fixing one is often on you
  • Every record passes as a JSON line through a pipe, which suits SaaS APIs but is slow for big database copies; the faster BATCH message is optional per connector
  • No UI or scheduler in the open-source tool: the web UI was removed in 3.0 (2023), so you need Airflow, cron or a paid cloud
  • Ownership has changed three times: GitLab, then Meltano Inc. (renamed Arch Data in 2023), then Matatika in 2026; the first Meltano Cloud was shut down in 2024 in favour of Arch
  • Python packaging: each plugin gets its own virtual environment, and Meltano 4 needs Python 3.10 or later

Alternatives

What all etl & elt pipelines have in common →
AirbyteCommercialAn ELT platform you can host yourself: hundreds of connectors, each a Docker image speaking one JSON protocol, scheduled by services on Kubernetes.Apache NiFiOpen sourceA Java dataflow server you program by drawing a graph of processors in a web UI, with buffered queues, back pressure and a record of where every piece of data went.ArtieCommercialA managed change data capture service that copies every insert, update and delete from production databases into a warehouse, aiming for under a minute of delay.BruinOpen sourceOne Go command-line tool that ingests data, runs SQL and Python transformations and checks the results, with each step a file in your repo.DagsterOpen sourceA Python data orchestrator built around assets: you declare the tables, files and models that should exist, and Dagster works out what to run.dbtOpen sourceSQL `select` statements in git, built into warehouse tables in dependency order, with tests and docs alongside.EstuaryCommercialA managed data-movement platform that captures changes from databases and SaaS sources into collections kept as JSON files in your own bucket, then keeps warehouses and other systems in sync, in real time or on a schedule.FivetranCommercialManaged connectors that copy data from SaaS apps, databases and files into your warehouse or lake, billed by the rows that change each month.OLakeOpen sourceAn open-source tool in Go that copies databases, Kafka topics and S3 files into Apache Iceberg tables (or plain Parquet), with full loads, incremental syncs and CDC, and no Kafka, Debezium, Spark or Flink in between.

How it fits with other technologies

Copy GitHub issues into DuckDB with a Meltano project · bash

uv tool install meltano
meltano init github-to-duckdb && cd github-to-duckdb

meltano add tap-github target-duckdb        # both land in meltano.yml
meltano config set tap-github repositories '["meltano/meltano"]'
meltano config set tap-github start_date 2026-01-01T00:00:00Z
meltano config set target-duckdb filepath output/warehouse.duckdb
meltano config set target-duckdb default_target_schema raw
export TAP_GITHUB_AUTH_TOKEN=ghp_...         # secrets stay out of meltano.yml

meltano select tap-github issues '*'
meltano run tap-github target-duckdb        # state is saved; the next run is incremental

The pieces around the CLI#

Singer spec

open standard

Taps write SCHEMA, RECORD and STATE messages to stdout; targets read them from stdin. Any language works, so tap | target is a pipeline.

MeltanoHub

catalogue

Lists 600+ extractors, loaders, mappers and utilities, with each variant’s settings, so meltano add knows how to install and configure them.

Meltano Singer SDK

Apache 2.0

A Python framework that handles the spec, state, schema flattening and stream maps, so a new tap or target only describes the source or destination.

Meltano Cloud

paid

Matatika’s managed service runs projects from your Git repository with schedules, retries and support, billed by compute hours rather than rows.

See it in a real stack

No architecture uses Meltano yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2018–2026

Meltano began inside GitLab in 2018. GitLab’s data team wanted one tool for the whole lifecycle (the name stands for model, extract, load, transform, analyze, notebook, orchestrate), because, as the announcement put it, connecting Salesforce and Marketo to judge a campaign was “non-trivial”. Version 1.0 shipped in October 2019.

In 2020 the team narrowed the goal to an open-source platform for ELT pipelines built on Singer, the tap-and-target spec that already had dozens of community connectors but no answer for deployment, configuration or keeping state. In 2021 they released the Singer SDK and MeltanoHub, and on 30 June Meltano spun out of GitLab with a $4.2M seed round led by GV, Douwe Maan as CEO.

At the end of 2023 Meltano Inc. renamed itself Arch Data and built Arch, a data platform for software teams, on top of Meltano; Arch replaced the managed Meltano Cloud. Arch later shut down, and by January 2026 the London company Matatika had acquired the Meltano project and relaunched Meltano Cloud.

Why it’s built this way

Adopt Singer rather than invent a connector format
Singer already had a community and dozens of taps and targets. What it lacked was tooling to configure, deploy and track state, which Meltano could add.
A project file in git
The team came from GitLab and wanted data work to use software habits: code review, environments and CI/CD instead of settings clicked into a UI.
One virtual environment per plugin
Taps and targets are separate Python packages that pin conflicting library versions, so each is installed in isolation.

Timeline

  1. 2018

    Started inside GitLab’s data team

  2. 2019

    Version 1.0 released in October

  3. 2020

    Refocused on open-source ELT built on Singer taps and targets

  4. 2021

    Singer SDK and MeltanoHub launch; spins out of GitLab with GV seed

  5. 2023

    Meltano 3.0 drops the web UI; Meltano Inc. renames itself Arch Data

  6. 2025

    Meltano 4.0 adds structured logging and needs Python 3.10+

  7. 2026

    Matatika acquires Meltano after Arch shuts down; Meltano Cloud returns

Sources20 · facts checked 6 October 2026

Improve this page on GitHub