Pi-Bolt Docs

Reference

Benchmarks

Pi-Bolt against Pi as released, on stock Bun and on Node, on three machines. Medians of fresh processes, interleaved across the builds. Lower is better in every row.

How it is measured#

  • The same work for every build. Each build runs the same prompts against a local server that replays the same model responses, so there is no network or provider variance.
  • Pi as released. "Pi on Bun" and "Pi on Node" are Pi 1.1.0 built from its release tag, not Pi-Bolt's tree.
  • Interleaved. Builds take turns, so a change in the machine's state affects all of them alike.
  • CPU time is user plus system time of the process. Memory is the process's own memory: the pages it wrote, not file pages it shares with the system.

The benchmark scripts, the method in full and the raw data are in the repository: BENCHMARKS.md.

Linux#

AMD EPYC 7B13, pinned to four cores. Pi 1.1.0 as released.

BenchmarkPi-Bolt 0.8.5Pi on Bun 1.4.2Pi on Node 24
Writing a 200 KB file through a tool call0.6 s24.0 s32.5 s
CPU, streaming a 60,000-character answer2.6 s40.2 s38.7 s
Memory after a 4.2M-token session134 MB253 MB536 MB
Memory of a session in tmux22 MB84 MB185 MB
CPU, interactive session (5 prompts)193 ms746 ms1,093 ms
CPU, one prompt (-p)61 ms283 ms550 ms
Ready to type38 ms116 ms296 ms

macOS#

Apple M5 (MacBook Air). Pi 1.1.0 as released.

BenchmarkPi-Bolt 0.8.5Pi on Bun 1.4.2Pi on Node 26
Writing a 200 KB file through a tool call0.4 s22.6 s28.1 s
CPU, streaming a 60,000-character answer6.5 s37.9 s37.6 s
Memory after a 4.2M-token session38 MB92 MB1,581 MB
Memory of a session in tmux24 MB65 MB162 MB
CPU, interactive session (5 prompts)139 ms561 ms937 ms
CPU, one prompt (-p)49 ms221 ms512 ms
Ready to type41 ms100 ms348 ms

Windows#

Intel Core i5-1335U laptop. Pi 1.1.0 as released. Memory on Windows is the private working set.

BenchmarkPi-Bolt 0.8.5Pi on Bun 1.4.2Pi on Node 24
Writing a 200 KB file through a tool call0.5 s38.1 s26.6 s
CPU, streaming a 60,000-character answer6.9 s41.1 s32.6 s
Memory after a 4.2M-token session122 MB248 MB413 MB
Memory of a session in a terminal (ConPTY)32 MB97 MB60 MB
CPU, interactive session (5 prompts)278 ms805 ms1,125 ms
CPU, one prompt (-p)92 ms329 ms544 ms
Ready to type105 ms177 ms311 ms

Against PiG, oh-my-pi and OpenCode#

Pi-Bolt against two other fast Pi builds: PiG 0.4.1, a port of Pi to Go (based on Pi 1.0.3), and oh-my-pi 18.8.7, a fork of Pi with many more built-in features, on Bun; and OpenCode 2.0, in a run of its own next to Pi-Bolt on the same machines, with its own server in the same process tree (--standalone).

BenchmarkPi-Bolt 0.8.5PiG 0.4.1oh-my-pi 18.8.7OpenCode 2.0
Writing a 200 KB file through a tool call0.6 s77.5 s3.3 s2.4 s
CPU, streaming a 60,000-character answer2.6 s16.7 s2.2 s8.6 s
Memory after a 4.2M-token session134 MB349 MB–273 MB¹
Memory of a session in tmux22 MB48 MB334 MB–²
CPU, interactive session (5 prompts)193 ms2,458 ms2,800 ms8,593 ms
CPU, one prompt (-p)61 ms227 ms1,524 ms2,220 ms
Peak memory, one prompt (-p)123 MB55 MB505 MB346 MB
Ready to type38 ms31 ms890 ms1,687 ms
BenchmarkPi-Bolt 0.8.5PiG 0.4.1oh-my-pi 18.8.7OpenCode 2.0
Writing a 200 KB file through a tool call0.4 s56.8 s2.5 s1.7 s
CPU, streaming a 60,000-character answer6.5 s16.5 s5.1 s13.6 s
Memory after a 4.2M-token session38 MB330 MB–260 MB¹
Memory of a session in tmux24 MB55 MB330 MB–²
CPU, interactive session (5 prompts)139 ms2,367 ms2,374 ms6,493 ms
CPU, one prompt (-p)49 ms230 ms1,030 ms1,548 ms
Peak memory, one prompt (-p)70 MB50 MB419 MB379 MB
Ready to type41 ms39 ms612 ms1,489 ms

PiG starts a little sooner and its single-prompt process is smaller; oh-my-pi streams a long answer with a little less CPU. Pi-Bolt uses the least CPU in sessions and per prompt, the least memory over a session, and writes large files fastest. oh-my-pi compacts a long conversation on its own, so the long session does not compare it (–). ¹ OpenCode's process without its server process, so its memory is higher. ² OpenCode did not finish its answers in tmux.

Why a large file write takes so long on stock Pi#

Those 20 to 40 seconds are not the disk. A model writes a file by streaming the write tool call's arguments, the whole file, a few characters at a time, so a 200 KB file arrives in thousands of chunks. Stock Pi parses and redraws the whole tool call again for every chunk: each chunk costs more than the last, and the total grows with the square of the file's size. Pi-Bolt processes only the new part of each chunk.

In the benchmark the model streams as fast as it can, so the cost shows as wall time. With a real model, which streams more slowly, it shows as CPU: about 40 seconds of it for a 200 KB file on stock Pi.

Measurements, not guarantees Each table comes from one machine. On other hardware the times differ; what carries over is the comparison.