Import from canopy.json

Import from canopy.json

Already have a map as JSON? Paste it and Canopy renders the architecture on the canvas, ready to edit. Useful when a map was exported from Canopy, generated by a script, or written by an agent - anything that follows the map syntax.

Paste a map

1

New map → Paste canopy.json

On the dashboard or the Maps page, open New map and pick Paste canopy.json.

2

Paste & name it

Paste the JSON. It must be an object with a nodes array. Canopy auto-fills the map name from the file's name; pick a category.

3

Import

Canopy validates and sanitises the JSON, then opens the rendered map on the canvas.

The smallest valid file is an object with a nodes array (edges are optional):

JSON
{
  "name": "My Stack",
  "nodes": [
    { "id": "web", "label": "Web", "brand": "nextdotjs" },
    { "id": "api", "label": "API", "brand": "nodedotjs" }
  ],
  "edges": [{ "source": "web", "target": "api" }]
}

See Map syntax for every field and its accepted values, and the Icon library for brand slugs.

Don't have a file? Generate one with AI

Don't hand-write the JSON. Copy the prompt below into ChatGPT, Claude, Gemini or any LLM, paste in your own architecture (a description, your README, or an infra list), and paste the JSON it returns into Paste canopy.json. The prompt tells the model to read these docs first, so it uses the right schema and real icon slugs.

Generate canopy.json with an LLM

Paste this into ChatGPT, Claude, Gemini or any LLM, add your own architecture (a description, your README, or an infra list), and paste the JSON it returns into Paste canopy.json.

You are an expert software architect. Generate a `canopy.json` architecture map for Canopy (https://canopy.8starlabs.com).

First, read Canopy's machine-readable docs so you use the exact schema and only valid icon slugs:
- Map schema (every field + accepted values): https://canopy.8starlabs.com/docs/maps/architecture-as-code.md
- Icon / brand slugs: https://canopy.8starlabs.com/docs/maps/icons.md
- Full docs in one file (optional): https://canopy.8starlabs.com/llms-full.txt

Then, from the architecture I describe at the bottom, output ONLY a valid canopy.json - a single JSON object, no prose and no markdown code fence - shaped like:
{
  "name": "<short map name>",
  "nodes": [
    { "id": "web", "label": "Web app", "brand": "nextdotjs", "group": "Frontend" },
    { "id": "api", "label": "API", "brand": "nodedotjs", "group": "Backend" }
  ],
  "edges": [ { "source": "web", "target": "api" } ]
}

Rules:
- Every node needs a unique `id` and a `label`. Use a real `brand` slug from the icon library above; if nothing fits, omit `brand` (Canopy renders a generic box).
- Add `edges` for real dependencies / data flow (`source` and `target` reference node ids).
- Optionally add `group` (a logical layer) and, if I give you costs, spend metadata per the schema.
- Be accurate to what I describe - do not invent services.

My system:
<paste your architecture here: a description, your README / docs, your infra list, or a repo file tree>

This is also how you map a stack that lives on GitLab, Bitbucket, or any non-GitHub remote: point the model at your repo or docs and import the result.

What's validated

Canopy is forgiving - a slightly-off file still imports cleanly:

SituationWhat happens
Not valid JSON, or no nodes arrayRejected before the map is created - nothing is saved.
Unknown brand slugFalls back to a generic box node.
Edge source/target with no matching idThat edge is dropped; the rest import.
HTML / scripts / hidden unicode in fieldsStripped on import (the same sanitisation applied on every save).
Very large fileCapped (512 KB) so a runaway file can't be imported.

Free plan limits still apply

Importing counts as creating a map, so the Free 2-maps-per-workspace limit applies - if you're already at the limit, free up a slot or upgrade to Pro first. Pro is unlimited.

Combining approaches

You can mix methods on the same map afterwards - paste a base architecture, then hand-add the services that weren't in the file, or export it back to JSON to round-trip through your own tools.

to paste into any AI.

Ask ChatGPT about this page.

Ask Claude about this page.

Need help? Sign in to chat with support

Have ideas?

General inquiry? Email support.