Skip to content

Commit 7f66474

Browse files
authored
docs: clarify package manager completions delegate to local CLIs (#134)
1 parent 998ab6f commit 7f66474

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,20 @@ yarn add --emoji=<TAB>
156156
# Shows: true, false
157157
```
158158

159+
### Completing locally-installed CLIs
160+
161+
Package manager completion does more than complete the package manager's own flags — it also **delegates to CLIs installed as local project dependencies**. If a CLI implements tab's completion protocol (directly or via a [framework adapter](#framework-adapters)), it becomes completable through your package manager _without_ being on your `PATH` and without installing its completion script separately:
162+
163+
```bash
164+
pnpm exec my-cli <TAB> # completes my-cli's subcommands and flags
165+
pnpm dlx my-cli <TAB>
166+
pnpm my-cli <TAB> # the bare form works too
167+
```
168+
169+
Under the hood, tab strips the package-manager wrapper (`exec`, `x`, `run`, `dlx`), detects whether the target CLI supports completion, and forwards the request to it — falling back to running the CLI _through_ the package manager (e.g. `pnpm my-cli complete -- …`) so locally-installed binaries resolve. The same works for `npm exec`, `yarn`, and `bun x`.
170+
171+
> **Note:** Completion is registered against the package-manager binary (`npm`, `pnpm`, `yarn`, `bun`). `npx` and `bunx` are separate commands with no completion of their own, so `npx my-cli <TAB>` / `bunx my-cli <TAB>` won't complete — use `npm exec my-cli` / `bun x my-cli` instead.
172+
159173
## Framework Adapters
160174

161175
tab provides adapters for popular JavaScript CLI frameworks.

0 commit comments

Comments
 (0)