Build your integrationTargetsSDKs

Add a package to your repo

Install a downloaded SDK in your repository and build it for local use.

Use this guide after downloading an SDK or generating it into a local directory. If you configured a repository Delivery, review its pull request to put the files in place instead.

The paths below illustrate a locally generated package. Substitute the directory and package name from your generated README; these are not public packages to install from a registry.

TypeScript

Where to put it

  • In a monorepo with workspaces: packages/parcel.
  • In a single-package repository: vendor/parcel.
  • Any path works. The import name comes from name in the generated package.json, not from the directory.

Depend on it

As a file dependency:

npm install ./vendor/parcel
# or
pnpm add ./vendor/parcel
# or
yarn add file:./vendor/parcel

Or as a workspace member:

package.json
{ "workspaces": ["packages/*"] }
apps/api/package.json
{
  "dependencies": {
    "parcel-client": "*"
  }
}

SDK packages contain no CLI or MCP binaries. Install those independent Target packages when you want parcel or parcel-mcp on your PATH.

Build it

The package ships as TypeScript source and must be compiled before anything imports it. main, types, and exports point into dist/:

cd vendor/parcel
npm install     # typescript and @types/node, dev only
npm run build   # tsc -> dist/

After the build, dist/ holds the compiled JavaScript, .d.ts declarations, and declaration maps, so editors jump from your code into the package's source.

ESM only

  • The package declares "type": "module" and its exports map exposes an import entry only. require() is not supported.
  • Node 20 or newer.
  • Works with modern bundlers and declares "sideEffects": false. The validation schema table is a separate module the client loads only when you turn on validate; bundlers that split dynamic imports (Vite, Rollup, webpack, or esbuild with --splitting) keep it out of your main bundle.

Python

Where to put it

Anywhere. The package directory is parcel/ next to its pyproject.toml. A vendor/parcel directory in your repository is a fine home.

Depend on it

pip install ./vendor/parcel
# or, in a requirements file:
./vendor/parcel

After publishing to PyPI, consumers can install your published distribution name.

Nothing to build

pyproject.toml declares dependencies = [] and requires-python >= 3.11. Import the generated client after installation:

from parcel import ParcelClient

Go

Where to put it

A Go Target can use a dedicated repository or a non-overlapping directory in a monorepo. Configure its repository Delivery and check the module path in go.mod. For a submodule, publishing uses a directory-prefixed version tag; see Publish from a monorepo.

Depend on it

Replace the placeholder with your module path after publishing it:

go get "<your-published-module-path>"

For a downloaded package, keep the SDK and consuming application in separate directories. For example, the hosted Petstore sample declares module example.com/petstore-go in its generated go.mod:

petstore-go/       # downloaded SDK, including its own go.mod
consumer/          # your application

From the new consumer directory, initialize the application and add both its dependency and local replacement:

go mod init example.com/consumer
go mod edit -require=example.com/petstore-go@v0.0.0
go mod edit -replace=example.com/petstore-go=../petstore-go

These commands edit the consumer's go.mod. v0.0.0 is a local placeholder; the replacement supplies the SDK's source without a registry fetch. For another SDK, use the module path from its generated go.mod and its actual relative directory.

Save main.go in consumer:

consumer/main.go
package main

import petstore "example.com/petstore-go"

func main() {
    if _, err := petstore.New(); err != nil { panic(err) }
}

Build from consumer to verify the dependency resolves locally:

GOPROXY=off go build .

On Windows PowerShell, set $env:GOPROXY="off" before go build .. A successful build creates the consumer executable; it does not call the API.

Nothing to build

The generated SDK has no third-party dependencies. Your consuming application still requires the SDK, and go build compiles both.

Choose where custom code belongs

With a linked repository Delivery, commit package helpers, exports, dependencies, tests, and build changes to the Draft. Typeship merges those commits with newly generated files in the next Draft and stops for review when ownership or overlapping edits are ambiguous. Add the checks that prove the resulting package works. A separate wrapper remains useful when application-specific behavior should version and release independently.

Downloaded zips and one-shot packages generate output have no retained repository baseline. If you place those files by hand, your extraction or cleanup process owns later updates. See Customize generated packages.

On this page