> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getunbound.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI Path Conflicts

> Fix conflicts when another program shadows the unbound command

If `unbound --version` fails, prints unexpected output, or seems to invoke a different program, another tool on your system likely owns the `unbound` name and is taking precedence on your `PATH`.

## Diagnosis

Compare which binary each alias resolves to:

```bash theme={null}
which unbound
which unbound-cli
```

If `unbound-cli` points at the Unbound CLI but `unbound` points elsewhere (or to nothing), something earlier on your `PATH` is shadowing it. Use `unbound-cli` directly while you investigate:

```bash theme={null}
unbound-cli --version
```

Inspect the conflicting path:

```bash theme={null}
type -a unbound
ls -l "$(which unbound)"
```

## Common Causes

* A package providing an `unbound` binary was installed before `unbound-cli` and lives in an earlier `PATH` entry (e.g. `/usr/local/bin`, `/opt/homebrew/bin`, `/usr/sbin`). The system DNS resolver `unbound` from NLnet Labs is a frequent culprit on macOS and Linux.
* A shell alias or function defined in `~/.zshrc`, `~/.bashrc`, or `~/.profile` is overriding the command. Check with `alias unbound` and `type unbound`.
* A previous install left a stale symlink. Remove it, or reorder your `PATH` so the npm global bin directory comes first.

## Fix

Find your npm global bin directory:

```bash theme={null}
npm config get prefix
```

The bin directory is the `prefix` path with `/bin` appended (e.g. `/usr/local/bin` or `/opt/homebrew`). Add it to the front of your `PATH` in `~/.zshrc` or `~/.bashrc`:

```bash theme={null}
export PATH="$(npm config get prefix)/bin:$PATH"
```

Reload your shell:

```bash theme={null}
source ~/.zshrc   # or ~/.bashrc
```

Once `which unbound` and `which unbound-cli` resolve to the same path under your npm global install, the conflict is resolved.
