TAU/ DOCS

Installation

Install @taucad/runtime and wire it into your framework.

Install the runtime framework, one kernel, and one bundler, then wire the runtime into your framework.

Prerequisites

  • Node.js 24 or later
  • A package manager: npm, pnpm, or yarn

Install the Packages

The runtime ships no kernels, so install at least one kernel plugin (@taucad/replicad) and the @taucad/esbuild bundler that compiles TypeScript model code. zod is a required peer dependency.

pnpm add @taucad/runtime @taucad/replicad @taucad/esbuild zod

Add other plugins the same way when you need them — see Choose a Kernel.

Native Build123d

@taucad/build123d is not a browser plugin, and a global Python does not make it usable: the host packages the pinned CPython and wheel tree itself. Read Build123d first.

tscircuit

To use TSX electronics boards, install @taucad/tscircuit with the runtime, bundler, and Zod. Its bundled engine needs no package-manager hook or bundler alias. See tscircuit for the authoring contract.

npm install @taucad/runtime @taucad/esbuild @taucad/tscircuit zod

Framework Configuration

Vite and React Router

Add the runtime's Vite integration beside the framework plugins. Vite flattens the plugin array returned by tauRuntime(), so do not spread it:

import { reactRouter } from '@react-router/dev/vite';
import { tauRuntime } from '@taucad/runtime/vite';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [tauRuntime(), reactRouter()],
});

For plain Vite, omit reactRouter(). The same tauRuntime() call supports Vite 7 and 8.

Next.js

import { withTauRuntime } from '@taucad/runtime/nextjs/config';

export default withTauRuntime();

The composer supports Next.js 15/Webpack and Next.js 16/Turbopack without a version branch.

Electron

import { electronRuntimeConfig } from '@taucad/runtime/electron/vite';

export default electronRuntimeConfig({
  main: {},
  preload: {},
  renderer: {},
});

Continue with Bundling for utility-process entries and the Framework Integrations API for every process helper.

Node.js

No build configuration is needed on the server. Compose a runtime, and use fromNodeFs to read model files from disk:

import { createRuntimeClient } from '@taucad/runtime';
import { fromNodeFs } from '@taucad/runtime/filesystem/node';
import { inProcessTransport } from '@taucad/runtime/transport/in-process';
import { defineRuntime } from '@taucad/runtime/worker';
import { replicad } from '@taucad/replicad';
import { esbuild } from '@taucad/esbuild';

const runtime = defineRuntime({
  plugins: [replicad(), esbuild()],
});

const client = createRuntimeClient({
  transport: inProcessTransport({ runtime, fileSystem: fromNodeFs('/path/to/project') }),
});

Subpath Imports

The package splits its API across subpaths so bundles carry only what they import: the client from @taucad/runtime, transports from /transport/*, filesystems from /filesystem (with platform backends behind /node and /browser), and authoring entries from /kernel, /middleware, and /bundler. Each API Reference page names the subpath that exports its symbols.

What's Next

On this page