Skip to content

Instantly share code, notes, and snippets.

@CypherpunkSamurai
Last active May 20, 2026 20:06
Show Gist options
  • Select an option

  • Save CypherpunkSamurai/c825ee098a9beb053e2ac18c2ae94b69 to your computer and use it in GitHub Desktop.

Select an option

Save CypherpunkSamurai/c825ee098a9beb053e2ac18c2ae94b69 to your computer and use it in GitHub Desktop.

install with permissions

pnpm add -g --stream -y --dangerously-allow-all-builds @google/gemini-cli @qwen-code/qwen-code opencode-ai @openai/codex @kilocode/cli freebuff @earendil-works/pi-coding-agent deepseek-tui mini-kode 9router

update with permissions

pnpm update -g --latest --dangerously-allow-all-builds

pnpm self-update

clean cache

pnpm store prune

set resolution to always choose latest

if your packages aren't updating this can fix it

// Force pnpm to resolve the absolute highest version of direct and deep dependencies pnpm config set --global resolution-mode highest

// Disable the 24-hour artificial security delay for newly published packages pnpm config set --global minimum-release-age 0

To configure pnpm to always use the absolute latest version of packages and dependencies when installing globally, you need to adjust two distinct default settings introduced in recent versions: the resolution mode (which prevents fallback to older cached or direct versions) and the minimum release age (which deliberately delays new package installations by 24 hours for security). [1, 2]

The Solution

Run the following two commands in your terminal to update your global configuration: [1, 2]

Force pnpm to resolve the absolute highest version of direct and deep dependencies

pnpm config set --global resolution-mode highest

Disable the 24-hour artificial security delay for newly published packages

pnpm config set --global minimum-release-age 0


What These Configurations Do## 1. Resolution Mode (resolution-mode)

By default, pnpm prioritises speed and stability by resolving direct dependencies using a lowest-direct policy. Changing this configuration alters the behavior globally: [1, 3]

  • lowest-direct (Default): Resolves the lowest possible version satisfying the direct range.
  • highest: Instructs the resolver to always look up and fetch the latest possible versions for both direct packages and their entire sub-dependency trees. [1, 4]

2. Minimum Release Age (minimum-release-age)

Starting in modern pnpm versions, a supply-chain security feature is active by default which prevents installing any package version that is less than 24 hours old (1440 minutes). [2]

  • Setting this to 0 tells pnpm to opt-out of this buffer delay, allowing you to fetch and install cutting-edge versions the exact minute they are published to the registry. [2]

Where These Settings Are Saved

Your changes are automatically saved to your system's global config file: [5]

  • macOS: ~/Library/Preferences/pnpm/config.yaml
  • Linux: ~/.config/pnpm/config.yaml
  • Windows: ~/AppData/Local/pnpm/config/config.yaml [5]

Note: For programmatic installations or temporary runs where you want to explicitly bypass rules, you can also use pnpm add -g @latest. [6]

If you are experiencing issues with a specific package not upgrading, tell me the name of the package and your current pnpm version (pnpm -v) so we can verify if registry tagging or a specific environment bug is interfering. [7, 8]

[1] https://github.com [2] https://pnpm.io [3] https://medium.com [4] https://pnpm.io [5] https://pnpm.io [6] https://pnpm.io [7] https://github.com [8] https://github.com

Depending on whether you want to configure project workflows, speed up local setups, or bypass strict security protocols, pnpm config settings allow broad customization. [1] These configuration keys can be applied globally via --global or locally inside a project’s configuration files: [2]

⚡ Performance & Package Resolution Configs

  • save-exact Forces pnpm to install the exact current version of a package into your package.json rather than applying the standard carrot (^) or tilde (~) semantic versioning ranges.

pnpm config set save-exact true

  • node-linker Controls how node_modules are structured. Changing this is necessary if you work with strict serverless environments, React Native, or tools that break under standard pnpm symlinks.
  • isolated (Default): Uses symlinks from a global virtual store.
    • hoisted: Creates a traditional flat structure identical to npm or Yarn Classic.
    • pnp: Activates zero node_modules Plug'n'Play execution.

pnpm config set node-linker hoisted

  • link-workspace-packages In monorepos, this determines if local packages link directly to each other or fetch remote registry updates. Turning this off makes packages look outward by default.

pnpm config set link-workspace-packages false

[1, 3, 4, 5, 6] *

🔒 Security, Engines, & Version Constraints

  • minimum-release-age-exclude If you choose to leave the 24-hour supply chain security delay active for safety, you can add a list of trusted frameworks to always install immediately upon release.

Must be structured as a JSON array

pnpm config set --json minimum-release-age-exclude '["react", "next", "@myorg/*"]'

  • node-version Overrides the system's active Node.js version. It forces pnpm to install dependencies using a specific engine target, preventing cross-environment package version fragmentation.

pnpm config set node-version 22.0.0

  • allow-builds An explicit security opt-in array that declares which specific third-party dependencies are permitted to execute post-install build scripts (node-gyp, etc.).

pnpm config set --json allow-builds '{"esbuild": true}'

[3, 7, 8] *

🎛️ System & Network Preferences

  • verify-store-integrity Validates that files in the global content-addressable storage pool haven't been altered by outside tools. Disabling it speeds up execution slightly, but compromises long-term security.

pnpm config set verify-store-integrity false

  • package-import-method Alters how packages cross from the central store into your project directory.
  • hardlink (Default): Direct pointer, saving absolute maximum disk space.
    • copy: Duplicates the files completely (helpful when projects cross multiple separate hard drive filesystems). [4, 5, 9]

pnpm config set package-import-method copy


Which area of your workflow are you trying to optimize (e.g., monorepo builds, Docker container image sizes, or private registry authentication)? Let me know and I can provide specific configurations.

[1] https://pnpm.io [2] https://pnpm.io [3] https://pnpm.io [4] https://pnpm.io [5] https://docs.rs [6] https://pnpm.io [7] https://pnpm.io [8] https://pnpm.io [9] https://pnpm.io

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment