Ciaren

Ciaren

Visual data and ML workflows that stay Python-native.

Build pipelines on a canvas, preview every step on real data, run locally, and export readable pandas, polars, or lazy polars code with no proprietary runtime.

Plugin-first by design

Nodes, connectors, storage, engines, exporters, validators, and AI capabilities are extension points, not afterthoughts.

Clean Python export

Every flow can become standalone pandas, polars, or lazy polars code that you can review, version, and run outside Ciaren.

Local-first execution

Run on your machine or self-hosted infrastructure. Use SQLite by default, keep data under your control, and avoid SaaS lock-in.

Built for data engineering and ML

Ingest, clean, validate, engineer features, train, evaluate, predict, export, schedule, and automate from one workflow model.

Live preview at each node

Inspect row samples, schema changes, and node results before committing to a full run.

Trustable extensions

Package plugins as portable .ciarenplugin files, sign them, audit permissions, and install only what you trust.

Alpha software

Ciaren is in early development. APIs, the data model, generated code, and plugin contracts may change between releases. It is already useful for learning, experimentation, prototypes, and controlled internal workflows, but you should test carefully before using it for critical production jobs.

80 nodesfiles, SQL, storage, cleaning, reshape, quality checks, charts, ML, and outputs
3 Python targetspandas, eager polars, and lazy polars export from the same flow
Open coreAGPL-3.0 core with Apache-2.0 public Plugin API/SDK
Runs locallySQLite by default, optional external databases and object storage

From Two Sources to a Model — on One Canvas

Join a CSV file and a SQL table, clean each side, train a classifier, preview the result on real data, and export it as clean Polars — without leaving the editor.

Ciaren editor: a File Input (CSV) and a SQL Input joined, cleaned, and fed through Scale Features, Train/Test Split, a Random Forest classifier and Predict — previewed on real data, exported to clean Polars code, run end to end, and inspected through a Bar Chart node rendering the predicted-status distribution

See the Whole System

Ciaren is not only a drag-and-drop editor. It is a local workflow platform with a transparent execution model: every canvas node maps to an understandable dataframe operation, every run leaves inspectable results, and every flow can be exported to ordinary Python.

Ingest
CSV · Excel · Parquet · SQL · storage
input
Clean
nulls · types · dedupe · rename
clean
Transform
join · group · pivot · window
transform
Validate
not-null · unique · ranges · contracts
clean
ML
split · train · evaluate · predict
ml
Export
Python · file · SQL · storage
output

Ciaren editor with a canvas of connected nodes and a live data preview table

Why People Try It

Install and Open the Demo

For the PyPI package, the fastest way to evaluate Ciaren is a normal Python install. The wheel bundles the web UI, so ciaren serve can start the API, scheduler, and visual editor at one URL.

python -m pip install ciaren
ciaren serve

Open http://localhost:8055, then open Projects → Demo. You can inspect, preview, run, and export working flows before uploading your own data.

Prefer an isolated container instead?

git clone https://github.com/ciaren-labs/Ciaren.git
cd Ciaren
docker compose up --build

Use the Installation guide for PyPI alpha installs, Docker, source installs, optional ML extras, database drivers, and development setup.

What Makes It Different

DecisionWhat it means in practice
Local-firstYour data does not need to leave your machine. SQLite works out of the box, and external services are opt-in.
Python-nativeVisual work stays portable because flows export to readable dataframe code.
Plugin-firstNiche connectors, internal APIs, custom model providers, and specialized nodes can live outside core.
Multi-enginepolars is the default engine, pandas is available per run, and the engine contract is designed to grow.
Data quality includedAssertions for not-null, uniqueness, value ranges, expressions, row counts, and allowed values are first-class nodes.
Automation-readyUse the CLI, REST API, webhook trigger, scheduler, and Python SDK for controlled local or self-hosted workflows.

Export to Portable Python

There is no black box. A simple read → clean → aggregate → write flow can export to code like this:

import polars as pl

df_sales = pl.read_csv('sales.csv')

df_sales = (
    df_sales.drop_nulls(subset='amount')
    .group_by('region')
    .agg(pl.col('amount').sum())
)

df_sales.write_csv('summary.csv')

For larger files, export the lazy polars variant (scan_*collect()) to use pushdown and query optimization where the engine supports it. Learn about engines →

From Cleaning to Machine Learning

Cleaning, validation, feature engineering, training, prediction, and evaluation are all workflow nodes. You can move from raw data to a tracked model without switching tools, and still export or inspect the underlying Python.

Ciaren editor showing cleaning nodes feeding Train/Test Split, Train Regressor, Predict, and Evaluate nodes

The Built-In Toolbox

  • Input and output: CSV, TSV, Excel, Parquet, JSON/JSONL, text, SQL databases, S3, GCS, and Azure Blob
  • Cleaning: drop/fill nulls, remove duplicates, rename/select/drop columns, cast types
  • Transformation: filters, joins, group by, aggregate, calculated columns, maps, pivots, windows
  • Data quality: assert not-null, unique, value ranges, row count, expressions, allowed values
  • Machine learning: split, train, cross-validate, predict, evaluate, feature engineering, importance
  • Operations: run history, scheduling, REST API, CLI, webhook trigger, Python SDK

Browse all transformations →

Built for Extension

Ciaren's plugin API defines provider contracts for capabilities that should not be hard-coded into core:

ExtendExamples
NodesCustom transforms, validators, AI-assisted steps, domain-specific operations
Connectors and storageInternal APIs, SaaS tools, warehouses, object stores, document databases
Model providersLocal models, scikit-learn estimators, organization-specific training logic
Execution enginesAlternative dataframe engines and future runtime targets
ExportersNew code targets, deployment bundles, validation reports

The open core stays focused on the shared platform. When you need a niche integration, the preferred path is a plugin that can be packaged, signed, shared, and versioned independently.

Explore the plugin platform →

Pick Your Next Step

License

Ciaren Core is AGPL-3.0-only. The public Plugin API/SDK is Apache-2.0, and plugins may use the license selected by their authors.