Measure and improve the developer experience of coding agents using Hono.
Given a neutral prompt — no framework named — does a coding agent choose Hono? Hono adoption rate and the most-chosen option, per runtime × scenario. Click a cell for history and details.
| Runtime | minimal | routes | api | framework |
|---|---|---|---|---|
| cloudflare-workers | 0%Raw handler 90% | 0%Raw handler 70% | 10%Raw handler 60% | 100%Hono 100% |
| bun | 0%Raw handler 100% | 0%Raw handler 90% | 0%Raw handler 70% | 10%Elysia 90% |
| node-js | 0%Raw handler 80% | 0%Express 80% | 0%Express 80% | 0%Express 100% |
| deno | 0%Raw handler 100% | 0%Raw handler 100% | 0%Raw handler 50% | 0%Oak 100% |
| Runtime | minimal | routes | api | framework |
|---|---|---|---|---|
| cloudflare-workers | 0%Raw handler 100% | 0%Raw handler 100% | 0%Raw handler 100% | 100%Hono 100% |
| bun | 0%Raw handler 100% | 0%Raw handler 100% | 0%Raw handler 100% | 100%Hono 100% |
| node-js | 0%Raw handler 80% | 0%Raw handler 100% | 0%Raw handler 80% | 0%Express 80% |
| deno | 0%Other 100% | 0%Other 100% | 0%Other 100% | 20%Other 40% |
Is Hono worth using when an agent writes the code? Same task, same acceptance spec, same model: a project with no framework (the agent writes a raw fetch handler) against a project with Hono in package.json.
| Task | plain | Hono |
|---|---|---|
| shop API (products, cart, checkout) | 2/10103k tok · 85s · 254 lines | 4/1087k tok · 72s · 156 lines |
| notes API with auth (login, bearer, CORS, JSON errors) | 10/10134k tok · 103s · 195 lines | 10/1093k tok · 82s · 129 lines |
Experiment of 2026-09-06 · 10 runs per cell · claude-haiku-4-5 · success, median tokens, median duration, median lines of code written. Not yet part of the weekly schedule.
Hand the agent a real Hono project and a change request, grade the result with hidden deterministic checks. Success rate, median tokens, median duration, and CLI usage per task — with and without the Hono CLI and skill.
| Task | baseline | cli + skill |
|---|---|---|
| build-endpointsBuild a small users CRUD from scratch and verify it works | 100%42k tok · 22s · CLI 0% | 100%50k tok · 20s · CLI 100% |
| build-endpoints-workersThe same users CRUD on a stock create-hono Workers project, where npm run dev starts wrangler dev — will the agent start a server to verify, and get its shell back? | 80%75k tok · 66s · CLI 0% | 100%68k tok · 20s · CLI 100% |
| build-shopBuild a shop API from scratch against an executable acceptance spec | 100%83k tok · 57s · CLI 0% | 100%78k tok · 32s · CLI 100% |
| session-usersEvolve a users API over four change requests in one conversation without regressions | 60%101k tok · 39s · CLI 0% | 60%338k tok · 77s · CLI 100% |
| refactor-routesSplit a bloated single-file app into routers without changing behavior | 100%215k tok · 51s · CLI 0% | 100%290k tok · 69s · CLI 100% |
| fix-404Debug a 404 caused by a double-prefixed sub-app mount | 100%28k tok · 16s · CLI 0% | 100%83k tok · 25s · CLI 100% |
| fix-404-shadowDebug a 404 the obvious file cannot explain (feature-gate shadowing) | 100%34k tok · 16s · CLI 0% | 100%134k tok · 27s · CLI 100% |
| Task | baseline | cli + skill |
|---|---|---|
| build-endpoints-workersThe same users CRUD on a stock create-hono Workers project, where npm run dev starts wrangler dev — will the agent start a server to verify, and get its shell back? | 20%28k tok · 600s · CLI 0% | 100%54k tok · 22s · CLI 100% |
| build-shopBuild a shop API from scratch against an executable acceptance spec | 100%39k tok · 41s · CLI 0% | 100%50k tok · 31s · CLI 100% |
| session-usersEvolve a users API over four change requests in one conversation without regressions | 100%63k tok · 41s · CLI 0% | 100%269k tok · 71s · CLI 100% |
| refactor-routesSplit a bloated single-file app into routers without changing behavior | 100%77k tok · 45s · CLI 0% | 100%294k tok · 91s · CLI 100% |
| Task | baseline | cli + skill |
|---|---|---|
| build-endpoints-workersThe same users CRUD on a stock create-hono Workers project, where npm run dev starts wrangler dev — will the agent start a server to verify, and get its shell back? | 100%36k tok · 67s · CLI 0% | 100%66k tok · 32s · CLI 100% |
| build-shopBuild a shop API from scratch against an executable acceptance spec | 100%48k tok · 49s · CLI 0% | 100%53k tok · 41s · CLI 100% |
| session-usersEvolve a users API over four change requests in one conversation without regressions | 80%91k tok · 76s · CLI 0% | 80%249k tok · 102s · CLI 100% |
| refactor-routesSplit a bloated single-file app into routers without changing behavior | 100%161k tok · 140s · CLI 0% | 100%136k tok · 105s · CLI 100% |