> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroruntime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Node.js

> The Zero Runtime Node.js SDK: build voice AI agents in JavaScript or TypeScript on Node.js 18+ with typed, ESM-first APIs.

## Requirements

* Node.js 18+
* A Zero Runtime address and auth token from the [dashboard](https://app.zeroruntime.ai/)
* API keys for the providers you use

## Install

```bash theme={null}
npm install @zrt/js-sdk
```

## Conventions

* Agents are built with the `createAgent({ ... })` factory and define `async onEnter()` and
  `onExit()` lifecycle hooks.
* Core APIs (`createAgent`, `Pipeline`, `serve`, `invoke`, `Room`, `Sip`, `functionTool`) are
  imported from `@zrt/js-sdk`; provider plugins from `@zrt/js-sdk/plugins/<name>`.
* `Pipeline` and every provider are factory calls (no `new`) that take a single options object,
  for example `GoogleLLM({ maxOutputTokens: 8192 })`.
* Tools are a name-to-spec map on `createAgent`, each `{ description, parameters, execute }`.
  JavaScript cannot read parameter types at runtime, so you describe them yourself. Standalone,
  reusable tools can also be built with `functionTool({ name, description, parameters, execute })`.

## API reference

<Card title="Node.js SDK API reference" icon="node-js" href="/api-reference/js/overview" horizontal>
  Every export, type, and option in the Node.js SDK.
</Card>

The [Quickstart](/quickstarts/build-your-first-voice-agent) shows a complete agent. Runnable examples are at
[zrt-js-sdk-examples](https://github.com/ZeroRuntimeAI/zrt-js-sdk-examples).
