# Using bun install with an Azure Artifacts npm registry (/docs/guides/install/azure-artifacts)

<!-- agent-signals: reading_time_min: 1 · est_tokens: 680 · updated: 2026-07-28 -->
Related: [Add a dependency](/docs/guides/install/add.md), [Add a development dependency](/docs/guides/install/add-dev.md), [Add an optional dependency](/docs/guides/install/add-optional.md), [Add a peer dependency](/docs/guides/install/add-peer.md), [Add a Git dependency](/docs/guides/install/add-git.md), [Add a tarball dependency](/docs/guides/install/add-tarball.md)

<Note>
  [Azure
  Artifacts'](https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure-devops\&tabs=windows%2Cclassic)
  instructions for `.npmrc` say to base64 encode the password. Do not do this for `bun install`. Bun base64 encodes the
  password for you if needed.
</Note>

[Azure Artifacts](https://azure.microsoft.com/en-us/products/devops/artifacts) is a package management system for Azure DevOps. You can use it to host your own private npm registry, along with other types of packages.

***

### Configure with bunfig.toml [#configure-with-bunfigtoml]

***

To use it with `bun install`, add a `bunfig.toml` file to your project with the following contents. Replace `my-azure-artifacts-user` with your Azure Artifacts username, such as `jarred1234`.

```toml bunfig.toml icon="settings"
[install.registry]
url = "https://pkgs.dev.azure.com/my-azure-artifacts-user/_packaging/my-azure-artifacts-user/npm/registry"
username = "my-azure-artifacts-user"
# You can use an environment variable here
password = "$NPM_PASSWORD"
```

***

Then assign your Azure Personal Access Token to the `NPM_PASSWORD` environment variable. Bun [automatically reads](/runtime/environment-variables) `.env` files, so create a file called `.env` in your project root. Don't base64 encode the token; Bun does that for you.

```ini .env icon="settings"
NPM_PASSWORD=<paste token here>
```

***

### Configure with environment variables [#configure-with-environment-variables]

***

To configure Azure Artifacts without `bunfig.toml`, set the `NPM_CONFIG_REGISTRY` environment variable. The URL should include `:username` and `:_password` as query parameters. Replace `<USERNAME>` and `<PASSWORD>` with your own values.

```bash terminal icon="terminal"
NPM_CONFIG_REGISTRY=https://pkgs.dev.azure.com/my-azure-artifacts-user/_packaging/my-azure-artifacts-user/npm/registry/:username=<USERNAME>:_password=<PASSWORD>
```

***

### Don't base64 encode the password [#dont-base64-encode-the-password]

***

[Azure Artifacts'](https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure-devops\&tabs=windows%2Cclassic) instructions for `.npmrc` say to base64 encode the password. Do not do this for `bun install`. Bun base64 encodes the password for you if needed.

<Note>
  If the password ends with 

  `==`

  , it is probably base64 encoded.
</Note>

***

To decode a base64-encoded password, open your browser console and run:

```js browser icon="computer"
atob("<base64-encoded password>");
```

***

Alternatively, use the `base64` command line tool, though the password may end up in your shell history:

```bash terminal icon="terminal"
echo "base64-encoded-password" | base64 --decode
```
