Visual IDE and runtime for fireflyframework-agentic.
A browser-based, drag-and-drop pipeline builder with real-time code generation, an AI assistant, time-travel debugging, auto-generated REST/queue endpoints, cron scheduling, and Cloudflare Tunnel exposure. Bundled as a single Python package — the SvelteKit frontend is built and served from inside the wheel, so end users do not need Node.js installed.
- Features
- Install
- Quick Start
- Architecture
- Documentation
- Migration from
fireflyframework-agentic[studio] - Development
- License
- Visual canvas — Drag and connect Agent, Tool, Reasoning, Condition, Memory, Validator, Input, Output, FanIn, FanOut, and CustomCode nodes.
- Code generation — Real-time Python output from the graph in the Code tab.
- AI assistant — Natural-language pipeline construction over WebSocket (any Pydantic AI-compatible model).
- Project management — On-disk persistence, per-project REST API, auto-generated endpoints driven by Input/Output boundary nodes.
- Time-travel debugging — Execution checkpoints capture state at every step.
- Tunnel exposure — One-command Cloudflare Quick Tunnel for sharing a local Studio instance over HTTPS.
- GraphQL + WebSocket — Strawberry-based GraphQL API and live event streaming.
- Desktop app (optional) — Tauri-based native shell for offline use.
pip install fireflyframework-agentic-studioThis pulls in fireflyframework-agentic as a dependency. The frontend is
bundled inside the wheel.
For development and contribution work, see Development.
Launch the Studio web UI:
firefly studioOpen http://127.0.0.1:8470 in your browser. Create a new project, drag nodes onto the canvas, connect them, and click Run.
Programmatic launch with custom config:
from fireflyframework_agentic_studio.config import StudioConfig
from fireflyframework_agentic_studio.server import create_app
config = StudioConfig(
host="0.0.0.0",
port=8080,
project_dir="~/my-projects",
)
app = create_app(config)
# serve `app` with any ASGI server (uvicorn, hypercorn, ...)Expose a local Studio over Cloudflare Tunnel:
firefly exposefireflyframework-agentic-studio/
├── src/fireflyframework_agentic_studio/ ← FastAPI backend, runtime, codegen, AI assistant
│ ├── api/ REST endpoints (FastAPI)
│ ├── assistant/ AI assistant (Pydantic AI agents)
│ ├── codegen/ Graph → Python source
│ ├── execution/ Compiler, runner, checkpoints, I/O nodes
│ ├── cli.py `firefly` command
│ ├── server.py FastAPI app factory
│ ├── runtime.py ProjectRuntime
│ └── tunnel.py Cloudflare Quick Tunnels
├── studio-frontend/ ← SvelteKit 5 SPA (built into wheel)
├── studio-desktop/ ← Tauri shell (optional, separate build)
├── scripts/build_studio.py ← Frontend build helper
├── tests/ ← pytest suite
├── examples/ ← Programmatic launch examples
└── docs/ ← Full documentation
The Studio depends on fireflyframework-agentic for all the core primitives
(agents, tools, prompts, reasoning, memory, observability, exposure, pipeline,
embeddings, vectorstores). It adds the visual layer, project runtime, and
operational surfaces (tunnel, scheduler, GraphQL).
- Studio overview — Visual IDE, canvas, code generation, AI assistant.
- Studio agents — Internal architecture of the assistant, oracle, and smith agents.
- Input/Output Nodes — Boundary nodes, trigger types, destination types, schema validation.
- Project API — Per-project REST endpoints, async execution, file upload, GraphQL.
- Scheduling — Cron-based triggers, timezones, payload injection.
- Tunnel Exposure — Cloudflare Quick Tunnels,
firefly expose, Share button. - API Reference — Complete endpoint reference for REST, WebSocket, GraphQL.
- BPM Pipeline Tutorial — End-to-end walkthrough.
For the underlying framework, see fireflyframework-agentic.
If you previously used the embedded Studio that shipped inside
fireflyframework-genai or fireflyframework-agentic, follow these steps.
- pip install "fireflyframework-genai[studio]"
+ pip install fireflyframework-agentic-studioThe CLI (firefly) is unchanged — it now ships with this package.
The Studio module moved from a sub-package (fireflyframework_genai.studio.*)
to a top-level package (fireflyframework_agentic_studio.*).
- from fireflyframework_genai.studio.cli import main
+ from fireflyframework_agentic_studio.cli import main
- from fireflyframework_genai.studio.config import StudioConfig
+ from fireflyframework_agentic_studio.config import StudioConfig
- from fireflyframework_genai.studio.server import create_app
+ from fireflyframework_agentic_studio.server import create_app
- from fireflyframework_genai.studio.execution.io_nodes import InputNodeConfig
+ from fireflyframework_agentic_studio.execution.io_nodes import InputNodeConfigA blanket replace works for almost every import:
grep -rl 'fireflyframework_genai.studio' . | xargs sed -i \
's/fireflyframework_genai\.studio/fireflyframework_agentic_studio/g'If you were already on the renamed fireflyframework_agentic.studio namespace
(unreleased intermediate state), use:
grep -rl 'fireflyframework_agentic.studio' . | xargs sed -i \
's/fireflyframework_agentic\.studio/fireflyframework_agentic_studio/g'The Studio depends on fireflyframework-agentic (the framework, also renamed).
If you have a direct dependency on the framework, update it too:
- pip install fireflyframework-genai
+ pip install fireflyframework-agentic- from fireflyframework_genai import FireflyGenAIConfig, get_config
+ from fireflyframework_agentic import FireflyAgenticConfig, get_configEnvironment variables also changed prefix:
- FIREFLY_GENAI_DEFAULT_MODEL=...
+ FIREFLY_AGENTIC_DEFAULT_MODEL=...The REST factory was renamed:
- from fireflyframework_genai.exposure.rest import create_genai_app
+ from fireflyframework_agentic.exposure.rest import create_agentic_appExisting on-disk projects (graphs, checkpoints, settings) remain compatible. The Studio reads and writes the same JSON layout as before.
If you reference Studio modules in pyproject.toml (e.g. plugin entry points),
update them to the new top-level path:
[project.entry-points."myplugin"]
- panel = "fireflyframework_genai.studio.api.assistant:my_function"
+ panel = "fireflyframework_agentic_studio.api.assistant:my_function"If your CI was installing [studio] extras, switch to a direct install:
- run: uv sync --extra dev --extra studio
+ run: uv pip install fireflyframework-agentic-studio# Clone
git clone https://github.com/fireflyframework/fireflyframework-agentic-studio.git
cd fireflyframework-agentic-studio
# Install dev dependencies
uv sync --extra dev
# Install pre-commit hooks
uv run pre-commit install
# Build the frontend (required for tests that hit static assets)
python scripts/build_studio.py
# Run tests
uv run pytest
# Lint and format
uv run ruff check .
uv run ruff format .
# Type check
uv run pyrightThe frontend lives in studio-frontend/ (SvelteKit 5). For frontend-only
development:
cd studio-frontend
npm ci
npm run dev # http://localhost:5173, expects backend on :8470The Tauri desktop app lives in studio-desktop/ and is built separately.
Apache-2.0 © Firefly Software Solutions Inc. See LICENSE.