Migrations

Move your draw.io diagram to Modudraft

Load a .drawio file from draw.io or diagrams.net. Shapes become components, arrows between them stay arrows, and the positions you drew are kept.

Export from draw.io

Save the diagram as a .drawio file. The draw.io desktop app saves this format by default; in the web app use File, then Save as…, and download it to your device.

  • Compressed and uncompressed files both work in current browsers. If a file reports that it could not be decompressed, save it again with Compressed turned off.
  • Modudraft decides by the file name. If you only have an XML export, rename it so it ends in .drawio.
  • Only the first page of the file is read (the first page file, usually the first tab). Save other pages as separate files.

Load it in Modudraft

Open a diagram, then Import in the toolbar, then Open a file…, and choose your .drawio file. Files are limited to 5 MB. The extension has to be lower case.

If the diagram already has content on any tab, you are asked "Replace current diagram?" first. The import replaces every tab and can't be undone, so import into a new, empty diagram. Imports aren't possible on a view-only diagram.

What maps to what

  • Each shape becomes a component, named from the shape's text (formatting is removed). Text boxes and containers also come in as components.
  • The component type is guessed from the shape style first: database or cylinder shapes become a database, cache or Redis shapes a cache, queue, Kafka or SQS shapes a queue, gateway, load balancer or diamond shapes a gateway, bucket or storage shapes storage. If the style says nothing, words in the label are used (for example Postgres, Redis, Kafka, nginx, S3). Everything else becomes a general service.
  • Each arrow that is attached to a shape at both ends becomes an arrow, with its text as the label.
  • Positions are kept. If every shape sits at 0,0 they are arranged left to right instead.

What is lost

  • Containers, swimlanes and groups come in as ordinary components, not as boundaries or levels. A shape inside a container keeps the position it had relative to that container, so it can land on top of other shapes until you run Tidy layout.
  • Arrows that are not attached to a shape at both ends are skipped.
  • Colours, fonts, icons, images, line styles, arrowheads, layers and every page after the first. Shapes that have Edit Data, a link or a tooltip set come in with no name and without their arrows (draw.io stores them differently). Clear that data, or save a copy without it, before you import.

After the import

  • Tidy layout. Click Tidy layout in the left palette to arrange everything neatly. The Tidy direction is in the toolbar's Settings menu.
  • Add levels. Group related components into one component and open it to see what is inside. See Levels and C4.
  • Add boundaries. Drag Boundary from the palette around components that belong together, such as a network or a team.

With an agent (MCP)

The MCP server's import_file does not read draw.io files. An agent can still build the same diagram: ask it to read your file with read_file and add the components and arrows with bulk_add_nodes and bulk_add_edges. read_file reads text up to 2 MB (the web app takes 5 MB), and a compressed draw.io file can't be read as text; save it uncompressed first. In the other direction, export with format: "drawio" returns a draw.io file from a diagram, and with output_path saves it to your repository. Set up the MCP server first.