Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

node-wire-runtime

The core of Node Wire: a framework for writing connectors, the adapters that let AI agents and applications call external systems safely. A connector declares typed actions; the runtime wraps every call in the same pipeline of validation, policy, resilience, error mapping and telemetry. A Node Wire host then exposes those actions as REST endpoints, gRPC methods and MCP tools.

Install this package to write your own connector, or as the base for the official connectors.

What it provides

Area What you get
Connector framework BaseConnector and RestConnector base classes, the @nw_action decorator, Pydantic input and output models, and discovery of installed connectors through the node_wire.connectors entry point
Resilience Retries with backoff (Tenacity), a per-tenant circuit breaker, and rate limiting
Errors One ConnectorResponse shape for every call, and a shared error taxonomy (RETRYABLE, BUSINESS, AUTH, FATAL) with stable error codes
Authentication Providers for no auth, static tokens and credentials, API keys in query strings, OAuth 2.0 (client credentials with a client secret or private-key JWT, and refresh tokens) and Google service accounts
Secrets A pluggable SecretProvider: environment variables built in; AWS Secrets Manager, HashiCorp Vault, Azure Key Vault and GCP Secret Manager as extras
Multi-tenancy A runtime config store of named per-tenant configs, tenant-pinned connector instances, and tenant-scoped secrets
Policy A policy hook on every call, including MCP scope policies
Observability OpenTelemetry traces and metrics, optional Traceloop / OpenLLMetry, and log redaction
Egress safety Helpers that block requests to loopback, private, link-local and cloud-metadata addresses

Install

pip install node-wire-runtime

Cloud secret backends are optional extras. Install only the ones you use:

pip install "node-wire-runtime[aws]"    # AWS Secrets Manager (boto3)
pip install "node-wire-runtime[vault]"  # HashiCorp Vault (hvac)
pip install "node-wire-runtime[azure]"  # Azure Key Vault
pip install "node-wire-runtime[gcp]"    # GCP Secret Manager

Pre-releases are published as X.Y.ZbN; install one with pip install --pre node-wire-runtime.

Wheels are compiled with Cython and contain no Python source. They are built for CPython 3.11, 3.12 and 3.13 on Linux x86_64 (manylinux and musllinux), macOS arm64 and Windows x64.

Write a connector

A connector is a BaseConnector subclass with one @nw_action method per operation. Each action takes a Pydantic input model and returns an output model; run() validates the payload, calls the action and returns a ConnectorResponse, never raising for a failed call.

import asyncio
from typing import Literal

from pydantic import BaseModel

from node_wire_runtime import BaseConnector, EnvSecretProvider, nw_action


class GreetInput(BaseModel):
    action: Literal["greet"] = "greet"
    name: str


class GreetOutput(BaseModel):
    message: str


class GreeterConnector(BaseConnector):
    connector_id = "greeter"
    output_model = GreetOutput

    @nw_action("greet")
    async def greet(self, params: GreetInput, *, trace_id: str) -> GreetOutput:
        greeting = self.secret_provider.get_secret("GREETING")
        return GreetOutput(message=f"{greeting}, {params.name}!")


async def main() -> None:
    connector = GreeterConnector(secret_provider=EnvSecretProvider())

    response = await connector.run({"action": "greet", "name": "Ada"})
    print(response.success, response.data)  # True {'message': 'Hello, Ada!'}

    response = await connector.run({"action": "greet"})  # missing "name"
    print(response.success, response.error_code)  # False VALIDATION_ERROR


asyncio.run(main())

Run it with GREETING=Hello. To ship a connector as its own package, register the module under the node_wire.connectors entry point; see Build a connector.

Use an installed connector

Installed connectors are loaded by auto_register(), which imports only the ones named in NW_ALLOWED_CONNECTORS (comma-separated). With nothing listed, it loads nothing.

import asyncio
import os

os.environ["NW_ALLOWED_CONNECTORS"] = "http_generic"
os.environ["NW_HTTP_GENERIC_ALLOWED_HOSTS"] = "httpbin.org"

from node_wire_runtime import get_connector_registry
from node_wire_runtime.connector_registry import auto_register


async def main() -> None:
    auto_register()
    connector = get_connector_registry()["http_generic"]()
    response = await connector.run(
        {"action": "request", "method": "GET", "url": "https://httpbin.org/get"}
    )
    print(response.success, response.data["status_code"])  # True 200


asyncio.run(main())

This needs pip install node-wire-http. Connectors that use credentials are normally built by a Node Wire host (ConnectorFactory, the REST, gRPC or MCP server) from config/connectors.yaml; see Use a connector.

Official connectors

Package Connects to
node-wire-http Any REST endpoint, with SSRF protection
node-wire-smtp SMTP email
node-wire-stripe Stripe payments, subscriptions and refunds
node-wire-slack Slack messages, DMs and file uploads
node-wire-salesforce Salesforce Leads and Contacts
node-wire-google-drive Google Drive files and sharing
node-wire-fhir-epic Epic FHIR R4
node-wire-fhir-cerner Oracle Health (Cerner) FHIR R4

node-wire-connectors installs this runtime and all eight.

Stability

The 1.x public API is listed in the Public API reference. Anything not listed there, or named with a leading underscore, is internal. See the versioning policy.

Documentation

License

Apache-2.0. See LICENSE.

Metadata

Release files for node-wire-runtime 1.1.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for node-wire-runtime 1.1.0b1
File
node_wire_runtime-1.1.0b1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
node_wire_runtime-1.1.0b1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
node_wire_runtime-1.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
node_wire_runtime-1.1.0b1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
node_wire_runtime-1.1.0b1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
node_wire_runtime-1.1.0b1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
node_wire_runtime-1.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
node_wire_runtime-1.1.0b1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
node_wire_runtime-1.1.0b1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
node_wire_runtime-1.1.0b1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
node_wire_runtime-1.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
node_wire_runtime-1.1.0b1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 114.7 MB

Release files / node_wire_runtime-1.1.0b1-cp313-cp313-win_amd64.whl

Download URL node_wire_runtime-1.1.0b1-cp313-cp313-win_amd64.whl
Size 2.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
7d30390fc0fe3bd56c066ff16f737cbe729f3edaa1cbbf8ef80a2f14750f0d1a
BLAKE2b-256 checksum
How to use checksums
04648c794b640317f675e38356c5d80df207706b1e8c4fbec385ea62a94213dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL node_wire_runtime-1.1.0b1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 16.4 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4d828c78efed45b9feea587221e43c7854beb9c15a67ae0761fbe2d6fac623be
BLAKE2b-256 checksum
How to use checksums
59091d2d83d86721c24409680152959786c9647c70ee81ce0e46ac91b3b261e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL node_wire_runtime-1.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 16.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a3c6d921ea9a5bc33f97b2cfab31ac97baca77ad57cda11024144656e87feb1e
BLAKE2b-256 checksum
How to use checksums
e49d7f9224ee09ea5f424ed42240b15417240d0be1d3140ce91f44d0f3cba919
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp313-cp313-macosx_11_0_arm64.whl

Download URL node_wire_runtime-1.1.0b1-cp313-cp313-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7607036924014afbc7526f38ca06598fec3a22535b024a53b78eb9c25cf14ec7
BLAKE2b-256 checksum
How to use checksums
e443998ceb38bf33e00167c93e10356e43c7d966cbb4c2c30b66693c467f7770
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp312-cp312-win_amd64.whl

Download URL node_wire_runtime-1.1.0b1-cp312-cp312-win_amd64.whl
Size 2.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
98717f855667f4893653a530126a01f6834aeaa73dfa2157ff731b8a2ab8dd79
BLAKE2b-256 checksum
How to use checksums
8c905081a58f5f4766853fda033541218503b33e6830aea36a4757888ae24dff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL node_wire_runtime-1.1.0b1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 16.7 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
cd7c9a23cb956eb77cb988c5fe6751c237b3ac0d99caef54d4ea60127937759d
BLAKE2b-256 checksum
How to use checksums
4d1226f8fafbb7c00c9eadf4c8f932204e696236ac0f7151812b8b558177fe7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL node_wire_runtime-1.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 16.9 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9e929ce00100bc0734fce07d343b70077cb4c82feae313f746b4c371116fe4df
BLAKE2b-256 checksum
How to use checksums
6bd4b24125adb7cd85b16bac7799d5f2b342d2f1280eb3ec8b2e356caa75c0ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp312-cp312-macosx_11_0_arm64.whl

Download URL node_wire_runtime-1.1.0b1-cp312-cp312-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cd4927f7583a2ed4af3c894784bccdeaf0cbfc6d362910260cc9a3ca29446f3d
BLAKE2b-256 checksum
How to use checksums
c596bb61d0cdfb28335018694243ea792a990d50e90bccd0226148dd2443acd6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp311-cp311-win_amd64.whl

Download URL node_wire_runtime-1.1.0b1-cp311-cp311-win_amd64.whl
Size 2.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2650ee879932fbca4dd69e62f60ef50df37bf70b9c47c8be8fd89766555d7d79
BLAKE2b-256 checksum
How to use checksums
20dfd1d8afbd386369a2bb741f2a977e2af335a1f1d699ba4b50a24e4a44ad0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL node_wire_runtime-1.1.0b1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 16.8 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3a593e6599061c40acf29fbcb42db4678d98bbbc1532e7cb07e2de26648e3e23
BLAKE2b-256 checksum
How to use checksums
708a539bdf639b334ecd651c18a9f9ab5f4026ecb339fa44dce7c1e7662b2b76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL node_wire_runtime-1.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 16.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2b9ec5b3162becd74cf7b9d26a880b9b99a51d9a78b27c62a6bce4033149a8a2
BLAKE2b-256 checksum
How to use checksums
a9da7dfa404755a1a4b32354a01dab8bc58ce80f5e00882c36e563d955144779
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / node_wire_runtime-1.1.0b1-cp311-cp311-macosx_11_0_arm64.whl

Download URL node_wire_runtime-1.1.0b1-cp311-cp311-macosx_11_0_arm64.whl
Size 2.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6bdf917468894f7e45050abb7f625b2c56c61a6e33310b4d2a13fc813a1958e4
BLAKE2b-256 checksum
How to use checksums
702ab6fe86afd4569e0d20e3bce909a71aa50db6363df58b94ee3ded1373feea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Security for node-wire-runtime 1.1.0b1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 12 files in this release have been uploaded with provenance metadata.

Select from 12 files

Attestation for node_wire_runtime-1.1.0b1-cp313-cp313-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page