MCPcopy Index your code
hub / github.com/amphi-ai/amphi-etl

github.com/amphi-ai/amphi-etl @v0.9.6b1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.6b1 ↗ · + Follow
1,607 symbols 2,711 edges 259 files 50 documented · 3% updated 17d ago★ 1,365121 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Visual Data Preparation Powered by Python





Simple, intutive and easy to use with AI.

Test Slack License PyPI version PyPI Downloads PyPI - Downloads

amphi-github-banner

English · Try the demo · Report Bug · Request Feature

Table of contents

TOC

📦 Installation & Update

Amphi is available as both a standalone application or as a JupyterLab extension.

Amphi ETL (standalone) Amphi for JupyterLab (extension)
amphi-etl-home-page amphi-for-jupyterlab-homepage2
pip install amphi-etl pip install jupyterlab-amphi
pip install --upgrade amphi-etl pip install --upgrade jupyterlab-amphi

[!NOTE]

If you prefer to install Amphi's Jupyterlab extension through the extension manager, make sure to install jupyerlab-amphi package

🔨 Usage

To start Amphi ETL (standalone), simply run:

amphi start

Use the following parameters to specify your: - workspace (where you can access files and create pipelines on your system), - IP address to expose - port to use

Deploy on your local machine

amphi start -w /your/workspace/path

Deploy on a server

For deploying on a server, you need to specify -i 0.0.0.0 to expose Amphi and access it through the internet. Optionaly specify a different port.

amphi start -w /your/workspace/path -i 0.0.0.0 -p 8888 

To update Amphi ETL run the following:

pip install --upgrade amphi-etl

✨ Features

[!NOTE]

Amphi focuses on data transformation for data preparation, reporting and lightweight ETL. It's designed to be super simple to use, quick to ramp up and easy to use with AI (ChatGTP, Claude, Mistra, etc).

Data Preparation:

  • Visual Interface / Low-code: Accelerate data pipeline development and reduce maintenance time.
  • Python-code Generation: Generate native Python code leveraging common libraries such as pandas, DuckDB that you can run anywhere.
  • Private and Secure: Self-host Amphi on your laptop or in the cloud for complete privacy and security over your data.

🧩 Extensibility:

Amphi is extremely flexible and extensible. - Custom code: Directly use Python or SQL in your pipelines. - Custom components: Add custom components directly from the interface.

How to add a component:

// Component file: HelloDate.tsx

class HelloDate extends (globalThis as any).Amphi.BaseCoreComponent {
  constructor() {
    const description = 'Takes a date and outputs a pandas DataFrame with a message including that date.';
    const defaultConfig = { selectedDate: "" }; 

    const form = {
      idPrefix: 'component__form',
      fields: [
        { 
            type: 'date', 
            id: 'selectedDate', 
            label: 'Select a Date', 
            placeholder: 'Choose a date' 
        }
      ]
    };

    const icon = {
      name: 'amphi-date-input-hello',
      svgstr:
        '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2Zm0 16H5V9h14v11Z"/><path d="M12 11h2v2h-2zM8 11h2v2H8zM16 11h2v2H8zM8 15h2v2H8zM12 15h2v2h-2zM16 15h2v2h-2z"/></svg>'
    };

    // Parameters: Display Name, Technical ID, Description, Output Type, Inputs, Category, Icon, DefaultConfig, Form
    super('Hello Date', 'helloDate', description, 'pandas_df_input', [], 'inputs', icon, defaultConfig, form);
  }

  provideImports() {
    return ['import pandas as pd'];
  }

  generateComponentCode({ config, outputName }) {
    const date = String(config?.selectedDate ?? '').trim() || 'No Date Selected';

    // We create a DataFrame and assign it to the outputName variable
    return `
data = {
    'event': ['Date Selection'],
    'selected_date': ['${date}'],
    'message': ['The user selected the date: ${date}']
}
${outputName} = pd.DataFrame(data)
`;
  }
}

export default new HelloDate();

Create a new file in your workspace, such as HelloDate.tsx and then right-click and select "Add Component". You should see a notification "ent "Hello Date" (helloDate) updated successfully." Then either open a new pipeline or refresh the component palette to see the new component appear in the Inputs.

🤝 Contributing

  • Use and Innovate: Try Amphi and share your use case with us. Your real-world usage and feedback help us improve our product.
  • Voice Your Insights: Encounter a bug? Have a question? Share them by submitting issues and help us enhance the user experience.
  • Shape the Future: Have code enhancements or feature ideas? We invite you to propose pull requests and contribute directly.

Every contribution is helpful.

📡 Telemetry

Amphi collects anonymous telemetry data to help us understand users and their use-cases better to improve the product. You can of course opt out in the settings and disable any telemetry data collection.


📝 License

Copyright © 2024-2026 - present Amphi Labs.

This project is ELv2 licensed.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 742
Function 410
Class 320
Interface 135

Languages

TypeScript97%
Python3%

Modules by API surface

amphi-scheduler/packages/pipeline-scheduler/pipeline_scheduler/handler.py47 symbols
amphi-etl/packages/components-panel/src/index.tsx43 symbols
amphi-scheduler/packages/pipeline-scheduler/src/index.tsx39 symbols
jupyterlab-amphi/packages/pipeline-editor/src/PipelineEditorWidget.tsx31 symbols
jupyterlab-amphi/packages/pipeline-metadata-panel/src/handler.ts29 symbols
jupyterlab-amphi/packages/pipeline-components-manager/src/forms/dataMapping.tsx21 symbols
jupyterlab-amphi/packages/pipeline-components-manager/src/connectionUtils.tsx21 symbols
jupyterlab-amphi/packages/pipeline-components-manager/src/PipelineService.tsx21 symbols
jupyterlab-amphi/packages/pipeline-components-core/src/components/settings/EnvFile.tsx18 symbols
jupyterlab-amphi/packages/pipeline-components-manager/src/index.ts17 symbols
jupyterlab-amphi/packages/pipeline-components-core/src/components/settings/EnvVariables.tsx17 symbols
jupyterlab-amphi/packages/pipeline-components-core/src/components/settings/Connection.tsx17 symbols

Datastores touched

(mysql)Database · 1 repos
(mongodb)Database · 1 repos

For agents

$ claude mcp add amphi-etl \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page