Install

The two install channels for flawless-react, what each needs on the target machine, and which tasks each can run

Two channels

There are two ways to install flawless-react, both served from the LAN. They ship different things, so pick by whether the target machine has Bun and by which of the seven tasks you need.

What differsStandalone binarySource package
Needs Bun on the targetNoYes, Bun >= 1.1
Needs jq on the targetOnly for the load taskOnly for the load task
perf-harness, unit-browser, perf-staticWork anywhereWork anywhere
a11y, react-rulesNeed biome in the scanned project or on PATHWork with no further setup
Ships biomeNo — a compiled binary cannot carry itYes — @biomejs/biome is a real dependency

The CLI itself never shells out to jq. The one place it is needed is flawless/load/env.sh, the script the load task emits for you to source before a crust run — that is what reads the ids out of e2e/params.json. Without jq the script says so and exports nothing; every other task is unaffected.

Standalone binary

Nothing to install alongside it, and no Bun on the target machine.

curl -fsSL https://raw.githubusercontent.com/lariocpt/flawless-react/main/install.sh | bash

This is the right channel for a build agent, a container, or any box where you do not want a Bun toolchain. perf-harness, unit-browser and perf-static are fully self-contained in the binary; a11y and react-rules have the caveat described below.

Source package

Every task works with no further setup, because biome comes along as a real dependency.

bun add -g @lariocpt/flawless-react

You can also run it one-shot with no install at all, which is the usual way to try it against a single component:

bunx flawless-react ./src/Dashboard.tsx

Skills, at install time

The source package asks one question while it installs: whether to put the agent skills into the project you are installing into. It asks only in a terminal, never on CI, never for a global install, and the default is no. npm install can skip install scripts entirely, so the same offer is made at the end of an interactive flawless-react run, and flawless-react skills install is always there:

flawless-react skills list
flawless-react skills install --all

Set FLAWLESS_NO_SKILLS=1 and neither place ever asks.

Why the binary cannot carry biome

The binary is self-contained Bun, which means it has no node_modules tree at runtime — there is nowhere for a bundled biome to live. Five of the seven tasks do not care: perf-harness, unit-browser and perf-static are pure analysis and scaffolding, and they work anywhere.

The other two, a11y and react-rules, shell out to biome. They resolve it from the project you are scanning, first at node_modules/.bin/biome and then on PATH. Any React codebase that already lints with biome satisfies that for free, and you will never notice the limitation.

If the project you are scanning does not have biome, you have two fixes:

# in the project being scanned
bun add -d @biomejs/biome

or install the source package instead, where biome is a dependency of the tool itself.

Verify it worked

flawless-react --version
flawless-react --help

--version prints the installed version. --help lists every flag and the seven task ids — perf-harness, unit-browser, perf-static, a11y, react-rules, e2e, load — which are the exact strings --tasks accepts. If you went the one-shot route, prefix both with bunx.