Skip to content

Tango VisionBuild modules for cognitive buildings

One SDK. A contract the platform enforces at build, publish, and run time. On-demand sandboxes so you never touch production.

How it all fits together ​

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.

Your machineTango Vision cloudYour sandbox<slug>.sandbox…Production— only after we review your source — never from localhost$ ▍module-manifest.jsonsrc/Shell.tsxTV_API_TOKEN=tvk_…localhost:6001/remoteEntry.jsDeveloper portalmints your API keySandbox servicecreates and finds sandboxesBuilding OS shellyour moduletv-apiits own instanceModule registry—PostgreSQLits own databaseEvent busBuilding graphseeded, synthetic✓ licensedSource reviewby Tango VisionOur CIvalidate · check-exposes · buildPlatform registrymanifest checked againLicensed buildingsBuilding OS + Copilot● live
Step 1 of 8
Scaffold the module
One CLI command writes the contract, module-manifest.json, the component the shell renders, Shell.tsx, and a federation build config. Preview it standalone with a mock platform.
In depth →

The 60-second mental model ​

A module is a vertical slice — its own frontend and (optionally) backend — that plugs into the Tango Vision platform. Every module:

  1. Declares a manifest (module-manifest.json) the platform validates.
  2. Reaches platform state through SDK calls (building selection, access token), never raw storage keys or hardcoded hosts.
  3. Optionally publishes/subscribes to events on the platform bus.
  4. Optionally contributes Copilot tools the platform AI can call.
  5. Reports liveness so the shell knows it's running.

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.

Not building a module? ​

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?

Install ​

bash
pnpm add @tv/extension-sdk

The @tv scope is on a private registry that requires a token — see Getting started for the .npmrc setup, including the Docker build-secret pattern.

This is the same contract we build on ​

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.

→ Browse the module catalog

Where to go next ​

Built on the Tango Vision platform. Questions? developers@tango.vision