TotallyHot / Arc Router

Tutorials

Six chapters, start to finish.

Each chapter walks one job end to end. Recordings are still in production, so every chapter below runs as an animated walkthrough instead — the same ground, in the same order.

01 Overview 6 min Recording in production

What Arc Router does

A tour of the routing problem: why a single frontier model for every coding task overspends on the easy ones and underperforms on the hard ones, and how Arc Router weighs five independent opinions before it picks a backend.

A routing decision, start to finish
  1. 1 Classify the task
  2. 2 Five voters, weighted
  3. 3 Argmax — or a controlled trial
  4. 4 Serve, and write the receipt
  5. 5 Grade it off the hot path
  6. 6 Scored vs the frozen baseline

Walk the full sequence on the Overview.

Illustration for What Arc Router does. The written documentation linked below covers the same ground.

Read: How it learns →

02 Bootstrap 9 min Recording in production

Build and first run

Cloning the repository, restoring the .NET solution, building the GUI, and getting to a first launch on Windows. Covers the prerequisites and the usual first-build snags end to end.

shell
$ dotnet restore TotallyHotArcRouter.slnx
Restored 24 projects in 41.2s
$ dotnet build TotallyHotArcRouter.slnx -c Release
TotallyHotArcRouter -> bin\Release\net10.0\
TotallyHotArcRouter.Gui -> bin\Release\net10.0-windows\
Build succeeded. 0 Warning(s)  0 Error(s)

Illustration for Build and first run. The written documentation linked below covers the same ground.

Read: Bootstrap guide →

03 Bootstrap 7 min Recording in production

Syncing the benchmark database

Running the benchmark sync three ways (Governance in the GUI, the sync_benchmark_data MCP tool, and the command line), then verifying the row counts that land in the local SQLite file.

TotallyHotArcRouter
$ TotallyHotArcRouter --sync-benchmark-data
benchmark_id_results ..... 9,999 rows
benchmark_ood_results .... 176 rows
benchmark_id_tasks ....... ok
benchmark_models ......... 8 models, USD pricing
verify ................... sha1 match

Illustration for Syncing the benchmark database. The written documentation linked below covers the same ground.

Read: CodeRouterBench SQLite migration plan →

04 Routing 11 min Recording in production

Connecting a client through the proxy

Pointing an existing coding agent at Arc Router through the system proxy, watching requests arrive in the console, and reading the three response headers that report what actually happened.

response
# POST /v1/chat/completions   { "model": "auto" }

X-ArcRouter-Requested-Model ...... auto
X-ArcRouter-Routed-Model ......... backend-3
X-ArcRouter-Substitution-Reason .. AutoSelect

Illustration for Connecting a client through the proxy. The written documentation linked below covers the same ground.

Read: System proxy architecture →

05 Operations 8 min Recording in production

Reading cost and token telemetry

The dashboard, cost analytics, and token accounting: where the numbers come from, how reported usage is reconciled per provider, and how to read a routing decision's full vote breakdown.

CandidateScores — the full vote breakdown
VoterPickWeight
dim_bestbackend-30.90
memory_kNNbackend-30.57
cluster_bestbackend-10.50
logregbackend-70.43
llm_routerabstained—
argmaxbackend-31.47

Every non-abstaining vote is logged per request, keyed by voter and model.

Illustration for Reading cost and token telemetry. The written documentation linked below covers the same ground.

Read: Agent cost tracking →

06 Routing 10 min Recording in production

Exposing the MCP endpoint

Turning on the MCP endpoint, registering the router's tools with an MCP client, and driving a benchmark sync and a routed completion without touching the GUI.

Governance → Providers
  • openai6 modelshealthy
  • anthropic4 modelshealthy
  • together9 modelsdegraded
  • local-ollama3 modelsstopped

Provider and model state is operator-controlled; a stopped model is never routed to.

Illustration for Exposing the MCP endpoint. The written documentation linked below covers the same ground.

Read: MCP endpoint →