Documentación

Todo lo que hace Fluyo, en una página que se lee entera.

Qué es Fluyo y qué problema resuelve

Fluyo es un editor de diagramas de arquitectura en el que las conexiones se mueven: puntos que recorren las flechas mostrando la dirección del flujo, nodos que laten y elementos que aparecen en secuencia. El resultado se exporta como GIF animado.

El problema concreto que resuelve: explicar un sistema distribuido con una imagen estática obliga a que quien la ve reconstruya mentalmente el orden de los pasos. Un diagrama animado lo muestra. Eso importa cuando el diagrama va a un README, a una presentación, a una propuesta de diseño o a un post — sitios donde no puedes estar delante para narrarlo.

Las herramientas que animan de verdad son de pago, viven en la nube y te piden una cuenta. Fluyo es open source con licencia MIT, no tiene backend y no guarda nada: el editor, la animación y hasta la codificación del GIF ocurren en tu navegador.

Cómo empezar

Abres fluyo.space y ya estás dentro. No hay registro, ni email, ni onboarding, ni límite de uso.

Si prefieres no depender de nadie: clona el repositorio y sírvelo tú. Es HTML, CSS y JavaScript sin dependencias ni paso de compilación.

git clone https://github.com/itsnect/fluyo.git
cd fluyo
python -m http.server 8000

Y abre http://localhost:8000. Cualquier servidor de archivos estáticos sirve.

El primer nodo: elige una forma en la barra izquierda y haz clic en el lienzo. Para conectar, pasa el ratón sobre un nodo y arrastra una de las flechas azules que aparecen en sus lados.

Referencia de features

Lienzo y navegación

El lienzo es infinito. Se mueve con la rueda del ratón, con clic derecho, clic central o Alt+arrastrar, y se hace zoom con Ctrl+rueda.

En pantalla táctil: un dedo sobre el vacío desplaza el plano, un dedo sobre un nodo lo arrastra y dos dedos hacen zoom. Doble toque edita el texto. El marco de selección múltiple es lo único que se queda fuera del táctil: necesita el ratón.

En móvil el panel de propiedades es un cajón lateral que abre y cierra el botón de la cabecera.

Un documento puede tener varias páginas, con pestañas en la barra inferior. Doble clic en una pestaña la renombra. Cada página se exporta por separado.

Movimiento libre y rejilla

Por defecto los nodos se mueven libremente, píxel a píxel. Si prefieres alineación automática, activa Ajustar a rejilla en la barra superior. La cuadrícula visible se enciende y apaga aparte, con Cuadrícula.

Formas y contenido

Estilos

Con algo seleccionado, el panel derecho ofrece color de borde, relleno (automático, sólido o ninguno), estilo de línea, posición, color y fondo del texto, tamaño y negrita. El color del texto es independiente del color del borde: en automático, un texto suelto hereda el color del nodo y el texto dentro de una forma usa el del tema. Hay una paleta semántica con nombres — Servicio, Eventos, Datos, Error — más una rejilla amplia y un selector personalizado. El botón Picker es un cuentagotas que toma cualquier color del lienzo (solo en navegadores con la API EyeDropper).

Capas

El orden de dibujado se controla con Al frente, Al fondo, Subir y Bajar. No hay que confundirlo con Orden de aparición, que es un número distinto: controla la secuencia de la animación de entrada, no qué tapa a qué.

Conexiones

Pasa el ratón sobre un nodo y arrastra una de las flechas azules de sus lados. La flecha queda anclada a ese lado, así que se mantiene coherente cuando muevas los nodos. Se puede elegir ruta recta u ortogonal, fijar por qué lado sale y entra, y poner o quitar punta en cada extremo.

Con una flecha seleccionada aparecen puntos huecos: arrástralos para doblarla; doble clic en un codo lo elimina.

Animación y GIF

Esto es el diferenciador del producto:

Al exportar a GIF, el bucle de flujo se ajusta solo para que el resultado sea perfectamente cíclico y no dé un salto al reiniciar.

Modo presentación

El botón Presentar (o la tecla P) esconde toda la interfaz, pone el diagrama a pantalla completa y lo encaja en la pantalla. Cada página pasa a ser una diapositiva.

Se avanza con , Espacio o AvPág, se retrocede con y se sale con Esc; en táctil, un toque avanza. Si la animación de aparición está activa, se reinicia en cada diapositiva. Al salir se recupera la vista exacta —posición y zoom— que había antes de presentar.

Tipografías

Once familias, todas de sistema — no se descarga ninguna fuente. Se puede fijar una global para el diagrama entero y sobrescribirla en elementos concretos.

Exportación

FormatoPara quéNotas
GIFREADME, presentaciones, redesBucle cíclico automático. FPS y duración configurables. Transparencia de bordes duros.
PNGImagen estática de calidadAdmite fondo transparente con bordes suaves.
JPGCuando el peso importaSin transparencia.
SVGSeguir editando en otra herramientaVectorial. El fotograma es estático.

La escala va de 0,5× a 2×. El recorte se calcula sobre el contenido real, no sobre el lienzo completo.

Autoguardado

La sesión se guarda sola en el localStorage de tu navegador. Al volver, Fluyo pregunta si quieres restaurarla. Es un archivo local en tu equipo: no se sube a ninguna parte.

El formato .fluyo.json

Guardar (Ctrl+S) descarga un .fluyo.json. Es JSON legible y versionable en git, sin nada binario salvo las imágenes que hayas pegado.

{
  "version": 3,
  "app": "fluyo",
  "doc": {
    "theme": "dark",
    "customBg": "",
    "cur": 0,
    "pages": [
      {
        "name": "Página 1",
        "nextId": 5,
        "nodes": [
          {
            "id": 1, "shape": "rect", "x": 480, "y": 620,
            "w": 180, "h": 70, "label": "API Gateway",
            "color": "#6a9fb5", "fill": null, "border": "solid",
            "lblPos": "center", "pulse": false, "order": 0
          }
        ],
        "edges": [
          {
            "id": 3, "from": 1, "to": 2,
            "fromSide": "e", "toSide": "w", "route": "ortho",
            "waypoints": [], "label": "eventos",
            "animated": true, "dashed": false,
            "startArrow": false, "endArrow": true, "flowDir": "normal"
          }
        ]
      }
    ]
  },
  "settings": { "speed": 0.5, "dots": 3, "build": false, "stagger": 0.45 }
}

Lo esencial:

Los diagramas de ejemplo son archivos .fluyo.json reales, así que sirven de referencia viva del formato.

Servidor MCP

fluyo-mcp es un servidor Model Context Protocol que permite a un asistente de IA crear y editar diagramas de Fluyo por ti: describes la arquitectura en lenguaje natural y recibes un .fluyo.json que abres en el editor.

Es una capa delgada sobre el mismo modelo de documento que usa el editor, con la paleta, los iconos y el exportador SVG portados uno a uno. Un diagrama generado desde el MCP se abre con el botón Abrir de Fluyo sin conversión de por medio.

El editor sigue sin backend; el servidor MCP es otra cosa. El editor de fluyo.space no envía tus diagramas a ninguna parte. El servidor MCP, en cambio, sí recibe el contenido del diagrama cuando lo usas como conector remoto — no puede editar lo que no ha recibido. Lo procesa en memoria y lo descarta sin guardarlo. Los dos flujos están explicados por separado en la política de privacidad.

Conectarlo

Hay dos transportes sobre el mismo núcleo. Las nueve tools, sus schemas y el renderer son idénticos en ambos; lo único que cambia es por dónde entran los mensajes.

Como conector remoto

Lo más rápido: no hay nada que instalar. Pega esta URL donde tu cliente MCP pida un servidor remoto.

https://mcp.fluyo.space/mcp

Sin autenticación y sin cuenta: no hay que registrarse, ni pedir una clave, ni autorizar nada por OAuth. Pegas la URL y ya está.

En Claude, la ruta es Settings → Connectors → Add custom connector: pon Fluyo como nombre y esa URL como endpoint. Las nueve tools aparecen en la conversación en cuanto se conecta.

En ChatGPT el conector está en proceso de revisión. Hasta que se apruebe, la vía que funciona ahí es el proceso local por stdio, que se explica justo debajo.

El endpoint remoto tiene topes que la versión local no tiene: 1 MB por petición, 200 KB por respuesta de herramienta y 30 peticiones por minuto y por IP. Un diagrama con imágenes incrustadas puede pasarse de los dos primeros.

Como proceso local

Sin red de por medio y sin ningún tope. El servidor sí tiene paso de compilación — la restricción de «cero build» es del editor, no de esta herramienta:

git clone https://github.com/itsnect/fluyo-mcp.git
cd fluyo-mcp
npm install
npm run build

Después añade el servidor a tu configuración MCP, apuntando a la ruta absoluta del dist/index.js que acabas de generar:

{
  "mcpServers": {
    "fluyo": {
      "command": "node",
      "args": ["/ruta/absoluta/a/fluyo-mcp/dist/index.js"]
    }
  }
}

Si lo instalas como ejecutable global (con npm link, o desde npm cuando esté publicado), la configuración se reduce a "command": "fluyo-mcp" sin argumentos.

Consulta siempre el README de fluyo-mcp como fuente de verdad: es el que se actualiza cuando cambian las rutas o el nombre del paquete.

Las nueve tools

ToolQué hace
create_diagramCrea un diagrama completo a partir de una lista de nodos y aristas. Si no le das coordenadas, aplica un auto-layout por capas.
edit_diagramAplica una lista ordenada de operaciones sobre un documento existente: add_node, update_node, remove_node, add_edge, update_edge, remove_edge, set_theme, rename_page y relayout.
export_diagramExporta una página a SVG estático, con el mismo renderer que usa el editor.
list_iconsDevuelve las claves de icono válidas, para que el asistente no tenga que adivinarlas.
list_colorsDevuelve la paleta semántica con sus nombres (Servicio, Eventos / Kafka, Datos…).
list_animsDevuelve las claves de los ocho GIFs animados, para nodos shape="anim".
list_fontsDevuelve las once familias tipográficas disponibles, con la familia CSS completa que espera el campo font.
list_templatesLista los patrones de arquitectura predefinidos: Kafka, RAG y microservicios.
create_from_templateInstancia una de esas plantillas, sustituyendo las etiquetas por las tuyas.

Al referenciar nodos que ya existen en un documento hay que usar su id numérico. Las key que pasas en add_node son temporales: sirven para encadenar referencias dentro de la misma llamada y no se guardan en el .fluyo.json.

Qué no puede hacer todavía

Privacidad y telemetría

Este resumen cubre el editor. El servidor MCP remoto tiene un comportamiento distinto y se explica aparte en la política de privacidad, que es la fuente de verdad para ambos.

Tus diagramas nunca salen de tu navegador. No hay backend al que puedan ir: Fluyo es un sitio de archivos estáticos. El dibujado, la animación y la codificación del GIF ocurren en tu equipo, y lo que se guarda con el autoguardado va al localStorage de tu navegador, no a un servidor.

En el sitio público fluyo.space hay telemetría de producto: pageviews y un puñado de eventos de uso agregados (si se creó un diagrama, si se exportó y en qué formato, si se cargó un ejemplo, si se usó un GIF animado). Sin cookies, sin fingerprinting y sin identificar usuarios. El contenido de tus diagramas no se envía nunca, ni entero ni en fragmentos: los eventos solo llevan valores de una lista cerrada, como png o gif.

El script de telemetría se carga únicamente cuando el dominio es el oficial. Si clonas el repositorio, lo abres en local o lo self-hosteas, no se ejecuta ninguna telemetría y no se hace ninguna llamada de red — no es que se filtren los datos, es que ese código no llega a correr. Los dominios de preview también quedan fuera a propósito.

Si quieres cero telemetría, usa el proyecto en local o self-hosteado. La condición está en js/analytics.js, en un solo bloque, para que puedas comprobarlo tú mismo en un minuto.

La única petición externa del editor es gif.js desde un CDN, la librería que codifica el GIF. Se precachea en la primera visita para que funcione sin conexión.

Cómo contribuir

Fluyo es MIT y las contribuciones son bienvenidas. No hay paso de compilación ni dependencias: clonas, abres y editas.