Explanation
Which workflows benefit
accrete helps when an agent runs the same pure CLI many times. The first call pays for a build. Every call after that is a function call.
Measured
Each workflow ran the real CLI with npx on a laptop (cache warm), then through the Pi extension client against accrete: once cold, then repeated. Every accrete output was compared with the npx output.
| Workflow | Laptop npx |
accrete, 1st call | accrete, repeat | Faster |
|---|---|---|---|---|
Compile SCSS on every savesass@1.80.6 |
582 ms | 5785 ms | 177 ms | 3× |
Minify a bundle before each committerser@5.36.0 |
488 ms | 4493 ms | 87 ms | 6× |
Format SQL migrationssql-formatter@15.4.5 |
515 ms | 4222 ms | 82 ms | 6× |
Convert YAML config to JSONjs-yaml@4.1.0 |
462 ms | 3702 ms | 69 ms | 7× |
Render Markdown docs to HTMLmarked@14.1.4 |
482 ms | 2854 ms | 26 ms | 19× |
Check versions against a rangesemver@7.6.3 |
476 ms | 3121 ms | 69 ms | 7× |
Output identical to npx on every call: yes. Container time across all repeat calls: 0.00 s. Times are p50.
Receipt: bench/workflows/latest.json · 10 repeats per workflow · darwin, Node v22.22.2 · accrete on local wrangler dev · digest 3a652668518c
How to read this
- Repeat vs laptop. A warm
npxcall still starts Node and loads the package: about half a second. A lifted tool is already loaded in an isolate. - First call. The first call to a tool and version is slower than
npx, because it builds the tool and checks it against the real CLI. It happens once per tool version, for every agent that shares your Worker. - Container time on repeat. It is 0.00 s on every row. No repeat call started a container.
- Where it ran. These numbers are from accrete on local
wrangler dev. A deployed Worker adds your network round trip and removes laptop CPU from the path.
Good fits
- Compile on every save:
sass,lessc,tsctype checks. - Format before every commit:
sql-formatter,js-yamlnormalization. - Minify or transform build output:
terser,marked,markdown-it,mustache. - Many agents, same tools: a team or a fleet shares one registry, so only the first agent anywhere pays the build.
- Agents that run in the cloud with no local Node at all.
Poor fits
- One-off commands. The first call costs more than
npx. - Tools that need the network, native binaries, or code generation at run time.
prettieris an example: it loads its CLI withnew Function, so accrete rejects it and it stays a container tool. - Tools that read files you do not send. accrete only sees
inputs.