# Install the SDK
URL: https://synquic.tech/docs/api/sdk/installation.md

Get the SDK package, install it in your Node project, and use its JavaScript, TypeScript, and CLI entry points.

Requires **Node.js 22 or later**. ESM, CommonJS, and TypeScript declarations are included.

## Get and install the package

The SDK isn't published to npm or offered as a public download. Email p@synquic.com for the package: a
`synq-<version>.tgz` file matching your panel's version. Install it in your Node project:

```bash
npm install /absolute/path/to/synq-<version>.tgz
```

Install the matching package again when you upgrade your panel. Everything the SDK does is also available over the
[REST API](/docs/api/http), with a personal access token.

## Choose an import

| Import | Provides |
| --- | --- |
| `synq` | Native factory, remote clients, deployment helpers, public types, and errors. |
| `synq/client` | Remote clients and HTTP helpers. |
| `synq/native` | Native factory, identity types, lifecycle options, and scoped operations. |

<Tabs items={['ES modules', 'CommonJS']}>
<Tab value="ES modules">

```ts title="imports.mts"
import { createShip, SynqClient } from "synq";
import type { ScopedShip, ProjectOperations } from "synq";
```

</Tab>
<Tab value="CommonJS">

```js title="imports.cjs"
const { SynqClient } = require("synq/client");
const { createShip } = require("synq/native");
```

</Tab>
</Tabs>

Imports are passive. An import does not start the CLI, open a database, or create a worker.

## Use the CLI from the same installation

```bash
npx synq --help
```

Installing the tarball as a dependency provides both application imports and the command through `npx` or
npm scripts.

Continue with [remote setup](/docs/api/sdk/client), [native setup](/docs/api/sdk/native), or the
[runnable example](/docs/api/sdk/examples). See [compatibility](/docs/api/sdk/compatibility) for server requirements.
