<!-- Source: https://docs.squirro.com/en/latest/technical/neo/dev-guide/prerequisites.html -->
# Prerequisites

> **Warning**
>
> Project Neo is currently in [Technical Preview](../../../a-z/squirro-glossary.md#term-Technical-Preview). Features described in this section may change before general availability.

Before creating your first bundle project, make sure you have everything listed below.

## Node.js 22.18 or Later

Check your installed version:

```bash
node -v
```

If you need to install or upgrade Node.js, use the [official installer](https://nodejs.org) or a version manager such as `nvm`.

## A Squirro Instance

You need access to a running Squirro instance and a refresh token to authenticate API requests during development.

### How to Get a Refresh Token

1. Log in to your Squirro instance.
2. Click your profile picture in the top-right corner.
3. Navigate to My Account → API Access.
4. Generate a **User Token** and copy it. You paste it during `neo-ui create bundle`.

The token is stored in the project `.env` file and is used by the local development server to authenticate API calls on your behalf.

## Installing the CLI

`@squirro/neo-ui` and `@squirro/neo-core` are published on the public npm registry. No registry configuration, GitHub account, or access token is required. Install the CLI globally:

```bash
npm install -g @squirro/neo-ui
```

Verify the installation:

```bash
neo-ui
```

You should see the CLI welcome message and a list of available commands.

> **Important**
>
> Earlier releases published the `@squirro` packages to GitHub Packages, and the setup instructions had you add a `@squirro:registry=https://npm.pkg.github.com` line to `~/.npmrc`. That line redirects every `@squirro` request to the old registry and makes the install fail. Remove it from `~/.npmrc`, and from the project `.npmrc` of any bundle created before the move, then revoke any GitHub token you created only for package access. For more information, see the [Troubleshooting](troubleshooting.md#neo-extensions-troubleshooting) page.

### Updating the CLI

To update to a newer version, run the same install command with the `@latest` tag:

```bash
npm install -g @squirro/neo-ui@latest
```

To check which version is installed:

```bash
npm list -g @squirro/neo-ui
```

Inside an existing bundle, run `neo-ui upgrade` instead. It updates both `@squirro` packages together and migrates a bundle that still depends on the pre-rename `@squirro/nextgen-core` package. For more information, see the [Migrating from nextgen to neo-ui](migrating-from-nextgen.md#neo-extensions-migrating) page.

## Summary Checklist

- Node.js 22.18 or later installed.
- Squirro instance URL (for example, `https://your-instance.example.com`).
- Squirro refresh token.
- `@squirro/neo-ui` installed globally.
