✨ Features
FlowyML Notebook is a complete ML development environment. Here's everything it offers — with real screenshots from the application.
Reactive DAG Engine
Every cell is a node in a dependency graph. When a variable changes, only dependent cells re-execute — no more stale state, no more "restart kernel and run all."
- Automatic dependency detection via AST analysis
- Visual DAG representation with cell status indicators
- Topological execution order for consistent results
- Parallel execution of independent branches
Pure Python Storage
Notebooks are saved as standard .py files. No JSON, no merge conflicts, no diffs you can't read.
- Git Friendly — Clean
git diff, meaningfulgit blame - Importable —
from my_notebook import df_clean - Lintable — Works with
ruff,flake8,mypy
Rich Data Exploration
Every DataFrame gets automatic profiling — zero extra code. Toggle between Table, Stats, Charts, Correlations, Quality, Insights, Compare, and AI views.
See Data Exploration for the full breakdown.
SmartPrep Advisor — NEW in v1.2
Stop guessing what preprocessing to apply. The SmartPrep Advisor analyzes your DataFrame and generates actionable, ready-to-run suggestions — automatically.
What It Detects
| Issue | Detection | Fix |
|---|---|---|
| Missing Values | Per-column null counts and percentages | Drop column (>60% missing) or impute (median/mode) |
| Skewed Distributions | Skewness > 1.5 with positive/negative handling | np.log1p() or PowerTransformer(yeo-johnson) |
| Outliers | IQR method with percentage thresholds | df.clip(lower, upper) |
| High Cardinality | >50 unique categorical values | Frequency encoding |
| Class Imbalance | Majority/minority ratio > 3:1 | class_weight='balanced' or SMOTE |
| Feature Scaling | >100x range difference across features | StandardScaler |
Each suggestion includes a severity badge (high/medium/low), a clear explanation, and a "Generate Cell" button that inserts ready-to-run code directly into your notebook.
Usage
Access the SmartPrep tab in the DataFrameExplorer — no code needed. Just click on a DataFrame output and switch to the SmartPrep tab.
Algorithm Matchmaker — NEW in v1.2
Don't know which ML algorithm to use? The Algorithm Matchmaker analyzes your data characteristics, detects the task type, and ranks the best algorithms — with full pipeline code.
How It Works
- Detects task type — Classification (≤20 unique target values), Regression (>20), or Clustering (no target)
- Analyzes data — Sample size, feature types, dimensionality, nulls, class balance
- Ranks algorithms — Score (0-100), speed, interpretability, with reasoning and caveats
- Generates code — Complete
sklearnpipeline: train/test split, fit, evaluate
Supported Algorithms
| Task | Algorithms |
|---|---|
| Classification | Random Forest, XGBoost, Logistic Regression, SVM, LightGBM, KNN |
| Regression | Random Forest, XGBoost, Linear Regression, SVR, LightGBM, ElasticNet |
| Clustering | KMeans, DBSCAN, Hierarchical |
Usage
Access the Algorithms tab in the DataFrameExplorer. Select a target column and get instant recommendations:
UnicoLab Keras Ecosystem — NEW in v1.3
Native integration with the UnicoLab ML ecosystem — KDP, KerasFactory, and MLPotion. Install the full stack with:
Ecosystem Integration Points
| Package | Integration | What It Adds |
|---|---|---|
| KDP | SmartPrep Advisor | Auto-configured Keras preprocessing with distribution-aware encoding and tabular attention |
| KerasFactory | Algorithm Matchmaker | BaseFeedForwardModel + advanced GatedResidualNetwork / TabularAttention model recommendations |
| MLPotion | Algorithm Matchmaker | Managed ModelTrainer + ModelTrainingConfig training pipelines |
| All 3 | Algorithm Matchmaker | Flagship end-to-end pipeline: KDP → KerasFactory → MLPotion |
Ecosystem Status API
Check installed ecosystem packages and versions:
Builtin Ecosystem Recipes
4 new multi-cell recipes available in the recipe library — KDP Smart Preprocessing, KerasFactory Quick Model, MLPotion Training Pipeline, and the UnicoLab End-to-End Pipeline.
See Ecosystem for the full guide with code examples.
Live Interactive Dashboards — NEW in v1.2
Transform any notebook into a stakeholder-ready interactive dashboard — with auto-detected widgets, auto-refresh, shareable URLs, and email snapshots.
Dashboard Features
| Feature | Description |
|---|---|
| Interactive Widgets | Auto-detects DataFrame columns and creates filters, sliders, and dropdowns |
| Auto-Refresh | Configurable interval (30s, 1min, 5min, 15min) for live data |
| Shareable URLs | Generate links with embedded dashboard state (filters, selections) |
| Email Snapshots | Send a screenshot of the current dashboard state via email |
Widget Types
Date Range — For datetime columns
Category Dropdown — For categorical columns
Numeric Slider — For numeric columns
Text Search — For text/string columns
Access via the App Publisher panel → enable "Interactive Widgets" toggle.
Collaborative Analysis Patterns — NEW in v1.2
Bookmark reusable cell sequences as Analysis Patterns — share them across notebooks, search by tags, and apply with one click.
Pattern Features
- Create — Select cells from your notebook, add tags and metadata, save as a pattern
- Search — Filter by name, tags, problem type (classification, regression, clustering, EDA), or data type
- Apply — One-click inserts all pattern cells into your notebook
- Usage tracking — See how many times each pattern has been applied
Creating a Pattern
- Open the Analysis Patterns panel (right panel)
- Click New Pattern
- Select which cells to include
- Add name, description, tags, problem type, and data type
- Click Save Pattern
Example Patterns
| Pattern | Tags | Problem Type |
|---|---|---|
| EDA Starter | eda, pandas, visualization |
EDA |
| Feature Engineering Pipeline | features, sklearn, preprocessing |
Any |
| Binary Classification Baseline | classification, xgboost, metrics |
Classification |
| Time Series Analysis | time_series, decomposition, stationarity |
Regression |
API
AI Assistant
Integrated AI assistant (⌘J) with deep FlowyML ecosystem knowledge. The assistant is context-aware — it sees your notebook state, cell outputs, variable values, and error tracebacks.
- Generate — Create pipeline segments, data transformations, or visualizations from natural language
- Explain — Understand complex data patterns from outputs and profiling results
- Debug — Context-aware error resolution with stack trace analysis
- Optimize — Performance tuning, scaling recommendations, and ML hyperparameter suggestions
Supported Providers
| Provider | Models | Setup |
|---|---|---|
| OpenAI | GPT-4o, GPT-4o-mini | OPENAI_API_KEY env variable |
| Google AI | Gemini Pro, Gemini Ultra | GOOGLE_API_KEY env variable |
| Ollama | Llama 3.1, Mistral, CodeLlama, Phi-3 | Local — ollama serve (no API key needed) |
| Anthropic | Claude 3.5 Sonnet, Claude 3 Opus | ANTHROPIC_API_KEY env variable |
| Custom | Any OpenAI-compatible API | Set base_url to your endpoint |
100% Private with Ollama
Run AI entirely on your machine — no data ever leaves your laptop:
Usage Examples
The AI assistant generates code that respects the reactive DAG — it understands which variables are available from upstream cells and avoids creating stale dependencies.
Comments & Review
Collaborate directly in the notebook with inline comments. Add notebook-level or cell-level annotations for team discussions, with resolve/reply threading.
Recipes — Reusable Templates
43 built-in recipes across Core, Assets, Parallel, Observability, Evals, Data, ML, Visualization, and Ecosystem categories. Drag into your notebook or click + to insert.
See Recipes for the full cookbook.
Reports
Generate beautiful dark-themed HTML reports from your notebook with one click. Reports include styled tables with inline SVG histograms, correlation badges, and formatted outputs.
Report Features
- Dark-themed — Premium dark UI with Inter + JetBrains Mono fonts
- DataFrame rendering — Auto-generated stat cards, SVG histograms, and categorical bar charts inline
- Code toggle — Optionally include source code alongside outputs
- Markdown cells — Rendered as formatted headings, lists, and paragraphs
- CLI export —
fml-notebook export notebook.py --format html --output report.html
Via Python API
Publish as App
Turn any notebook into an interactive web application with one click. Choose your layout, toggle cell visibility, and deploy:
Layout Options
| Layout | Description |
|---|---|
| Linear | Cells stacked vertically — classic report layout |
| Grid | Responsive grid — cells arranged in columns |
| Tabs | Each cell is a tab — ideal for dashboards |
| Sidebar | Input controls in sidebar, outputs in main area |
| Dashboard | Full dashboard mode with widgets and charts |
Via CLI
Widgets (sliders, dropdowns, toggles) become interactive controls in the deployed app — users can tweak parameters and see results update in real time.
Production — Pipelines, Deploy & Assets
Ship notebooks directly to production:
Promote notebooks to production FlowyML pipelines with @step decorators.
Deploy as REST API, Docker Container, or Batch Pipeline — with full FlowyML infrastructure stack integration.
Track kernel assets (DataFrames, models) with size, shape, and type metadata.
Git & Version Control
Full GitHub integration as the collaboration backend. No proprietary cloud, no database — just Git.
See Collaboration for the full workflow.
Environment & Connection
Run standalone in Local Mode or connect to a remote FlowyML server for experiment tracking, pipeline export, and deployment.
See Integration for connection details.
SQL First-Class
Mix Python and SQL seamlessly in the same notebook. SQL cells are powered by DuckDB (in-memory, zero config) or SQLAlchemy (for external databases).
How It Works
- SQL cells query your Python DataFrames directly — any variable holding a DataFrame is available as a table name
- Results are automatically converted to Pandas/Polars DataFrames
- The result DataFrame is assigned to a variable and participates in the reactive DAG
- Supports DuckDB (default, in-process) and SQLAlchemy (PostgreSQL, MySQL, SQLite, etc.)
External Databases
Interactive Widgets
Bind Python variables to professional-grade UI controls — sliders, dropdowns, toggles, date pickers, color pickers, text inputs, and more.
Widget Reactivity
Widgets participate in the reactive DAG — when a user changes a slider value, all downstream cells automatically re-execute. This is what powers the Publish as App feature: your notebook becomes a live, interactive dashboard.
Available Widgets
| Widget | Description | Code |
|---|---|---|
| Slider | Numeric range | fml.slider(...) |
| Select | Dropdown menu | fml.select(...) |
| Toggle | Boolean switch | fml.toggle(...) |
| Number | Numeric input | fml.number(...) |
| Text | Text input | fml.text(...) |
| Date | Date picker | fml.date_picker(...) |
| Color | Color picker | fml.color(...) |
| File | File upload | fml.file_upload(...) |
Deployment & Export
| Format | Command | Use Case |
|---|---|---|
| FlowyML Pipeline | fml-notebook export --format pipeline |
Production ML pipelines |
| HTML Report | fml-notebook export --format html |
Shareable dashboards |
| PDF Report | fml-notebook export --format pdf |
Documentation |
| Docker Image | fml-notebook export --format docker |
Containerized deployment |
| Web App | fml-notebook app notebook.py |
Interactive applications |