hono

$npx mdskill add EpicenterHQ/epicenter/hono

Provides Hono framework patterns for TypeScript API development and Cloudflare Workers deployment

  • Solves problems with Hono route typing, middleware, and Cloudflare integration
  • Leverages Hono and Cloudflare Workers APIs for edge runtime capabilities
  • Uses DeepWiki for precise Hono and Cloudflare runtime behavior validation
  • Delivers structured TypeScript patterns for streaming, WebSockets, and deployment

SKILL.md

.github/skills/honoView on GitHub ↗
---
name: hono
description: Hono patterns for TypeScript API routes, middleware, request and response typing, streaming, WebSockets, and Cloudflare Workers deployment. Use when users mention Hono, honojs, Cloudflare Worker handlers, Hono middleware, or Hono route typing.
metadata:
  author: epicenter
  version: '1.0'
---

# Hono

## Reference Repositories

- [Hono](https://github.com/honojs/hono) - TypeScript web framework for edge runtimes and Cloudflare Workers
- [Cloudflare Docs](https://github.com/cloudflare/cloudflare-docs) - Workers, Durable Objects, WebSockets, KV, R2, and deployment docs

## Upstream Grounding

When Hono route typing, middleware order, context variables, response helpers, streaming, WebSockets, or Cloudflare Worker runtime behavior affects correctness, ask DeepWiki a narrow question against `honojs/hono` or `cloudflare/cloudflare-docs` before relying on memory. Use it to orient, then verify decisive details against local installed types, source, or official docs before changing code.

Skip DeepWiki for stable HTTP basics and repo-local API conventions already visible in the code.

## When to Apply This Skill

Use this pattern when you need to:

- Write or refactor Hono route handlers and middleware.
- Type request params, query values, context variables, or response bodies.
- Adapt Hono handlers to Cloudflare Workers runtime constraints.
- Debug streaming, WebSockets, CORS, auth middleware, or per-route bindings.

## Middleware And Context

- Middleware is onion-style and order-sensitive. Resource setup belongs before auth; auth belongs before protected routes.
- Use `createFactory<Env>()` and `Env['Variables']` to type `c.var` and `c.set()`.
- Middleware that continues must `await next()`. Middleware that rejects or redirects should return the response and skip `next()`.
- Handlers should return Hono response helpers such as `c.json()`, `c.text()`, `c.html()`, or a `Response`.
- On Cloudflare Workers, read bindings from `c.env` and request lifecycle APIs from `c.executionCtx`.
- Register CORS before auth routes when cookie auth or credentialed cross-origin frontend calls are involved.
- Test route behavior with `app.request()` or `testClient` plus mocked bindings and execution context before reaching for a network server.
- Keep WebSocket upgrade detection explicit whenever generic middleware might mutate response headers.

More from EpicenterHQ/epicenter

SkillDescription
agent-goalWrite `/goal` prompts for long-running agent work in Codex or Claude Code. Use for slash goal, agent goal, durable objective, autonomous coding run.
approachability-auditReview code as a new TypeScript developer. Use when code feels indirect, clever, hard to follow, or needs a pass on abstractions, names, first-read clarity.
arktypeArktype: runtime validation, discriminated unions with .merge()/.or(), spread keys. Use when mentioning arktype, type(), union types, command/event schemas.
attach-primitiveContract and invariants for `attach*` composition primitives in `packages/workspace` (side-effectful building blocks like attachIndexedDb, attachSqlite, attachBroadcastChannel, attachEncryption, attachTable, openCollaboration), and when to use `create*` (pure construction) instead. Use when writing or reviewing an `attach*` or `create*` function, naming a new workspace primitive, composing inside a workspace builder, or deciding whether a primitive registers listeners at call time.
authEpicenter auth packages: `@epicenter/auth`, `@epicenter/auth-svelte`, OAuth sessions, identity state, auth-owned fetch/WebSocket, and workspace lifecycle binding. Use when editing Epicenter auth clients, session state, hosted sign-in, or auth/workspace integration.
autumnAutumn billing in Epicenter: `autumn.config.ts`, `autumn-js` credit checks, `atmn` CLI, plan gates, and metered AI usage. Use when changing billing, pricing, credits, plan access, refunds, or usage events.
better-auth-best-practicesBetter Auth server/client setup: `auth.ts`, generated schema, DB adapters, sessions, cookies, env vars, and plugins. Use when mentioning Better Auth, betterauth, auth handlers, OAuth, email/password, or session configuration.
better-auth-security-best-practicesBetter Auth security hardening: rate limits, secrets, CSRF, trusted origins, cookies, sessions, OAuth tokens, and audit logging. Use when reviewing auth security, brute-force protection, token handling, or deployment safety.
change-proposalPresent proposed code changes visually before implementing. Use when: "show me options", "compare approaches", "what should we do", or when changes need before/after comparison.
claude-code-consultUse this skill when the user asks to consult Claude, ask Claude Code, get another model's take, run a taste check, find cleaner options, or prepare a Claude prompt. Create a bounded second-opinion prompt or run a read-only Claude Code consult, then verify Claude's claims against local files.