4040</ script >
4141
4242< link rel ="stylesheet " href ="/assets/page.css " />
43+ < script src ="/assets/nav.js " defer > </ script >
44+ < script src ="/assets/terminal.js " defer > </ script >
4345</ head >
4446< body >
4547
5860 </ svg >
5961 < span > hfo</ span >
6062 </ a >
61- < input type ="checkbox " id ="nav-open " class ="nav-toggle-cb " aria-label ="Toggle navigation menu " />
62- < label for ="nav-open " class ="nav-toggle " aria-hidden ="true ">
63+ < button type ="button " class ="nav-toggle " id ="nav-toggle " aria-label ="Open navigation " aria-expanded ="false " aria-controls ="site-nav ">
6364 < svg aria-hidden ="true " viewBox ="0 0 24 24 " fill ="none " stroke ="currentColor " stroke-width ="2 " stroke-linecap ="round " stroke-linejoin ="round "> < path d ="M3 6h18 "/> < path d ="M3 12h18 "/> < path d ="M3 18h18 "/> </ svg >
64- </ label >
65- < nav class ="site-nav " aria-label ="Primary ">
65+ </ button >
66+ < nav class ="site-nav " id =" site-nav " aria-label ="Primary ">
6667 < a href ="/install/ "> Install</ a >
6768 < a href ="/cli/ "> CLI</ a >
6869 < a href ="/keyboard/ "> Keyboard</ a >
@@ -94,20 +95,13 @@ <h1>Benchmarks</h1>
9495 </ header >
9596
9697 < h2 > Run it</ h2 >
97- < div class ="terminal ">
98- < div class ="terminal-bar ">
99- < span class ="terminal-dot red " aria-hidden ="true "> </ span >
100- < span class ="terminal-dot yellow " aria-hidden ="true "> </ span >
101- < span class ="terminal-dot green " aria-hidden ="true "> </ span >
102- < span class ="terminal-title "> bash</ span >
103- < button type ="button " class ="terminal-copy " data-copy ="hfo --bench llama3.1:8b --out bench.json "> copy</ button >
104- </ div >
105- < pre > < code > < span class ="tok-comment "> # Quick run — prints per-prompt + aggregate tok/s and TTFT, nothing saved</ span >
98+ < hfo-terminal title ="bash " copy ="hfo --bench llama3.1:8b --out bench.json ">
99+ < span class ="tok-comment "> # Quick run — prints per-prompt + aggregate tok/s and TTFT, nothing saved</ span >
106100< span class ="tok-prompt "> $</ span > < span class ="tok-cmd "> hfo</ span > < span class ="tok-flag "> --bench</ span > llama3.1:8b
107101
108102< span class ="tok-comment "> # Full submission — writes a JSON file you can share</ span >
109- < span class ="tok-prompt "> $</ span > < span class ="tok-cmd "> hfo</ span > < span class ="tok-flag "> --bench</ span > llama3.1:8b < span class ="tok-flag "> --out</ span > < span class ="tok-path "> bench.json</ span > </ code > </ pre >
110- </ div >
103+ < span class ="tok-prompt "> $</ span > < span class ="tok-cmd "> hfo</ span > < span class ="tok-flag "> --bench</ span > llama3.1:8b < span class ="tok-flag "> --out</ span > < span class ="tok-path "> bench.json</ span >
104+ </ hfo-terminal >
111105
112106 < div class ="callout callout-info ">
113107 < p > < strong > Expected runtime</ strong > : 15–60 seconds on consumer GPU, 1–3 minutes on CPU-only. The warmup prompt is excluded from the aggregate so cold-start latency doesn't skew the numbers.</ p >
@@ -137,14 +131,8 @@ <h2>What the bench measures</h2>
137131 </ ul >
138132
139133 < h2 > Sample output</ h2 >
140- < div class ="terminal ">
141- < div class ="terminal-bar ">
142- < span class ="terminal-dot red " aria-hidden ="true "> </ span >
143- < span class ="terminal-dot yellow " aria-hidden ="true "> </ span >
144- < span class ="terminal-dot green " aria-hidden ="true "> </ span >
145- < span class ="terminal-title "> bash</ span >
146- </ div >
147- < pre > < code > ── Benchmarking qwen2.5-coder:7b-q5_k_m ────────────────────────────────────
134+ < hfo-terminal title ="bash ">
135+ ── Benchmarking qwen2.5-coder:7b-q5_k_m ────────────────────────────────────
148136Model qwen2.5-coder:7b-q5_k_m
149137GPU NVIDIA GeForce RTX 4090
150138VRAM 24 GB
@@ -160,20 +148,14 @@ <h2>Sample output</h2>
160148── Aggregate ───────────────────────────────────────────────────────────────
161149 80.1 tok/s avg
162150 120 ms TTFT avg
163- 460 total output tokens in 5.7 s</ code > </ pre >
164- </ div >
151+ 460 total output tokens in 5.7 s
152+ </ hfo-terminal >
165153
166154 < h2 > Submission format</ h2 >
167155 < p > When you pass < code > --out <file></ code > , hfo writes a JSON document that follows the < code > hfo-bench-v1</ code > schema:</ p >
168156
169- < div class ="terminal ">
170- < div class ="terminal-bar ">
171- < span class ="terminal-dot red " aria-hidden ="true "> </ span >
172- < span class ="terminal-dot yellow " aria-hidden ="true "> </ span >
173- < span class ="terminal-dot green " aria-hidden ="true "> </ span >
174- < span class ="terminal-title "> bench.json</ span >
175- </ div >
176- < pre > < code > {
157+ < hfo-terminal title ="bench.json ">
158+ {
177159 "tag": "qwen2.5-coder:7b-q5_k_m",
178160 "ollamaVersion": "0.21.3",
179161 "hfoVersion": "0.1.0",
@@ -205,8 +187,8 @@ <h2>Submission format</h2>
205187 },
206188 "submittedAt": "2026-04-23T20:14:32.114Z",
207189 "schema": "hfo-bench-v1"
208- }</ code > </ pre >
209- </ div >
190+ }
191+ </ hfo-terminal >
210192
211193 < h2 > Contribute a submission</ h2 >
212194 < p > The leaderboard is PR-based — no server, no telemetry, no account required. To contribute:</ p >
@@ -259,20 +241,5 @@ <h2>What the benchmarks don't tell you</h2>
259241 </ div >
260242</ footer >
261243
262- < script >
263- document . addEventListener ( 'click' , ( e ) => {
264- const btn = e . target . closest ( '.terminal-copy' ) ;
265- if ( ! btn ) return ;
266- const text = btn . getAttribute ( 'data-copy' ) ;
267- if ( ! text || ! navigator . clipboard ) return ;
268- navigator . clipboard . writeText ( text ) . then ( ( ) => {
269- const prev = btn . textContent ;
270- btn . textContent = 'copied' ;
271- btn . style . color = 'var(--success)' ;
272- setTimeout ( ( ) => { btn . textContent = prev ; btn . style . color = '' ; } , 1200 ) ;
273- } ) ;
274- } ) ;
275- </ script >
276-
277244</ body >
278245</ html >
0 commit comments