Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

deno-project-templates

verified

Use when scaffolding new Deno projects. Provides templates for Fresh web apps, CLI tools, libraries, and API servers with modern best practices.

View on GitHub

Marketplace

denoland-skills

denoland/skills

Plugin

deno-skills

Repository
Verified Org

denoland/skills
13stars

skills/deno-project-templates/SKILL.md

Last Verified

February 5, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/denoland/skills/blob/main/skills/deno-project-templates/SKILL.md -a claude-code --skill deno-project-templates

Installation paths:

Claude
.claude/skills/deno-project-templates/
Powered by add-skill CLI

Instructions

# Deno Project Templates

This skill provides templates for creating new Deno projects with modern best practices.

## When to Use This Skill

- Creating a new Deno project from scratch
- Setting up project structure for different application types
- Scaffolding Fresh web apps, CLI tools, libraries, or API servers

## Project Types

Choose the appropriate template based on what you want to build:

| Type | Use Case | Key Files |
|------|----------|-----------|
| **Fresh web app** | Full-stack web application with Fresh framework | `main.ts`, `routes/`, `islands/` |
| **CLI tool** | Command-line application | `main.ts` with arg parsing |
| **Library** | Reusable package to publish on JSR | `mod.ts`, `mod_test.ts` |
| **API server** | Backend API without frontend | `main.ts` with HTTP handlers |

## Fresh Web App

For full-stack web applications, use the Fresh initializer:

```bash
deno run -Ar jsr:@fresh/init my-project
cd my-project
```

This creates:
- `deno.json` - Project configuration and dependencies
- `main.ts` - Entry point that starts the server
- `fresh.gen.ts` - Auto-generated manifest (don't edit manually)
- `routes/` - Pages and API routes (file-based routing)
- `islands/` - Interactive components that get JavaScript on the client
- `components/` - Server-only components (no JavaScript shipped)
- `static/` - Static assets like images, CSS

**Development:** Fresh uses Vite. The dev server runs at `http://localhost:5173` (not port 8000).

```bash
deno task dev
```

## CLI Tool

Create a command-line application with argument parsing.

**Template files:** See `assets/cli-tool/` directory.

### deno.json

```json
{
  "name": "my-cli",
  "version": "0.1.0",
  "exports": "./main.ts",
  "tasks": {
    "dev": "deno run --allow-all main.ts",
    "compile": "deno compile --allow-all -o my-cli main.ts"
  },
  "imports": {
    "@std/cli": "jsr:@std/cli@^1",
    "@std/fmt": "jsr:@std/fmt@^1"
  }
}
```

### main.ts

```typescript
import { parseArgs } from "@std/cli/pa

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
5147 chars