Import a repo

Import a repo

Point Canopy at a GitHub repo and it builds a first-draft map automatically - no manual diagramming. It reads only your manifest and config files (never your source) and lays out a node for each tool it finds, linked to a central repo node.

Step 1

Connect GitHub

Install the Canopy GitHub App and grant the repos you want - public or private.

Step 2

Scan manifests

Canopy reads package.json, requirements.txt, docker-compose, and infra configs - never your source.

Step 3

Starter map

A node per detected tool, linked to a central repo node - yours to edit.

GitHub only, for now

Direct repo scanning currently supports GitHub only. GitLab, Bitbucket and other remotes are coming. In the meantime, you can map any repo by generating a canopy.json from its docs or file tree (there's a copyable AI prompt for that) and pasting it in.

How to import

GitHub access always goes through the Canopy GitHub App - required for every repo, public or private. There's no anonymous scanning: Canopy reads through a short-lived installation token you grant.

  1. Connect GitHub. Go to Workspace settings → Integrations → Connect GitHub (or choose Import a repo when creating a map). You'll install the Canopy GitHub App and pick exactly which repos it can access.
  2. Pick a repo. Choose any repo the App can see.
  3. Scan. Canopy reads the repo's manifests and builds a starter map - a central repo node with a node for each detected tool, edges drawn between them.
  4. Edit. Rename nodes, recategorize them, set spend and billing, and add or remove nodes and edges to match reality.

Public repos need the App too

Both public and private repos go through the installed GitHub App - there's no anonymous scan. Canopy only ever reads metadata and manifests, never your source, and you can revoke access anytime from GitHub → Settings → Applications → Installed GitHub Apps.

What Canopy reads

Canopy detects tools from the manifest and config files below (metadata only). Search the full, live list of what's auto-detected:

ToolWhat Canopy reads (file → match)
Algolia
package.jsonalgoliasearch
AWS
package.json@aws-sdk/client-s3, @aws-sdk/client-dynamodb, aws-sdk
requirements.txt / pyproject.toml / Pipfileboto3
Amplitude
package.json@amplitude/analytics-browser
Angular
package.json@angular/core
Ansible
ansible.cfgpresent
Ant Design
package.jsonantd
Anthropic
package.json@anthropic-ai/sdk
requirements.txt / pyproject.toml / Pipfileanthropic
Apache
docker-compose.ymlimage: httpd
Apache Airflow
requirements.txt / pyproject.toml / Pipfileapache-airflow
docker-compose.ymlimage: airflow
Cassandra
docker-compose.ymlimage: cassandra
CouchDB
docker-compose.ymlimage: couchdb
Apache Kafka
package.jsonkafkajs
Apache Spark
requirements.txt / pyproject.toml / Pipfilepyspark
Apache Superset
docker-compose.ymlimage: superset
Apollo
package.json@apollo/client
Astro
package.jsonastro
Auth0
package.jsonnext-auth, @auth0/nextjs-auth0
Babel
package.json@babel/core
Bootstrap
package.jsonbootstrap
Braintree
package.jsonbraintree
Caddy
docker-compose.ymlimage: caddy
Chakra UI
package.json@chakra-ui/react
CircleCI
.circleci/config.ymlpresent
Clerk
package.json@clerk/nextjs
ClickHouse
package.json@clickhouse/client
requirements.txt / pyproject.toml / Pipfileclickhouse-connect
docker-compose.ymlimage: clickhouse, image: clickhouse-server

Showing 1-25 of 184 detectable tools - Canopy reads only these files, never your source.

When an import detects more tools than your plan's node cap allows, Canopy maps the first (limit − 1) and tells you how many were left out.

What it produces

A starter map, not a finished one:

  • A central repo node - your repository.
  • One node per detected tool, each with its real brand icon.
  • Edges from the repo node out to every detected tool.

Detection is a starting point. After import you can rename and recategorize nodes, set each one's spend and billing model, and add services or edges the scan couldn't infer.

Hitting the node cap on Free?

If the repo has more tools than the Free plan's 15-node limit, Canopy maps the first 14 (leaving one slot for the repo node) and shows a toast with how many were left out. Upgrade to Pro for up to 150 nodes per map.

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.