Repository navigation
Pages load faster. A profile of real sites (catpaw fetch --js --profile, new) showed their time going to waiting for the network one
thing at a time, not to their scripts:
- The imports of a module load side by side, as a browser loads a module
graph; they were fetched one after another, each waiting its turn. An
import map's bare specifiers are started ahead too, and
<link rel="modulepreload">is honoured. - A frame's document loads off the page's thread, as a browser loads
one: the page's scripts, timers and other frames run meanwhile, and the
page waits for it as for a request of its own, under the settle
policy's rules (a frame on an ignored host never holds an action up, a
slow third party's for three seconds at most). The page used to fetch
each frame's document in turn before going on, a frame that did not
answer costing up to eight seconds a redirect hop. A frame that opens
now runs before its parent's clock moves on, so itsloadfires where
a browser's would, before the parent's later timers. - The external scripts a document names are fetched before the parser
reaches them, as a browser's preload scanner has them: a script the
parser waits for no longer holds up the ones after it. catpaw fetch --js --profiletells where a page's time went: the event
loop's steps by kind, scripts by source (compiling apart from running),
parsing, rendering, and the waits for the network.
On the sites measured, the time waiting for the network fell by a third
to a half (github.com 13 s to 6–8 s on a quiet network, techcrunch.com
35 s to 16–17 s, figma.com 19 s to 13 s, crates.io 6.5 s to 4.4 s).
Network latency sets the rest: on these sites the scripts themselves
took 0.3–3 s a page, with a few heavy ones (an obfuscated bot check that
runs for the whole 10 s script budget) as the exceptions.
Install
macOS (Apple silicon) and Linux (x86_64, aarch64):
curl -fsSL https://catpaw.sh/install.sh | sh
Windows (PowerShell):
irm https://catpaw.sh/install.ps1 | iex
The scripts download the archive for your system from this release and
check it against SHA256SUMS. Or download an archive below, check it
(sha256sum -c SHA256SUMS --ignore-missing), and put catpaw on your
PATH. Then connect it to your agent:
catpaw setup claude-code
Intel Macs and other systems: cargo install catpaw (Rust 1.91 or
later) builds it, see the README.