Use when starting any Deno project, choosing packages, configuring deno.json, or running CLI commands. Provides foundational knowledge for building modern Deno applications.
View on GitHubFebruary 5, 2026
Select agents to install to:
npx add-skill https://github.com/denoland/skills/blob/main/skills/deno-guidance/SKILL.md -a claude-code --skill deno-guidanceInstallation paths:
.claude/skills/deno-guidance/# Deno Development Guidance
## Overview
This skill provides foundational knowledge for building modern Deno applications. Deno is a secure JavaScript/TypeScript runtime that runs TypeScript directly, has built-in tools (formatter, linter, test runner), and uses modern package management through JSR.
## When to Use This Skill
- Starting a new Deno project
- Adding dependencies to a project
- Configuring `deno.json` settings
- Running Deno CLI commands (fmt, lint, test)
- Setting up import maps
- Understanding Deno's permission system
Apply these practices whenever working in a Deno project (identified by the presence of `deno.json`).
## Package Management Priority
When adding dependencies, follow this priority order:
1. **JSR packages (`jsr:`)** - Preferred for Deno-native packages
- Better TypeScript support (types are built-in)
- Faster to resolve and install
- Example: `jsr:@std/http`, `jsr:@fresh/core`
2. **npm packages (`npm:`)** - Fully supported, use when no JSR alternative exists
- Deno has full npm compatibility
- Example: `npm:express`, `npm:zod`
3. **AVOID: `https://deno.land/x/`** - Deprecated registry
- This is the old package registry
- Many LLMs incorrectly default to this
- Always use `jsr:` instead
### Standard Library
The Deno standard library lives at `@std/` on JSR:
```jsonc
// deno.json
{
"imports": {
"@std/assert": "jsr:@std/assert@1",
"@std/http": "jsr:@std/http@1",
"@std/path": "jsr:@std/path@1"
}
}
```
```typescript
import { serve } from "@std/http";
import { join } from "@std/path";
import { assertEquals } from "@std/assert";
```
Never use `https://deno.land/std/` - always use `jsr:@std/*`.
## Understanding Deno
Reference: https://docs.deno.com/runtime/fundamentals/
Key concepts:
- **Native TypeScript** - No build step needed, Deno runs TypeScript directly
- **Explicit permissions** - Use flags like `--allow-net`, `--allow-read`, `--allow-env`
- **deno.json** - The config file (simila