
pnpm 11.11.0で追加されたpnpm accessコマンドで何ができるか確認してみた
どうも!オペ部の西村祐二です!
2026年7月にリリースされた pnpm 11.11.0 で、pnpm access コマンドが追加されました。npm の access コマンドと同じ体系で、レジストリ上のパッケージ公開範囲やチームアクセスを CLI から操作できるコマンドです。
ただ、執筆時点では pnpm 公式ドキュメントに pnpm access のページがまだありません。そこで、リリースノートと実装PRを一次情報として、手元の 11.11.0 で実際に動かしながら整理してみました。なお、同じ 11.11.0 にはセキュリティ修正(依存インストール時の path traversal 対策)も入っていますが、この記事では新コマンドの pnpm access に絞ります。
pnpm access で何ができるか
pnpm access は、npm レジストリ上のパッケージに対する「誰が何をできるか」を操作するコマンドです。対象は大きく3つあります。
- 公開範囲: パッケージの public / private(限定公開)状態の取得・変更
- 2FA の要求レベル: パッケージ単位で、publish 時などに 2FA を要求するかの設定
- チームアクセス: organization のチーム(
scope:team)への read-only / read-write 権限の付与・剥奪
npm には以前から npm access があり、pnpm access はそのサブコマンド体系を踏襲しています(実装は PR #12816)。pnpm では 11.0 で whoami、ping、dist-tag などの npm CLI への委譲をやめてネイティブ実装に置き換えるなど、レジストリ操作系コマンドを pnpm 本体に取り込む流れが続いており、pnpm access もその一つです。
試してみる
環境
- pnpm 11.11.0
- Node.js v22.22.2 / corepack 0.34.6
- macOS
corepack を使い、package.json の packageManager フィールドに pnpm@11.11.0 を指定してバージョンを固定しています。
1. サブコマンド一覧を確認する
pnpm access --help を実行すると、次のサブコマンドが確認できます。
$ pnpm access --help
Usage: pnpm access list packages [<user>|<scope>|<scope:team>]
pnpm access list collaborators [<package> [<user>]]
pnpm access get status [<package>]
pnpm access set status=public|private [<package>]
pnpm access set mfa=none|publish|automation [<package>]
pnpm access grant <read-only|read-write> <scope:team> [<package>]
pnpm access revoke <scope:team> [<package>]
| サブコマンド | 役割 |
|---|---|
list packages |
ユーザー・scope・チームがアクセスできるパッケージ一覧を表示 |
list collaborators |
パッケージのコラボレーター(ユーザーと権限)一覧を表示 |
get status |
パッケージの公開状態(public / private)を取得 |
set status=public|private |
パッケージの公開範囲を変更 |
set mfa=none|publish|automation |
パッケージ単位の 2FA 要求レベルを設定 |
grant <read-only|read-write> <scope:team> |
チームにアクセス権を付与 |
revoke <scope:team> |
チームのアクセス権を剥奪 |
--help のオプション欄では、共通オプションとして --registry <url> / --json / --otp <code> が確認できます。
2. 読み取り系を実行してみる
書き込み系(set / grant / revoke)はレジストリ上の実パッケージの設定を変更してしまうため、今回は読み取り系だけ実行しました。認証なしの状態で public パッケージに対して実行すると、次のようになります。
$ pnpm access get status is-positive
[ERR_PNPM_REGISTRY_ERROR] Failed to get status of package:
405 Method Not Allowed. GET is not allowed
$ pnpm access list packages
[ERR_PNPM_PACKAGE_NOT_FOUND] Package not found in registry. /-/-/package does not exist
どちらもエラーになりましたが、コマンドはレジストリまで到達しており、レジストリ側の応答が pnpm のエラーコードに変換されています。1つ目の 405 Method Not Allowed は、access 系エンドポイントが GET での照会を受け付けていないことを示しています。認証なしで気軽にパッケージの状態を眺める用途は想定されていない、と読めます。
つまり pnpm access は「public パッケージのメタ情報を眺めるコマンド」ではありません。pnpm login などで認証したうえで、自分が管理する scoped パッケージや organization の権限を操作するためのコマンド、という位置づけです。なお、認証ありでの動作と書き込み系は今回検証していません。--help を見る限り、2FA を有効にしたアカウントで書き込み系を実行する場合は --otp で OTP を渡す想定になっています。
現時点の注意点
公式ドキュメントがまだない(2026/7/12時点)
npm access との差分と共通の制約
npm access との差分が1つ、npm と共通の制約が1つあります。
npm access のドキュメントでは、パッケージ名を省略するとカレントディレクトリのパッケージに作用すると説明されています。一方 pnpm 11.11.0 で get status をパッケージ名なしで実行すると、次のエラーになりました。
$ pnpm access get status
[ERR_PNPM_ACCESS_GET_STATUS_PACKAGE_REQUIRED] Package name is required (e.g., pnpm access get status @scope/pkg)
また、unscoped なパッケージは npm のレジストリ仕様として常に public です(npm access のドキュメントに「Unscoped packages are always public.」と記載があります)。そのため、unscoped パッケージを set status で private にすることはできません。この点は npm と共通の制約です。
どんな場面で使えるか
試した範囲では、次のような場面で出番がありそうです。
- scoped パッケージのメンテナ: 限定公開パッケージの公開範囲や、publish 時の 2FA 要求をコマンドラインで管理したい場合
- organization の管理者: チーム単位のアクセス権の付与・剥奪を、Web UI ではなく CLI で扱いたい場合
- npm CLI を併用している pnpm ユーザー: レジストリの権限操作だけ npm CLI に頼っていた構成を、pnpm に揃えたい場合
一方で、パッケージのメタ情報を見たいだけなら、認証不要の pnpm view が引き続き選択肢になります。
--help だけでもサブコマンド体系は把握できるので、npm access を使ったことがあれば移行の負担は小さそうです。
まとめ
-
pnpm 11.11.0 で、レジストリ上の公開範囲・2FA 要求・チームアクセスを操作する
pnpm accessが追加されました(npm access と同じサブコマンド体系) -
公式ドキュメントは執筆時点(2026/7/12時点)で未公開のため、詳細を確認するときは実装PRと
--helpの出力を見るのが確実です
誰かの参考になれば幸いです。
参考リンク:




