# Node.JS API

> Learn how to import and use the Node.JS API to run scripts in an isolated worker thread, including environment variable configuration and integration details for enhanced flexibility.

GenAIScript runs in a (slightly modified) Node.JS environment where additional globals have been added. This environment is configured by the [cli](/genaiscript/reference/cli). Therefore, in order to run a GenAIScript in a “vanilla” Node.JS process, you will need to the **Node.JS `run` API**. This API loads and executes a GenAIScript script in a separate worker thread.

This page describes how to import and use the GenAIScript as an API in your Node.JS application.

## Configuration

[Section titled “Configuration”](#configuration)

Assuming you have have added the cli as a dependency in your project, you can import the [cli](/genaiscript/reference/api) as follows:

* npm

  ```sh
  npm i -D genaiscript
  ```

* pnpm

  ```sh
  pnpm add -D genaiscript
  ```

* yarn

  ```sh
  yarn add -D genaiscript
  ```

## Usage

[Section titled “Usage”](#usage)

The API can be imported using imports from **“genaiscript/api”**.

```js
import { run } from "@genaiscript/api"
```

The imported `api.mjs` wrapper is a tiny, zero dependency loader that spawns a [Node.JS worker thread](https://nodejs.org/api/worker_threads.html) to run GenAIScript.

* No pollution of the globals
* No side effects on the process

## `run`

[Section titled “run”](#run)

The `run` function wraps the [cli run](/genaiscript/reference/cli/run) command.

```js
import { run } from "@genaiscript/api"


const results = await run("summarize", ["myfile.txt"])
```

### Environment variables

[Section titled “Environment variables”](#environment-variables)

You can set the environment variables for the GenAIScript process by passing an object as the `env` field in the options. By default, the worker will inherit `process.env`.

```js
const results = await run("summarize", ["myfile.txt"], {
    env: {
        MY_ENV_VAR: "value",
    },
})
```