Skip to content
Preview: outbound-sdk is not on npm yet and its repository is private. Instantly and HeyReach are beta, Smartlead is unverified.What is verified
outbound-sdk
Esc
↑↓navigate↵open⌘Jpreview
On this page

Installation

outbound-sdk is not published to npm yet. How to build and install it from the repository today, what it needs at run time, and what will change at the first release.

Today: from the repository

The repository is private, so this works only for people who already have access to it. If you do not, there is nothing to install yet: the package will be published to npm, and this page will say so when it is. With access, build the package, pack it, and install the tarball in your project. The repository itself needs Node 24.15 or later to build; the built package runs on Node 22.

# in a clone of the repository
npm ci
npm run build
cd packages/outbound-sdk && npm pack   # writes outbound-sdk-0.0.0.tgz

# in your project
npm install /path/to/outbound-sdk-0.0.0.tgz

This was done by hand, once, on 2026-11-14: the tarball installed into an empty project, the sample on the introduction ran from it, and the outbound binary answered outbound providers.

After the first release

The install will be the package name and nothing else. Until this page says the package is published, treat any npm install outbound-sdk you see elsewhere as not yet true.

What it needs

  • Runtime: Node 22 or later, Bun, or any runtime with fetch. The built package is loaded on Node 22 and on Bun in CI. No CI job runs it on Cloudflare Workers yet.
  • Modules: ESM only. From a CommonJS file, use a dynamic import().
  • Dependencies: zod is the only one.
  • Optional peers: ai (version 6 or 7) for outbound-sdk/tools/ai-sdk, and @anthropic-ai/claude-agent-sdk for outbound-sdk/tools/claude-agent. Install them only if you import those subpaths.
  • Types: included. There is no @types package.

Subpaths

Each adapter and plugin is its own subpath, so what you do not import is not bundled.

Import Holds
outbound-sdk createOutbound, the types, OutboundError
outbound-sdk/instantly, /smartlead, /heyreach One adapter each
outbound-sdk/memory The in-memory adapter, for tests and demos
outbound-sdk/combine Several adapters behind one instance
outbound-sdk/insights The 26 insights
outbound-sdk/<plugin> One plugin each
outbound-sdk/redis A rate budget shared between processes
outbound-sdk/tools, /tools/ai-sdk, /tools/claude-agent AI tools
outbound-sdk/cli The CLI and MCP server, as functions
outbound-sdk/webhooks Webhook parsing and verification
outbound-sdk/providers, /loader The provider catalog, and an adapter chosen from the environment

Keys

Each adapter reads its key from the environment, or takes it as apiKey.

Adapter Variable Notes
Instantly INSTANTLY_API_KEY An API V2 key. The all:read scope is enough.
Smartlead SMARTLEAD_API_KEY Sent as a query parameter, as Smartlead requires. It is removed from every error and log line.
HeyReach HEYREACH_API_KEY A workspace API key.

A read-only key is the right key to give it. No method of the SDK writes, and a key that cannot write makes that true of the credential too.

Was this page helpful?