Swpm Manage Commands Args
deinsoftware/swpm
Manage cmds and args props in SWPM package manager configs (src/packages/managers/.ts), including adding, modifying or removing command and argument mappings across npm, yarn, pnpm, bun, deno.
Moves a Node.js, npm, Yarn, pnpm or Bun project to Deno in reversible steps, starting with Deno as the package manager and changing no code unless needed.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add denoland/skills --skill migrate-to-deno -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install denoland/skills migrate-to-deno --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/denoland/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/migrate-to-deno .claude/skills/migrate-to-deno && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "migrate-to-deno" agent skill from https://github.com/denoland/skills/tree/main/skills/migrate-to-deno into .claude/skills/migrate-to-deno/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-deno", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/denoland/skills/tree/main/skills/migrate-to-denoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add denoland/skills --skill migrate-to-deno -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install denoland/skills migrate-to-deno --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/denoland/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/migrate-to-deno .agents/skills/migrate-to-deno && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migrate-to-deno" agent skill from https://github.com/denoland/skills/tree/main/skills/migrate-to-deno into .agents/skills/migrate-to-deno/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-deno", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add denoland/skills --skill migrate-to-deno -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install denoland/skills migrate-to-deno --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/denoland/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/migrate-to-deno .cursor/skills/migrate-to-deno && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "migrate-to-deno" agent skill from https://github.com/denoland/skills/tree/main/skills/migrate-to-deno into .cursor/skills/migrate-to-deno/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-deno", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/denoland/skills.git --path skills/migrate-to-deno--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add denoland/skills --skill migrate-to-deno -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install denoland/skills migrate-to-deno --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/denoland/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/migrate-to-deno .gemini/skills/migrate-to-deno && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "migrate-to-deno" agent skill from https://github.com/denoland/skills/tree/main/skills/migrate-to-deno into .gemini/skills/migrate-to-deno/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-deno", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install denoland/skills migrate-to-denoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add denoland/skills --skill migrate-to-deno -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/denoland/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/migrate-to-deno .github/skills/migrate-to-deno && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "migrate-to-deno" agent skill from https://github.com/denoland/skills/tree/main/skills/migrate-to-deno into .github/skills/migrate-to-deno/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-deno", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add denoland/skills --skill migrate-to-deno -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install denoland/skills migrate-to-deno --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/denoland/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/migrate-to-deno .opencode/skills/migrate-to-deno && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "migrate-to-deno" agent skill from https://github.com/denoland/skills/tree/main/skills/migrate-to-deno into .opencode/skills/migrate-to-deno/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate-to-deno", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
migrate-to-denoMoves a Node.js, npm, Yarn, pnpm or Bun project to Deno in reversible steps, starting with Deno as the package manager and changing no code unless needed.
The skill's starting point is that most Node projects already run under Deno: it reads package.json, resolves the same npm packages, writes node_modules, runs the same scripts and supports node: built-ins, so usually only the binary changes. It warns against beginning with rewrites to jsr: imports, Deno-specific dependencies or a new directory layout. It requires Deno 2.9 or later.
The work proceeds in rungs, each reversible and useful alone. Rung one runs deno install, which creates deno.lock seeded from an existing npm, Yarn, Bun or pnpm lockfile, and can be undone by deleting the lock and node_modules and running npm install. Rung two runs the program with deno run and deno task, using the all-permissions flag. Rung three narrows permissions to what the program actually requests. Rung four, adopting the built-in formatter, linter, test runner and compiler, is optional and usually not worth it for an existing project. Per-package-manager reference files and a Node API note back it up.
Read from SKILL.md and the folder at commit d5f6ace. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
denoyarnbunnpmpnpmnpxbunxnodetscFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.deno.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Migrate to Deno loads about 2.2k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 841 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
- **Registry and resolver tuning** in `.npmrc` / `.yarnrc.yml`.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from denoland/skills at commit d5f6ace, republished under its MIT licence (© denoland). 841 words, ~2,181 tokens.
.claude/skills/migrate-to-deno/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Requires Deno 2.9 or later. For general Deno usage once migrated, see the deno
skill.
Deno reads an existing package.json, resolves the same npm packages, writes a
real node_modules, runs the same scripts, and supports node: built-ins.
TypeScript runs with no build step.
There is usually no code to change — only which binary you invoke. Don't
start by rewriting imports to jsr:, swapping dependencies for Deno-specific
ones, or restructuring directories. Proposing that is the most common way this
goes wrong.
Each rung is independently useful and reversible. Stop wherever suits the project; plenty of teams stop at rung 1.
deno installReads package.json, resolves the same dependencies, writes node_modules, and
creates deno.lock — seeded from any existing package-lock.json, yarn.lock,
bun.lock, or pnpm lockfile, so pins and integrity hashes carry over instead of
drifting.
The app still runs under node; teammates are unaffected. Commit deno.lock
once verified. To back out: delete deno.lock and node_modules, then
npm install.
deno run -A main.js # or: deno -A main.js
deno task build # runs scripts.build from package.jsonUse -A here. The goal is confirming the program works, not designing a
permission policy — changing both at once makes failures ambiguous.
Replace -A with the narrowest set that works: run it, read what it asks for,
grant exactly that.
deno run --allow-net=api.example.com --allow-read=./config --allow-env=PORT main.jsThis buys something Node cannot offer, and is worth doing before deploying.
deno fmt for prettier, deno lint for eslint, deno test for jest or vitest,
deno check for tsc, deno watch for nodemon, deno compile for pkg.
Optional, and usually not worth it for an existing project. These are not drop-in replacements; parity is incomplete, so this is a real migration, not a config change. A project happy with prettier, eslint, and vitest should keep them and use Deno as runtime and package manager only. Prefer the built-in tools for new projects. If you do move an existing one, go a tool at a time.
| Task | npm | Yarn | pnpm | Bun | Deno |
|---|---|---|---|---|---|
| Install all | npm install | yarn install | pnpm install | bun install | deno install |
| Add | npm i <p> | yarn add <p> | pnpm add <p> | bun add <p> | deno add <p> |
| Add dev | npm i -D <p> | yarn add -D <p> | pnpm add -D <p> | bun add -d <p> | deno add -D <p> |
| Remove | npm uninstall <p> | yarn remove <p> | pnpm remove <p> | bun remove <p> | deno remove <p> |
| CI install | npm ci | yarn install --immutable† | pnpm i --frozen-lockfile | bun install --frozen-lockfile | deno ci |
| Run script | npm run <s> | yarn <s> | pnpm <s> | bun run <s> | deno task <s> |
| Run binary | npx <p> | yarn dlx <p> | pnpm dlx <p> | bunx <p> | dx <p> |
| Outdated | npm outdated | yarn outdated‡ | pnpm outdated | bun outdated | deno outdated |
| Audit | npm audit | yarn npm audit† | pnpm audit | bun audit | deno audit |
| Why | npm ls <p> | yarn why <p> | pnpm why <p> | bun why <p> | deno why <p> |
| Run a file | node f.js | bun f.ts | deno f.ts | ||
| Run TS | ts-node f.ts | bun f.ts | deno f.ts | ||
| Watch | nodemon f.js | bun --watch f.ts | deno watch f.ts | ||
| Format | prettier | prettier | deno fmt | ||
| Lint | eslint | deno lint | |||
| Test | jest, vitest | bun test | deno test | ||
| Coverage | nyc, c8 | deno coverage | |||
| Type-check | tsc --noEmit | tsc | deno check | ||
| Bundle binary | pkg, nexe | bun build --compile | deno compile |
† Yarn Berry (v2+) spelling. Yarn Classic (v1) uses
yarn install --frozen-lockfile and yarn audit.
‡ Yarn Classic only — Berry removed yarn outdated.
dx is a separate binary installed alongside Deno, and an alias for deno x.
It does not appear in the top-level deno --help output. Like npx, it runs
the package with the sandbox disabled.
Requires net access to "..." (or read, env, run)Deno grants nothing by default. Add that specific permission, or -A while
still establishing the program works at all.
ReferenceError: require is not definedA file containing CommonJS is being parsed as ESM. .cjs is always CommonJS,
.mjs always ESM; .js and .ts follow "type" in the nearest
package.json. For a CommonJS project, set "type": "commonjs".
postinstall never ranLifecycle scripts don't run by default. Native addons notice immediately. Approvals are recorded in the config file, so this is one-time:
deno approve-scripts # interactive picker
deno install --allow-scripts=npm:better-sqlite3 # or name them directlynode_modulesDeno's layout is pnpm-style: real files in node_modules/.deno/, exposed via
symlinks. Tools assuming npm's flat hoisted tree need:
{ "nodeModulesLinker": "hoisted" }Say so rather than improvising a workaround that won't hold:
node_modules; .pnp.cjs is unused
and .yarnrc.yml resolver settings don't transfer.yarn patch / pnpm patched dependencies. Vendor or fork.overrides / resolutions. Pin via an import map entry instead..npmrc / .yarnrc.yml.references/FROM_NPM.md — lockfile seeding, node_modules layout, overridesreferences/FROM_YARN.md — Plug'n'Play, Berry vs Classic, workspacesreferences/FROM_PNPM.md — pnpm-workspace.yaml, catalog:, patchesreferences/FROM_BUN.md — Bun API translation, bunfig.tomlreferences/NODE_APIS.md — node: built-ins, DENO_COMPAT, CJS/ESM© denoland, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/migrate-to-deno of denoland/skills.
Open the folder on GitHubat commit d5f6ace
Migrate to Deno next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Migrate to Deno this skilldenoland/skills | 100 | — | ~2.2k | Automated safety check: Warn | MIT | |
| Swpm Manage Commands Argsdeinsoftware/swpm | 125 | — | ~1.5k | Automated safety check: Pass | MIT | |
| npm Supply Chain Securitybodadotsh/npm-security-best-practices | 858 | — | ~1k | Automated safety check: Warn | MIT | |
| Linea Dependency MaintenanceConsensys-Incorporated/linea-attestation-registry | 177 | 1 repos | ~3.7k | Automated safety check: Warn | MIT | |
| TS SDK Authormindfold-ai/Trellis | 15k | — | ~6.1k | Automated safety check: Pass | MIT | |
| Monorepo Tooling and Dependenciespierrecomputer/pierre | 6.3k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 |
deinsoftware/swpm
Manage cmds and args props in SWPM package manager configs (src/packages/managers/.ts), including adding, modifying or removing command and argument mappings across npm, yarn, pnpm, bun, deno.
bodadotsh/npm-security-best-practices
Applies safer package manager defaults and dependency vetting to JavaScript and TypeScript projects to reduce supply-chain attack risk.
Consensys-Incorporated/linea-attestation-registry
Safely plan and execute dependency maintenance for JavaScript/TypeScript (npm, pnpm) and GitHub Actions, including npm lockfiles, pnpm workspaces, catalogs, overrides, SHA-pinned action versions…
mindfold-ai/Trellis
Design, build, verify, and publish production-grade TypeScript SDKs as npm packages inside a pnpm monorepo.
pierrecomputer/pierre
Sets one monorepo's rules for toolchain pins, pnpm package operations, the shared dependency catalog and moon tasks, so the agent adds versions and scripts the right way.
unional/typescript-blackbook
Fix a PR that is failing due to security or vulnerability issues — npm/pnpm/yarn/bun audit failures, CVE alerts, Dependabot merge conflicts, Snyk failures, or GitHub security advisory blocks.
denoland/skills
Guides writing, running and configuring Deno 2.9+ projects: installing npm and JSR dependencies, permissions, config file precedence and the built-in fmt, lint, test and compile toolchain.
denoland/skills
Chooses between running regular npm frontend frameworks under Deno and building with Fresh, Deno's island-architecture framework, with Fresh 2.x guidance.
denoland/skills
Guides deploying Deno apps with the deno deploy CLI, including pre-flight checks, environment variables, Deno KV, custom domains and the --tunnel flag for local development.
denoland/skills
Runs untrusted or AI-generated code in isolated Deno Sandbox microVMs using the @deno/sandbox SDK, with lifecycle, process and streaming guidance.
Works with
Categories
Moves a Node.js, npm, Yarn, pnpm or Bun project to Deno in reversible steps, starting with Deno as the package manager and changing no code unless needed. json, resolves the same npm packages, writes node_modules, runs the same scripts and supports node: built-ins, so usually only the binary changes. It warns against beginning with rewrites to jsr: imports, Deno-specific dependencies or a new directory layout.
Migrate to Deno fits situations like: trying Deno as a drop-in package manager in an existing Node project; running an npm project's scripts and entry point with Deno; tightening Deno permissions before deploying a migrated app; mapping prettier, eslint or jest commands to Deno equivalents.
Run `npx skills add denoland/skills --skill migrate-to-deno -a claude-code`. Or copy the skill folder (skills/migrate-to-deno in denoland/skills) into .claude/skills/migrate-to-deno in your project. Claude Code loads it when a task matches its description.
Run `npx skills add denoland/skills --skill migrate-to-deno -a codex`. Or copy the skill folder (skills/migrate-to-deno in denoland/skills) into .agents/skills/migrate-to-deno in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add denoland/skills --skill migrate-to-deno -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrate-to-deno, .gemini/skills/migrate-to-deno, .github/skills/migrate-to-deno and .opencode/skills/migrate-to-deno in your project.
Going by SKILL.md and its folder, Migrate to Deno needs the command-line tools its instructions call (deno, yarn, bun, npm, pnpm and npx). Our summary lists: Deno 2.9 or later; An existing JavaScript or TypeScript project with a package.json.
SKILL.md names 1 domain. As links in the text: docs.deno.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
Migrate to Deno is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Migrate to Deno: Swpm Manage Commands Args (deinsoftware/swpm, 125 stars), npm Supply Chain Security (bodadotsh/npm-security-best-practices, 858 stars), Linea Dependency Maintenance (Consensys-Incorporated/linea-attestation-registry, 177 stars) and TS SDK Author (mindfold-ai/Trellis, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
denoland (a GitHub organization, an official publisher) maintains it in denoland/skills, which has 100 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on July 29, 2026.
Source: denoland/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.