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:
zodis the only one. - Optional peers:
ai(version 6 or 7) foroutbound-sdk/tools/ai-sdk, and@anthropic-ai/claude-agent-sdkforoutbound-sdk/tools/claude-agent. Install them only if you import those subpaths. - Types: included. There is no
@typespackage.
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.