
English ยท [Try the demo](https://demo.amphi.ai) ยท [Report Bug](https://github.com/amphi-ai/amphi-etl/issues) ยท [Request Feature](https://github.com/amphi-ai/amphi-etl/issues)
Table of contents
#### TOC
- [๐ฆ Installation](#-installation)
- [๐จ Usage](#-usage)
- [โจ Features](#-features)
- [๐ค Contributing](#-contributing)
- [๐ฃ๏ธ Ecosystem](#๏ธ-ecosystem)
####
## ๐ฆ Installation & Update
Amphi is available as both a standalone application or as a JupyterLab extension.
| Amphi ETL (standalone) | Amphi for JupyterLab (extension) |
|------------------------|----------------------|
|  |  |
| ```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:
```bash
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
```bash
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.
```bash
amphi start -w /your/workspace/path -i 0.0.0.0 -p 8888
```
- ๐ [Documentation](https://docs.amphi.ai)
- ๐ [Getting Started](https://docs.amphi.ai/getting-started/installation)
To update Amphi ETL run the following:
```bash
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](https://github.com/pandas-dev/pandas), [DuckDB](https://github.com/duckdb/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:
```javascript
// 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:
''
};
// 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](https://github.com/amphi-ai/amphi-etl/issues) and help us enhance the user experience.
- **Shape the Future**: Have code enhancements or feature ideas? We invite you to propose [pull requests](https://github.com/amphi-ai/amphi-etl/pulls) 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](https://amphi.ai). This project is [ELv2](./LICENSE) licensed.