https://github.com/waldiez/waldiez
Make AG2 Agents Collaborate: Drag, Drop, and Orchestrate with Waldiez
https://github.com/waldiez/waldiez
ag2 agents multiagent no-code ui workflow
Last synced: 4 months ago
JSON representation
Make AG2 Agents Collaborate: Drag, Drop, and Orchestrate with Waldiez
- Host: GitHub
- URL: https://github.com/waldiez/waldiez
- Owner: waldiez
- License: apache-2.0
- Created: 2024-08-22T02:58:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-03T10:16:15.000Z (4 months ago)
- Last Synced: 2025-10-03T10:31:50.357Z (4 months ago)
- Topics: ag2, agents, multiagent, no-code, ui, workflow
- Language: TypeScript
- Homepage: https://waldiez.io
- Size: 72.8 MB
- Stars: 104
- Watchers: 1
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Security: SECURITY.md
- Governance: governance/CLA.md
- Notice: NOTICE.md
Awesome Lists containing this project
README
# Waldiez
[](https://coveralls.io/github/waldiez/waldiez) [](https://pepy.tech/projects/waldiez) [](https://badge.fury.io/py/waldiez) [](https://badge.fury.io/js/@waldiez%2Freact)
## Make AG2 Agents Collaborate: Drag, Drop, and Orchestrate with Waldiez
Design AI Agents and translate a Waldiez flow to [AG2](https://github.com/ag2ai/ag2/):
## Features
- Convert .waldiez flows to .py or .ipynb
- Run a .waldiez flow
- Store the runtime logs of a flow to csv for further analysis
## Installation
### Python
On PyPI:
```shell
python -m pip install waldiez
```
From the repository:
```shell
python -m pip install git+https://github.com/waldiez/waldiez.git
```
### React Component
If youβre looking for the React component, please refer to [README.npm](https://github.com/waldiez/waldiez/blob/main/README.npm.md).
> Note: The React component is only for creating and editing flows β it is not used for converting or running flows (that functionality is handled by the Python package).
To add the waldiez library to your app:
```shell
npm install @waldiez/react
# or
yarn add @waldiez/react
# or
pnpm add @waldiez/react
# or
bun add @waldiez/react
```
## Usage
### UI Options
- For creating-only (no exporting or running) waldiez flows, you can use the playground at .
- There is also a jupyterlab extension here: [waldiez/jupyter](https://github.com/waldiez/jupyter)
- You also can use the vscode extension:
- [repo](https://github.com/waldiez/vscode)
- [marketplace](https://marketplace.visualstudio.com/items?itemName=Waldiez.waldiez-vscode)
- Finally, you can use [waldiez-studio](https://github.com/waldiez/studio), which includes a FastAPI app to handle the conversion and running of waldiez flows.
The jupyterlab extension and waldiez studio are also provided as extras in the main package.
```shell
pip install waldiez[studio] # or pip install waldiez_studio
pip install waldiez[jupyter] # or pip install waldiez_jupyter
# or both
pip install waldiez[studio,jupyter]
```
### CLI
```bash
# Convert a Waldiez flow to a python script or a jupyter notebook
waldiez convert --file /path/to/a/flow.waldiez --output /path/to/an/output/flow[.py|.ipynb]
# Convert and run the script, optionally force generation if the output file already exists
waldiez run --file /path/to/a/flow.waldiez --output /path/to/an/output/flow[.py|.ipynb] [--force]
```
### Using docker/podman
### πͺ Windows (PowerShell with Docker or Podman Desktop)
```powershell
$hostInputFile = "C:\Users\YourName\Documents\flow.waldiez"
$containerInputFile = "/home/waldiez/workspace/flow.waldiez"
$hostOutputDir = "C:\Users\YourName\Documents\waldiez_output"
$containerOutputDir = "/home/waldiez/output"
$containerOutputFile = "/home/waldiez/output/flow.ipynb"
# Convert a flow to Jupyter Notebook
docker run --rm `
-v "$hostInputFile:$containerInputFile" `
-v "$hostOutputDir:$containerOutputDir" `
waldiez/waldiez convert --file $hostInputFile --output $containerOutputFile
# Convert and run it
docker run --rm `
-v "$flow:/home/waldiez/workspace/flow.waldiez" `
-v "$output:/output" `
waldiez/waldiez run --file $hostInputFile --output $containerOutputFile
```
> Note
If using Hyper-V mode, make sure your files are in a shared folder Docker Desktop has access to.
More info:
### π§ Linux/macOS/WSL (Docker or Podman)
```shell
CONTAINER_COMMAND=docker # or podman
# Assuming ./flow.waldiez exists
HOST_INPUT="$(pwd)/flow.waldiez"
CONTAINER_INPUT="/home/waldiez/workspace/flow.waldiez"
HOST_OUTPUT_DIR="$(pwd)/output"
CONTAINER_OUTPUT_DIR="/home/waldiez/output"
mkdir -p ${HOST_OUTPUT_DIR}
# Convert a flow to a Python script
$CONTAINER_COMMAND run --rm \
-v ${HOST_INPUT}:${CONTAINER_INPUT} \
-v ${HOST_OUTPUT_DIR}:${CONTAINER_OUTPUT_DIR} \
waldiez/waldiez convert --file $HOST_INPUT --output ${CONTAINER_OUTPUT_DIR}/flow.py
# Convert to a Jupyter Notebook instead
$CONTAINER_COMMAND run --rm \
-v ${HOST_INPUT}:${CONTAINER_INPUT} \
-v ${HOST_OUTPUT_DIR}:${CONTAINER_OUTPUT_DIR} \
waldiez/waldiez convert --file $HOST_INPUT --output ${CONTAINER_OUTPUT_DIR}/flow.ipynb
# Convert and run it (force override generated file if it exists)
$CONTAINER_COMMAND run --rm -it \
-v ${HOST_INPUT}:${CONTAINER_INPUT} \
-v ${HOST_OUTPUT_DIR}:${CONTAINER_OUTPUT_DIR} \
waldiez/waldiez run --file $HOST_INPUT --force
```
### As a library
#### Generate a script or a notebook from a flow
```python
# Export a Waldiez flow to a python script or a jupyter notebook
from pathlib import Path
from waldiez import WaldiezExporter
flow_path = "/path/to/a/flow.waldiez"
output_path = "/path/to/an/output.py" # or .ipynb
exporter = WaldiezExporter.load(Path(flow_path))
exporter.export(output_path)
```
#### Run a flow
```python
# Run a flow
from pathlib import Path
from waldiez import WaldiezRunner
flow_path = "/path/to/a/flow.waldiez"
output_path = "/path/to/an/output.py"
runner = WaldiezRunner.load(Path(flow_path))
runner.run(output_path=output_path)
```
## Known Conflicts
- **autogen-agentchat**: This package conflicts with `ag2`. Ensure that `autogen-agentchat` is uninstalled before installing `waldiez`. If you have already installed `autogen-agentchat`, you can uninstall it with the following command:
```shell
pip uninstall autogen-agentchat -y
```
If already installed waldiez you might need to reinstall it after uninstalling `autogen-agentchat`:
```shell
pip install --force --no-cache waldiez ag2
```
## See also
- [Waldiez Playground](https://waldiez.github.io)
- [React Component](https://github.com/waldiez/waldiez/blob/main/README.npm.md)
- [Waldiez Studio](https://github.com/waldiez/studio)
- [Waldiez JupyterLab Extension](https://github.com/waldiez/jupyter)
- [Waldiez VSCode Extension](https://github.com/waldiez/vscode)
## Contributors β¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Panagiotis Kasnesis
π π¬

Lazaros Toumanidis
π»

Stella Ioannidou
π£ π¨

Amalia Contiero
π» π

Christos Chatzigeorgiou
π»
Add your contributions
## License
This project is licensed under the [Apache License, Version 2.0 (Apache-2.0)](https://github.com/waldiez/waldiez/blob/main/LICENSE).