One package
@tv/extension-sdk gives you the manifest schema, the PlatformContext types, React hooks, NestJS decorators, and a CLI that scaffolds, validates, and snapshots. Install it, target it, ship.
One SDK. A contract the platform enforces at build, publish, and run time. On-demand sandboxes so you never touch production.
From an empty folder to your module in a sandbox, and on to production after review, in eight steps. Click a step to jump to it; each one links to the part of the guide that covers it.
A module is a vertical slice — its own frontend and (optionally) backend — that plugs into the Tango Vision platform. Every module:
module-manifest.json) the platform validates.You build against the SDK; the platform enforces the contract. Stability tiers tell you which parts of it can change under you.
To see the shape in real code, ask for tv-module-example — the reference implementation of the contract, kept deliberately minimal. Its repository is private, so a copy is provided on request: write to developers@tango.vision. The module catalog lists the production modules built on the same contract.
If you already run a facility-management system, a BMS or a monitoring platform and you just want that data on the building graph, you are in the wrong half of this site. Pushing data in is one endpoint and a few hours — no SDK, no module, no release cycle.
→ Integrations: configuration or development?
pnpm add @tv/extension-sdkThe @tv scope is on a private registry that requires a token — see Getting started for the .npmrc setup, including the Docker build-secret pattern.
Every module in the catalog ships on this SDK — CAFM, leases, wayfinding, BIM, WiFi-based occupancy, and more. The first-party modules use the same manifest, the same PlatformContext, and the same federation entry point you get.
Two things are not the same, and it would be dishonest to imply otherwise. Registering a module in the platform registry (tv-sdk ingest) needs the platform.registry:write permission, which only a platform administrator holds — inside your own sandbox you are the administrator of your own tv-api, so ingest there works with the token tv-sdk sandbox connect prints. And developer registration is invite-only, so an account is created for you rather than by you. The runtime contract your module is built against is the same one ours are built against; the operations that change what runs in production are not open to it.