::title::

Hono in this era

Yusuke Wada

Hono Conference 2026 ・ October 11, 2026


::center size=1.5 bg=white::

時代


::center::

Hono Conference 2025

2025/10/18


npmダウンロード数

-# api.npmjs.org

::right::

npm downloads


-# 2025年9月 → 2026年9月の月間ダウンロード


ちなみに⋯MCP SDK

-# 直近1ヶ月 → v1 2.58億、v2 server 3,130万


PR数

-# honojs/hono


::center::

明らかに新しい時代


::center::

何が変わった??


::center size=1.5 bg=white::

開発


::center::

10月5日

honojs/hono → PRを閉じる


::center::

x.com/yusukebe/status/2107027870019445007


何をしたか


背景


Slop??


「貢献」のための貢献


::center::

x.com/yusukebe/status/2106657806732677205


Hono-kun


閉じる


::center::

OSSは死んだ?


::center::

x.com/yusukebe/status/2108057552223359003


貢献の仕方


::center::

開発が変わった


::center size=1.5 bg=white::

ユーザー


::center::

人間がコードを書かなくなった

→ AIがコードを書く


::center::

「package.jsonの中を見なくなる」


::center::

「Honoのことを人間は忘れてしまう」


エージェントがHonoを使う


フロントエンドカンファレンス福岡 2026


Agent DX

::right::

agent-dx.hono.dev


::center::

x.com/yusukebe/status/2108928295127691453


Evals

::right::

Evalsの流れ


Claudeからも測れる

claude -p "TODOアプリをつくって。追加、編集、削除ができるように" \
  --model opus --output-format stream-json

::center size=1.5::

Adoption


::center::

AIはHonoを使うのか??


::wide::

Adoptionのやり方

Adoptionの流れ


::wide::

Adoption - claude-haiku-4-5

Adoption claude-haiku-4-5


::wide::

Adoption - claude-opus-5

Adoption claude-opus-5


Adoption


package.jsonにhono

-# claude-haiku-4-5・n=5・福岡のあとに追加で計測


::center size=1.5::

Value


::center::

Honoを使うことはAIにとって効果的か??


::wide::

Valueのやり方

Valueの流れ


::wide::

Value

Value results


Value


ユーザーがAIになった


::center size=1.5 bg=white::

DX


::center::

ユーザーが変わるなら、DXも変わる


Hono RPC

const app = new Hono().get('/posts/:id', (c) => {
  return c.json({ id: c.req.param('id') })
})

export type AppType = typeof app
const client = hc<AppType>('/')
const res = await client.posts[':id'].$get({ param: { id: '123' } })

::center::

型を頑張る、RPC → エディタの型補完 → 人間向けのDX


RPC関係のIssue

-# honojs/hono・タイトルに RPC / hc / hono/client を含むissue


AIにとっての型


他に人間のためのDX


開発サーバー


::center size=1.5::

Practical


Practicalのひとつ


開発サーバーを立ち上げる


AI向けのDXを考えなくてはいけない


::center size=1.5 bg=white::

設計


::center::

フレームワークのAPI設計はどうすればいいか?


::center::

x.com/yusukebe/status/2106722774089974199


✗ 万能なAPI


✗ 低レベルなAPI


○ 良いAI向けAPI


::center::

x.com/yusukebe/status/2106788928896614752


悪いコードではない


AI向けに設計をする


::center::

Hono


::center size=4 bg=white::

v5


v5 RC

-# npm i hono@next etc.


パッケージサイズ

::right::

-# hono 4.13.13 vs 5.0.0-rc.1(npm)


アダプタを分離

// v4
import { serveStatic } from 'hono/bun'

// v5
import { serveStatic } from '@hono/bun'

onError() / notFound() → ミドルウェアに

// v4
app.onError((err, c) => c.text('Error', 500))

// v5
app.onError((c) => c.text('Error', 500)) // c.error

パスで絞れる・重ねられる

app.onError('/items/*', (c) => c.text('Items Error', 500))

app.onError(async (c, next) => {
  console.error(c.error)
  await next()
})
app.onError((c) => c.text('Error', 500))

サブアプリのnotFound()が効く

const api = new Hono()
api.notFound((c) => c.json({ error: 'Not Found' }, 404))

app.route('/api', api)
app.notFound((c) => c.text('Page not found', 404))

その他の変更


defineHandler()

バリデーションを迷わず書ける

import { defineHandler } from 'hono/factory'

app.post(
  '/users/:id',
  defineHandler({
    param: ParamSchema,
    json: BodySchema,
    response: UserSchema
  })(async (c, { param, json }) => {
    c.status(201)
    return { id: param.id, ...json }
  })
)

defineHandler()


Hono CLI 1.0 RC


hono request

hono request /posts/1
{
  "ok": true,
  "data": {
    "status": 200,
    "headers": { "content-type": "application/json" },
    "body": { "id": "1", "title": "Hello" }
  }
}

hono batch

hono batch - <<'EOF'
{"method":"POST","path":"/posts","body":{"title":"Hono"},"expect":{"status":201}}
{"path":"/posts/1","expect":{"status":200,"body":{"id":"1"}}}
EOF

他のコマンド


Hono CLIを使うと⋯

-# Agent DX・build-endpoints-workers・CLI + Skills


::wide::

Sonnet 5

build-endpoints-workers / Sonnet 5


賢いモデルは開発サーバーを使いこなす

(npx cf dev --port 8799 &) ; ./check.sh ; pkill -f "cf dev --port 8799"

「カウンターをつくって」→「パスワードつけて」

-# Opus・1回ずつ


CLIを使う理由


Starter

## Hono CLI

Run `npx hono --help` first, and use the CLI instead of a dev server.

Hono Skills

npx skills add honojs/skills

hono.dev/docs/agents


::center size=1.5::

Demo


まとめ


::center size=1.5::

ありがとうございました


::center bg=white::

One more thing


::center::

Honoをopinionatedなフルスタックにする


// Hono v5
import { defineHandler } from 'hono/factory'

app.post(
  '/posts',
  defineHandler({ json: PostSchema })(async (c, { json }) => {
    return { received: true }
  })
)

::right::

// Void
import { defineHandler } from 'void'

export const POST = defineHandler(async (c) => {
  return { received: true }
})

::center::

???


::center::

Void


::center::

Void by VoidZero

-# void.cloud


::center size=2 bg=white::

Hono v5


::center size=1.5::

npm create hono@next

-# hono.dev/docs/guides/migrating-to-v5

← → / space ・ o: overview ・ f: fullscreen