Obtain and install a Graft

A Graft is a generated Caller package. You do not write it by hand—you install it with your normal package manager. There are two common paths.

The registry URL here is only for installation. It is separate from the runtime host you set later to execute calls — see Project Key, registry, host, and credentials.

Install a public Graft

Grafts published to the public Graftcode registry can be installed without running your own Gateway or copying coordinates from Vision. Point your package manager at the public feed and install the documented package name and version.

Caller ecosystemPublic registry URL
npm / NuGet / Composer / RubyGemshttps://grft.dev/
Maven / Gradlehttps://grft.dev/maven2/
piphttps://grft.dev/simple/

Maintained cross-runtime sample packages (useful for smoke-testing installs):

PackageExample package versions
grft-test-simple-car-e2e0.2.1 (npm, NuGet, Maven), 0.2.3 (PyPI), 0.2.4 (Composer graft package)
grft-test-simple-car-repository-e2e0.2.10.2.2 (see supported runtimes)

Example install commands (production registry):

dotnet add package graft.nuget.grft-test-simple-car-e2e --version 0.2.1 -s https://grft.dev/
Exact scopes, artifact IDs, and import paths come from the installed package and its generated `GraftConfig`. After install, configure invocation per [Configure invocation](/how-to-guides/configure-graft-invocation)—remote Grafts need a WebSocket host; some public packages default to in-memory execution when the Receiver module ships inside the package.

Source for the sample Receiver: grft-test-simple-car.

Install from your own Gateway

When you expose a module, Gateway publishes a private (per-Gateway) registry identifier. Install coordinates change when Gateway restarts without a project key.

1. Wait for publication

Start Gateway against the built Receiver and wait for successful model upload in logs or Vision. Install Gateway first if needed: Run Gateway locally.

2. Open Vision

Default HTTP port is 81. When Gateway runs in a container, map host port 81 to reach Vision (for example http://localhost:81/GV). See Deploy with Docker.

3. Copy the install command

For your runtime, copy the complete command from Vision, including registry, package name, and version.

dotnet add package <package-id> --version <version> -s <registry-from-vision>
Never derive registry URLs from the Receiver assembly or module name. Use a [project key](/how-to-guides/use-a-portal-project-key) when stable publication identity is required.

4. Verify exports

Inspect generated namespaces, imports, and method names in the installed package.

Next steps