AgnoLab is a visual builder for Agno workflows with a low-code canvas, code preview, and executable Python generation.
- Watch on YouTube: https://www.youtube.com/watch?v=fQjQHiIHMsM
- Build flows with
input,agent,team,tool,condition,output, andoutput_apinodes. - Configure providers, models, credentials, base URLs, and execution timeout directly from the canvas.
- Use local providers like Ollama, including local model discovery in the UI.
- Work with built-in Agno tools, saved function tools, and starter Excel tools.
- Preview the generated Python before running it.
- Execute flows in an isolated backend runner with debug logs and runtime checks.
- Save, load, and rerun flows by name.
- Export the generated project as code, requirements, and a starter README.
- Inspect runtime output in a cleaner "response only" view when needed.
- Visual flow builder (canvas-based editor)
- Provider presets and manual provider/model configuration
- Built-in tools, starter function tools, and Excel helper tool
- Python code preview and local backend execution
- Save/load flows and run saved flows by name
- Export generated projects with
main.py,requirements.txt, and starterREADME.md - Docker and Docker Dev environments
- Optional WhatsApp gateway in development compose
You can run AgnoLab either locally (API + Web) or with Docker.
- Local run: follow Local Setup
- Production-like containers: follow Docker
- Development containers with hot reload: follow Development Mode (Docker Dev)
- Drag and connect nodes on a graph-based canvas.
- Validate the direction of connections through the node model.
- See execution badges and run state directly on the canvas.
- Double-click output nodes to focus on the agent response without debug noise.
- Choose a provider preset or set a provider manually.
- Use separate fields for provider, model, API key, base URL, extra env values, and timeout.
- Leave credentials blank to fall back to the system environment.
- Support local providers and remote providers through the same properties panel.
- Add built-in tools from the Agno tool catalog.
- Add function tools from saved user code or starter templates.
- Read Excel files with the starter workbook tool.
- Export runtime dependency hints automatically from the selected tools.
- Preview code before execution.
- Run flows locally in the backend sandbox.
- Run saved flows by name.
- Capture stdout, stderr, exit code, and warnings.
- Use debug mode to inspect tool calls and agent logs.
- Generate a runnable Python project from the graph.
- Produce a requirements file for the selected flow nodes.
- Keep generated output portable and readable.
apps/api: FastAPI backend for graph validation, code generation, execution, exports, provider tooling, and flow storage.apps/api/app/main.py: API entrypoint and runtime routes.apps/api/app/compiler.py: graph-to-Python code generation.apps/api/app/executor.py: isolated subprocess execution and dependency preflight.apps/api/app/provider_catalog.py: provider catalog, presets, and codegen mapping.apps/api/app/runtime_dependencies.py: runtime dependency synthesis for exports.apps/api/app/exporter.py: export bundle generation.apps/api/app/flow_store.py: saved-flow persistence.apps/web: React canvas, properties panel, run console, code preview, and library panels.apps/web/src/App.tsx: main canvas experience and panel logic.apps/web/src/providerCatalog.ts: frontend provider catalog and presets.apps/web/src/agentConfig.ts: agent properties definition.apps/web/src/nodeCatalog.ts: node templates and defaults.apps/web/src/toolCatalog.ts: built-in tool catalog.apps/web/src/starterTools.ts: starter function tools.apps/web/src/api.ts: frontend API client.docs: architecture notes and project screenshots.
- Python 3.11+
- Node.js 18+
- An OpenAI API key if you want to use the default OpenAI provider out of the box
cd apps/api
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
cp .env.example .env
# set OPENAI_API_KEY in .env if needed
uvicorn app.main:app --reload --port 8000cd apps/web
npm install --no-audit --no-fund
export VITE_API_URL=http://localhost:8000
npm run devexport OPENAI_API_KEY="your-key"
docker compose up --buildThe API will be available at http://localhost:8000 and the web app at http://localhost:5173.
The services stay separated in Docker, but docker compose starts both together. The web image receives VITE_API_URL at build time, so you can point it to another backend later without changing the source code.
If you want to connect to a local Ollama instance from inside Docker, use http://host.docker.internal:11434 as the provider base URL.
Saved flows, runtime variables, and flow authentication settings persist on the host under apps/api/data.
docker compose -f docker-compose.dev.yml up --buildThis development compose mounts apps/api and apps/web into the containers, runs uvicorn --reload for the API, and starts the Vite dev server with polling enabled for reliable hot reload inside Docker. The dev web app stays on http://localhost:5173, the API on http://localhost:8000, and the WhatsApp gateway on http://localhost:21465.
For Render, keep the services separate:
- Publish
apps/apias a Web Service. - Publish
apps/webas a Static Site. - Set
VITE_API_URLin the web service build environment to the public URL of the API, for examplehttps://agnolab-api.onrender.com.
This keeps backend and frontend independent while still letting you deploy both parts of the same repository.
AgnoLab supports multiple providers through the canvas properties panel, including local options like Ollama as well as remote providers such as OpenAI, Anthropic, Google, Groq, Mistral, Cohere, Cerebras, OpenRouter, LiteLLM, Azure, Bedrock, Vertex, IBM WatsonX, Portkey, LangDB, and others supported by Agno.
For local providers, the agent properties include a configurable execution timeout so slower models do not stop the flow too early.
When you export a flow, AgnoLab generates:
main.pywith the compiled Agno workflowrequirements.txtwith the runtime dependencies for the selected nodesREADME.mdfor the exported project
This project is licensed under the MIT License. See LICENSE for details.
