Route among your models.Learn from outcomes.

A task router for multi-model coding harnesses. You provide the candidate model pool, Hokusai recommends one, and reported outcomes improve the shared router.

What compounds when you integrate.

Steadily improving loop

Every outcome you report trains the shared model. The router you integrate today is the worst one you'll ever run. It gets sharper using results from every harness on the protocol, not just yours, and you didn't have to build it.

Route across your real model pool

Hokusai only routes among models you explicitly make available. Add the models your harness can actually run, report outcomes, and keep improving the layer that chooses between them.

Lower inference cost

The router picks the right model for each task instead of sending everything to the biggest one. You spend less on inference before a single token is counted.

A stake in what you improve

Outcome data that measurably improves the router mints HTASK to you — a position in its per-decision fee stream, held as ownership or redeemed for USDC anytime. Keep it as revenue, pass it through to your users, or split it.

Coding / Multi-Model Routing

Coding Task Router

Hokusai's first router corpus comes from real autonomous coding evals, not synthetic routing examples.

696

Deduplicated router-training records

209

Challenge-mode routing examples

85

Head-to-head model comparisons

88%

Migration, feature, and bugfix work

The data spans migrations, features, bug fixes, infra, tests, refactors, and docs across TypeScript, JavaScript, Python, Bash, and mixed-language repos. This provides a decent starting point for learning routing behavior while leaving clear room to expand coverage across more repositories, languages, and task families.

Integration

Install the shipped router.

Install @hokusai/router, pass the models your harness can actually run, execute the selected model yourself, then report coarse outcomes for learning.

npm install @hokusai/router
export HOKUSAI_API_KEY=hk_live_your_key_here
import { createRouter } from '@hokusai/router'

const models = {
  'claude-sonnet-4-6': { run: async (task) => ({ ok: true }) },
  'gpt-5': { run: async (task) => ({ ok: true }) },
}
const modelPool = Object.keys(models)

const router = createRouter({
  availableModels: modelPool,
})

const task = 'Refactor billing webhook retry handling.'
const decision = await router({
  task,
  context: { language: 'typescript', task_type: 'refactor' },
  availableModels: modelPool,
  objective: 'reliability',
  maxCostUsd: 1,
})

const result = await models[decision.model].run(task)
await router.reportOutcome({
  correlationId: decision.correlationId,
  model: decision.model,
  status: result.ok ? 'succeeded' : 'failed',
  latency: 'medium',
  cost: 'medium',
  tokens: 'medium',
})

Where does your routing data go today?

 Lab-owned auto-routingHokusai
Who pays for routing decisionsThe lab keeps it as gross marginIntegrators pay; fees back the contributor token.
Who captures the optimization signalThe labYou and the contributors
Who keeps the inference cost savingsThe lab keeps marginYou
What you build over timeNothing transferableA token position in the router
Portability across harnessesLocked inTake your position with you
AuditabilityOpaqueOn-chain attribution