---
title: "Registry access"
description: "Authenticate pnpm against the private GitHub Packages registry that hosts `@systhemaui/*`."
requested_language: cs
language: en
translation_notice: "This page isn't translated yet"
url: https://docs.systhema.app/cs/getting-started/registry-access
version: unreleased (main)
docs_index: https://docs.systhema.app/cs/llms.txt
---
> This page isn't translated yet. Showing English.


The `@systhemaui/*` packages live on a private GitHub Packages registry. Every Systhema project, including the ones `systhema create` scaffolds, has to authenticate against it before `pnpm install` can fetch them.

## Getting access

Access comes with a Systhema licence. It is granted as a GitHub personal access token (classic) with the `read:packages` scope.

## Configure the project

Two files do the work. `.npmrc` points the `@systhemaui` scope at the registry and reads the token from the environment:

```text title=".npmrc"
@systhemaui:registry=https://npm.pkg.github.com/systhemaui
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
```

You can store the token in a trusted local `.env` file. pnpm does not load that file automatically. Keep it out of version control and export the token before installation:

```text title=".env"
GITHUB_TOKEN=ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
```

Scaffolded projects already ship the `.npmrc`; you only add the token.

## Export the token

Export the token before installing dependencies:

```bash
# Load a trusted, shell-compatible .env file.
set -a
. ./.env
set +a

# Or add it to your shell profile so it's always available:
# ~/.zshrc / ~/.bashrc
export GITHUB_TOKEN=ghp_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
```

## Troubleshooting

- If `pnpm install` fails with a 401 or 404 against `npm.pkg.github.com`, check that the token has the `read:packages` scope and that it is exported in the shell where you run `pnpm`.
- Keep the token active. Package installs fail immediately once it expires.
