If the project uses deno, use this skill. Use this skill to initialize and work with Deno projects, add/remove dependencies (JSR and npm), run tasks and scripts with appropriate permissions, and use built-in tooling (fmt/lint/test).
Scanned 6/5/2026
Install via CLI
openskills install OpenHands/extensions---
name: deno
description: If the project uses deno, use this skill. Use this skill to initialize and work with Deno projects, add/remove dependencies (JSR and npm), run tasks and scripts with appropriate permissions, and use built-in tooling (fmt/lint/test).
triggers:
- deno
- deno.json
- deno.jsonc
- deno.lock
---
# Deno
Use Deno as the default runtime/tooling when the repo contains `deno.json`/`deno.jsonc`, uses `deno.lock`, or scripts/documentation reference `deno task`, `deno run`, `deno test`, etc.
## Quick decision rules
- Prefer `deno task <name>` if the repo defines tasks.
- Use `deno add` / `deno remove` to manage dependencies (writes to config).
- Be explicit about permissions for `deno run` / `deno test`.
## Common operations
### Initialize a new project
```bash
deno init
```
### Add dependencies (JSR and npm)
```bash
# JSR (recommended for Deno-first packages)
deno add jsr:@std/path
# npm packages are supported too
deno add npm:react
# multiple at once
deno add jsr:@std/assert npm:chalk
```
### Remove dependencies
```bash
deno remove jsr:@std/path
```
### Run a script
```bash
# Minimal permissions: only what the program needs
# Examples:
# --allow-net=api.example.com
# --allow-read=./data
# --allow-env=FOO,BAR
deno run --allow-net --allow-read main.ts
```
### Run tasks
```bash
# list tasks
deno task
# run a task defined in deno.json/deno.jsonc
deno task dev
```
### Formatting, linting, testing
```bash
deno fmt
deno lint
deno test
# common permissioned test run
deno test --allow-net --allow-read
```
### Install / run CLIs
```bash
# Run a JSR or npm package's CLI without installing globally
deno x jsr:@std/http/file-server -p 8080
# Install globally (requires choosing permissions at install time)
# Prefer the smallest set of permissions; avoid blanket flags unless necessary.
deno install -g -N -R jsr:@std/http/file-server -- -p 8080
```
## Notes / pitfalls
- Deno is secure-by-default: missing permissions cause runtime errors; add the smallest set of `--allow-*` flags needed.
- Dependency specifiers:
- `jsr:` for JSR registry packages
- `npm:` for npm packages
- URL imports are also supported (and cached)
- Lockfile: `deno.lock` helps ensure reproducible dependency resolution.
No comments yet. Be the first to comment!