Commands
smuggle publish quickPack and register local packages.
smuggle install blocksalso
smuggleSwap registered packages into node_modules.
smuggle dev blocksSwap packages and run your dev server.
smuggle list quickList all registered packages.
smuggle unpublish quickRemove a registered package.
smuggle publish
Pack and register a local package for later use.
sh
smuggle publish # single package
smuggle publish --all # all workspace packages
smuggle publish --path ./pkg # specific directoryIn a pnpm workspace, you'll be prompted to select which packages to publish unless --all is passed.
smuggle install
Swap registered packages into a consumer project's node_modules. Also available as bare smuggle.
sh
smuggle # interactive, with file watcher
smuggle install --all --once # non-interactive, no watcher
smuggle install --ci # CI mode (--all --once + NDJSON output)
smuggle @scope/my-pkg # install a specific package (even if not yet in package.json)
smuggle @scope/pkg-a @scope/pkg-b --dev # install as devDependenciesWhat it does:
- If
node_modulesis missing, runs your package manager's install first - Finds registered packages that match the consumer's dependencies (or uses the names you passed)
- If any named packages aren't in
package.json, temporarily injectsfile:references, runspm installto resolve transitive deps, then revertspackage.jsonand lockfile on exit - Lets you select which ones to swap (unless
--all) - Auto-includes transitive dependencies that are also registered
- Backs up the originals from
node_modules - Extracts your local packages into
node_modules - Clears bundler caches and touches
vite.config.*to trigger a restart - Watches for changes and re-swaps on change (unless
--once) - Restores originals on exit
smuggle dev
Swap local packages and run your dev server in one command.
sh
smuggle dev # auto-detect dev script from package.json
smuggle dev -- npm run start # custom command
smuggle dev --restart # restart server on change instead of HMR
smuggle dev --all # skip package selection promptCombines smuggle install with your dev server — swaps packages, starts the server, and watches for changes.
smuggle list
List all registered local packages.
sh
smuggle list
smuggle list --ci # JSON outputsmuggle unpublish
Remove a registered package from the local store.
sh
smuggle unpublish @scope/my-pkg # by name
smuggle unpublish # interactive selection
smuggle unpublish --all # remove all