К основному содержанию
скилл CX Codex

hono-typescript — скилл для Claude Code: API на Hono и TypeScript

Задаёт агенту правила разработки API на Hono и TypeScript под Cloudflare Workers, Deno, Bun и Node.js. Пригодится, когда проект уже на Hono или только переезжает на него.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill hono-typescript -a claude-code
Открыть на GitHub

Что делает hono-typescript

Скилл подкладывает агенту набор соглашений по коду: типизация переменных и функций, отказ от any, import type для типов, интерфейсы вместо типов для объектов, карты вместо enum. Именование тоже зафиксировано — PascalCase для типов, camelCase для функций, kebab-case для файлов, UPPERCASE для переменных окружения. Функции короткие, обработчики и middleware — стрелочные, по схеме «принимаем объект, возвращаем объект».

Отдельный блок про сам Hono: структура проекта с папками routes, middleware, services, типизированные Bindings и Variables при инициализации приложения, группировка маршрутов через app.route(). Валидация входа — через @hono/zod-validator со схемами Zod и выводом типов из них. Ошибки — HTTPException плюс глобальный app.onError. Есть примеры под Workers KV, D1, R2, тесты через testClient и Vitest, а также запуск на четырёх рантаймах.

Скилл ничего не устанавливает в проект и не тянет зависимости сам. Он описывает, как писать код, поэтому в новом репозитории без Hono и Zod пользы от него мало — сначала нужен сам стек. Зато в существующем проекте это повод проверить, насколько текущие маршруты и валидация совпадают с тем, что агент начнёт генерировать после подключения.

Какие задачи решает

  • задать агенту единый стиль типизации в проекте на Hono
  • описать структуру папок для маршрутов, middleware и сервисов
  • подключить валидацию запросов через Zod и вывести типы из схем
  • сделать общий обработчик ошибок через HTTPException
  • запустить одно приложение на Workers, Deno, Bun и Node.js

Примеры запросов агенту

  • добавь маршрут POST /api/users с валидацией через zValidator и схемой Zod
  • вынеси авторизацию в типизированный middleware и подключи его к /api/*
  • настрой глобальный onError, чтобы HTTPException возвращался как JSON с нужным статусом

Как установить hono-typescript

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill hono-typescript -a claude-code

2Вручную: положить файлы

~/.claude/skills/hono-typescript/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/hono-typescript/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о hono-typescript

Как установить hono-typescript в Claude?

Выполни npx skills add Mindrally/skills --skill hono-typescript -a claude-code. Файл скилла окажется по пути ~/.claude/skills/hono-typescript/SKILL.md.

Что делает hono-typescript?

Даёт агенту правила разработки API на Hono и TypeScript: типизация, именование, структура проекта, валидация через Zod, обработка ошибок и тесты.

На каких рантаймах работает код из этого скилла?

В правилах разобраны Cloudflare Workers, Deno, Bun и Node.js — для каждого показан свой способ запуска приложения.

Исходный текст

SKILL.md · Apache-2.0
---
name: hono-typescript
description: Guidelines for building edge-first, high-performance APIs with Hono and TypeScript for Cloudflare Workers, Deno, Bun, and Node.js
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Hono TypeScript Development

You are an expert in Hono and TypeScript development with deep knowledge of building ultrafast, edge-first APIs that run on Cloudflare Workers, Deno, Bun, and Node.js.

## TypeScript General Guidelines

### Basic Principles

- Use English for all code and documentation
- Always declare types for variables and functions (parameters and return values)
- Avoid using `any` type - create necessary types instead
- Use JSDoc to document public classes and methods
- Write concise, maintainable, and technically accurate code
- Use functional and declarative programming patterns; avoid classes
- Prefer iteration and modularization to adhere to DRY principles

### Nomenclature

- Use PascalCase for types and interfaces
- Use camelCase for variables, functions, and methods
- Use kebab-case for file and directory names
- Use UPPERCASE for environment variables
- Use descriptive variable names with auxiliary verbs: `isLoading`, `hasError`, `canDelete`
- Start each function with a verb

### Functions

- Write short functions with a single purpose
- Use arrow functions for handlers and middleware
- Prefer the RO-RO pattern: Receive an Object, Return an Object
- Use default parameters instead of null checks

### Types and Interfaces

- Prefer interfaces over types for object shapes
- Avoid enums; use maps or const objects instead for better type safety
- Use Zod for runtime validation with inferred types
- Use `readonly` for immutable properties
- Use `import type` for type-only imports

## Hono-Specific Guidelines

### Project Structure

```
src/
  routes/
    {resource}/
      index.ts
      handlers.ts
      validators.ts
  middleware/
    auth.ts
    cors.ts
    logger.ts
  services/
    {domain}Service.ts
  types/
    index.ts
  utils/
  config/
  index.ts
```

### App Initialization

```typescript
import { Hono } from 'hono';

// Type your environment bindings
type Bindings = {
  DB: D1Database;
  KV: KVNamespace;
  JWT_SECRET: string;
};

type Variables = {
  user: User;
};

const app = new Hono<{ Bindings: Bindings; Variables: Variables }>();
```

### Routing

- Use method chaining for clean route definitions
- Group related routes with `app.route()`
- Use route parameters with proper typing

```typescript
const users = new Hono<{ Bindings: Bindings }>();

users.get('/', listUsers);
users.get('/:id', getUser);
users.post('/', zValidator('json', createUserSchema), createUser);
users.put('/:id', zValidator('json', updateUserSchema), updateUser);
users.delete('/:id', deleteUser);

app.route('/api/users', users);
```

### Middleware

- Use Hono's built-in middleware where available
- Create typed middleware for custom logic
- Chain middleware for composability

```typescript
import { cors } from 'hono/cors';
import { logger } from 'hono/logger';
import { jwt } from 'hono/jwt';

app.use('*', logger());
app.use('/api/*', cors());
app.use('/api/*', jwt({ secret: 'your-secret' }));

// Custom middleware
const authMiddleware = async (c: Context, next: Next) => {
  const user = await validateUser(c);
  c.set('user', user);
  await next();
};
```

### Request Validation with Zod

- Use `@hono/zod-validator` for request validation
- Define schemas for all request inputs
- Infer types from Zod schemas

```typescript
import { z } from 'zod';
import { zValidator } from '@hono/zod-validator';

const createUserSchema = z.object({
  name: z.string().min(1),
  email: z.string().email(),
  role: z.enum(['user', 'admin']).default('user'),
});

type CreateUserInput = z.infer<typeof createUserSchema>;

app.post('/users', zValidator('json', createUserSchema), async (c) => {
  const data = c.req.valid('json');
  // data is typed as CreateUserInput
});
```

### Context and Response Handling

- Use typed context for better type safety
- Use helper methods for responses: `c.json()`, `c.text()`, `c.html()`
- Access environment bindings through context

```typescript
app.get('/users/:id', async (c) => {
  const id = c.req.param('id');
  const db = c.env.DB;

  const user = await db.prepare('SELECT * FROM users WHERE id = ?')
    .bind(id)
    .first();

  if (!user) {
    return c.json({ error: 'User not found' }, 404);
  }

  return c.json(user);
});
```

### Error Handling

- Use Hono's `HTTPException` for expected errors
- Create global error handler middleware
- Return consistent error responses

```typescript
import { HTTPException } from 'hono/http-exception';

// Throwing errors
if (!user) {
  throw new HTTPException(404, { message: 'User not found' });
}

// Global error handler
app.onError((err, c) => {
  if (err instanceof HTTPException) {
    return c.json({ error: err.message }, err.status);
  }
  console.error(err);
  return c.json({ error: 'Internal Server Error' }, 500);
});
```

### Cloudflare Workers Integration

- Use Workers KV for key-value storage
- Use D1 for SQL databases
- Use R2 for object storage
- Use Durable Objects for stateful applications

```typescript
// D1 Database
const result = await c.env.DB.prepare('SELECT * FROM users').all();

// KV Storage
await c.env.KV.put('key', 'value');
const value = await c.env.KV.get('key');

// R2 Storage
await c.env.BUCKET.put('file.txt', content);
```

### Testing

- Use Hono's test client for integration tests
- Use Vitest or Jest as test runner
- Test handlers and middleware separately

```typescript
import { testClient } from 'hono/testing';
import { describe, it, expect } from 'vitest';

describe('User API', () => {
  const client = testClient(app);

  it('should list users', async () => {
    const res = await client.api.users.$get();
    expect(res.status).toBe(200);
    const data = await res.json();
    expect(Array.isArray(data)).toBe(true);
  });
});
```

### Performance

- Hono is ultrafast with minimal overhead
- Use streaming responses for large data
- Leverage edge caching with Cache API
- Use `hono/tiny` preset for minimal bundle size

### Security

- Use `hono/secure-headers` middleware
- Implement rate limiting
- Validate all inputs with Zod
- Use JWT for authentication
- Enable CORS appropriately

### Multi-Runtime Support

Hono runs on multiple runtimes. Configure appropriately:

```typescript
// Cloudflare Workers
export default app;

// Node.js
import { serve } from '@hono/node-server';
serve(app);

// Bun
export default app;

// Deno
Deno.serve(app.fetch);
```

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Всё по теме «Бэкенд и API» →
hono-api-scaffolder jezweb Создаёт маршруты Hono для Cloudflare Workers с проверкой Zod, обработкой ошибок и документацией API. Нужен после подготовки каркаса проекта. CX Codex +1 1 600установок bun-hono-integration secondsky Скилл подсказывает агенту, как строить API на Hono под Bun: маршруты, middleware, валидация через Zod, RPC-клиент. Пригодится, когда проект уже крутится на Bun. CX Codex +1 452установок hono-core bobmatnyc Скилл по Hono: маршрутизация, контекст, обработчики и ответы для одного кода на Cloudflare Workers, Deno, Bun и Node.js. CX Codex +1 483установок hono-validation bobmatnyc Скилл для валидации запросов в Hono: JSON, формы, query-параметры, заголовки и cookie. Пригодится, когда нужны типы из схемы прямо в обработчике. CX Codex +1 408установок mastra-hono agent-skills Скилл для сборки ИИ-агентов, инструментов и воркфлоу на Mastra v1 Beta с API-серверами на Hono. Пригодится, когда пишете агентную логику на TypeScript. CX Codex +1 373установок cloudflare-workers-hono-angular-saas-cursorrules-prompt-file PatrickJS Правило для Cursor задаёт стек и соглашения для SaaS на Cloudflare Workers: Hono API, Angular, Drizzle, Clerk, Stripe. ★ 41 011звёзд репо

Из того же набора168

spring-boot Скилл задаёт агенту стиль кода на Spring Boot: REST-контроллеры, тесты, безопасность, сборка и деплой. Пригодится, когда проект на Java и хочется единообразия. CX Codex +1 832установок responsive-design Скилл задаёт агенту правила адаптивной вёрстки: mobile-first, гибкие сетки, медиазапросы, адаптивные картинки и типографика. CX Codex +1 830установок ghost Помогает агенту писать темы для Ghost CMS: Handlebars-шаблоны, partials, интеграция Tailwind CSS и Alpine.js, оптимизация картинок и SEO. CX Codex +1 828установок websocket-development Набор правил для агента, который пишет сервер и клиент на WebSocket: соединения, сообщения, масштабирование, безопасность. CX Codex +1 826установок web-development Скилл с правилами веб-разработки: сетка Bootstrap, вьюхи и модели Django, атрибуты HTMX. Пригодится, когда агент пишет шаблоны и бэкенд в одном проекте. CX Codex +1 815установок blazor Скилл задаёт агенту правила разработки на Blazor: жизненный цикл компонентов, привязка данных, управление состоянием и оптимизация рендеринга. CX Codex +1 798установок ionic Задаёт агенту правила разработки на Ionic: структура проекта, компоненты, стили, ленивая загрузка и работа с Firebase. CX Codex +1 797установок general-best-practices Скилл задаёт агенту свод правил по качеству кода, тестам, безопасности и архитектуре. Пригодится, когда нужно, чтобы ИИ писал код в одном стиле во всём проекте. CX Codex +1 794установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой