<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Weave</title>
    <description>The latest articles on DEV Community by Weave (@weaveos).</description>
    <link>https://dev.to/weaveos</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4189778%2Fe66aadad-0efc-4886-ac9d-b1339412a9d6.png</url>
      <title>DEV Community: Weave</title>
      <link>https://dev.to/weaveos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/weaveos"/>
    <language>en</language>
    <item>
      <title>How to Preview a Weave Router Benchmark Run Before Launch</title>
      <dc:creator>Weave</dc:creator>
      <pubDate>Sat, 17 Oct 2026 04:11:49 +0000</pubDate>
      <link>https://dev.to/weaveos/how-to-preview-a-coding-benchmark-run-before-spending-on-model-calls-79k</link>
      <guid>https://dev.to/weaveos/how-to-preview-a-coding-benchmark-run-before-spending-on-model-calls-79k</guid>
      <description>&lt;p&gt;A benchmark launch can fan out across tasks, attempts, and model routes. Before spending model or sandbox time, inspect the exact plan.&lt;/p&gt;

&lt;p&gt;Weave Router's public &lt;code&gt;weave-bench&lt;/code&gt; CLI has a &lt;code&gt;--dry-run&lt;/code&gt; option for that step. It resolves the benchmark manifest, builds one Harbor command per comparison arm, prints the commands and version pins, then exits before launching any Harbor jobs. In this walkthrough, the plan selects one Terminal-Bench task and two arms. It produces no benchmark result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install the benchmark CLI
&lt;/h2&gt;

&lt;p&gt;The harness requires Python 3.12 or newer and &lt;code&gt;uv&lt;/code&gt;. This guide is pinned to Router commit &lt;a href="https://github.com/weave-os/router/tree/cbe758442460ca68db8f4fe9837db087c50cf1e5/bench" rel="noopener noreferrer"&gt;&lt;code&gt;cbe7584&lt;/code&gt;&lt;/a&gt;, so the source and manifest match the behavior described here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/weave-os/router.git
&lt;span class="nb"&gt;cd &lt;/span&gt;router
git checkout cbe758442460ca68db8f4fe9837db087c50cf1e5
&lt;span class="nb"&gt;cd &lt;/span&gt;bench
uv &lt;span class="nb"&gt;sync&lt;/span&gt; &lt;span class="nt"&gt;--locked&lt;/span&gt; &lt;span class="nt"&gt;--extra&lt;/span&gt; harbor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cloning the repository and syncing dependencies use the network. After that setup is complete, the planning command below builds and prints a local plan; it does not call the Router or model APIs or start Harbor jobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Print a one-task plan
&lt;/h2&gt;

&lt;p&gt;This command compares the Router's &lt;code&gt;router&lt;/code&gt; arm with a direct GPT-5.6 Luna control, using the benchmark's pinned smoke task:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv run &lt;span class="nt"&gt;--locked&lt;/span&gt; &lt;span class="nt"&gt;--extra&lt;/span&gt; harbor weave-bench run terminal-bench-4 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--arms&lt;/span&gt; router,luna &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--smoke&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Representative output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# terminal-bench-4 run_id=&amp;lt;generated-run-id&amp;gt;
# tasks=1 (manifest has 66); harbor=0.22.0 (published: 0.22.0) codex=0.150.0
...
--include-task-name terminal-bench/cad-model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The CLI generates the run ID. The important details are the selected task and the pinned versions, followed by the Harbor command for each arm.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the plan means
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One task, not 66:&lt;/strong&gt; &lt;code&gt;--smoke&lt;/code&gt; selects &lt;code&gt;terminal-bench/cad-model&lt;/code&gt; from the 66-task manifest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two arms, two Harbor jobs:&lt;/strong&gt; &lt;code&gt;router&lt;/code&gt; sends requests through Weave Router's &lt;code&gt;/beta&lt;/code&gt; policy; &lt;code&gt;luna&lt;/code&gt; calls GPT-5.6 Luna directly. This is not a same-model comparison because the Router policy chooses a model per request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Two attempts per arm:&lt;/strong&gt; the pinned configuration sets two attempts and up to 12 concurrent tasks per job. For this one-task example, a real run is configured for up to four task attempts in total. An attempt can make multiple model requests, so that number is not an API-call count or a cost estimate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No credentials in the plan:&lt;/strong&gt; dry-run output shows the names of environment variables a real job would use, not their secret values. Keep credentials in the environment; do not paste them into a report.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;--smoke&lt;/code&gt; only limits task selection. Remove &lt;code&gt;--dry-run&lt;/code&gt; and the CLI launches the Harbor jobs, which can make model calls and incur compute and provider costs. Review the generated commands, budget, credentials, and sandbox configuration before launching. Treat a plan as a plan, never as benchmark evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/weave-os/router/blob/cbe758442460ca68db8f4fe9837db087c50cf1e5/bench/weave_bench/cli.py#L116-L126" rel="noopener noreferrer"&gt;&lt;code&gt;cmd_run&lt;/code&gt; returns before job launch when &lt;code&gt;--dry-run&lt;/code&gt; is set&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/weave-os/router/blob/cbe758442460ca68db8f4fe9837db087c50cf1e5/bench/pyproject.toml#L1-L8" rel="noopener noreferrer"&gt;Benchmark package and Python version requirement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/weave-os/router/blob/cbe758442460ca68db8f4fe9837db087c50cf1e5/bench/weave_bench/benchmarks.py#L62-L74" rel="noopener noreferrer"&gt;Terminal-Bench task, attempt, concurrency, and version pins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/weave-os/router/blob/cbe758442460ca68db8f4fe9837db087c50cf1e5/bench/weave_bench/arms.py#L93-L101" rel="noopener noreferrer"&gt;Router and direct Luna arm definitions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://weaveos.com/router/benchmark-methodology" rel="noopener noreferrer"&gt;Weave Router benchmark methodology&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This walkthrough explains the public CLI at the cited commit. No benchmark was launched and no new performance or cost result is claimed.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ai</category>
      <category>testing</category>
      <category>python</category>
    </item>
  </channel>
</rss>
