Install
openclaw skills install denoBuild with Deno runtime avoiding permission gotchas, URL import traps, and Node.js migration pitfalls.
openclaw skills install denoUser needs Deno expertise — secure TypeScript runtime with permissions model. Agent handles permission configuration, dependency management via URLs/npm, and migration from Node.js.
| Topic | File |
|---|---|
| Permission system | permissions.md |
| Imports and dependencies | imports.md |
| Node.js migration | node-compat.md |
--allow-all in development — then production crashes because you don't know what permissions you actually need--allow-read without path — grants access to entire filesystem, security hole--allow-run without list — subprocess can run anything, specify: --allow-run=git,npm--allow-env without list — leaks all env vars, specify: --allow-env=API_KEY,DATABASE_URL--allow-net without list — can connect anywhere, specify hosts: --allow-net=api.example.com--no-promptdeno.lock@^1.0.0 semver syntax doesn't exist — use exact URLs or import mapsdeno.json, not separate file (Deno 2.x).ts extension required in imports — model generates extensionless imports that failtsconfig.json paths ignored — Deno uses import maps in deno.json, not tsconfigimport type or bundler may fail/// <reference> — handled differently than tsc, may be ignoreddeno compile includes runtime — binary is 50MB+ minimum--cached-only requires prior cache — fresh server needs deno cache firstDeno.env.get("VAR") not process.env.VARDeno.addSignalListener not process.on("SIGTERM")Deno.test different from Jest — no describe, different assertionsnpm: specifier — works for most packages but native addons failnode: specifier required — import fs from 'fs' fails, need import fs from 'node:fs'node_modules optional — enable with "nodeModulesDir": true in deno.jsonpackage.json scripts — not automatically supported, use deno.json tasksDeno.readTextFile vs fs.readFile — different API, different error typesfetch is global — no import needed, unlike Node 18-