rune init
Writes rune.config.ts in the current directory and reports the path it wrote on standard error.
It refuses to overwrite an existing file and exits 1 when one is there.
A fresh config
The comments are half the file: they name every field the version that wrote it accepts.
The generated file loads through the normal pipeline. rune list and rune run hello both work
immediately after init.
Seeding from package.json
Reads the nearest package.json and writes one command script per entry in its scripts field,
keeping the command strings exactly as they were.
Given:
The result, under a header that opens differently — it says the scripts came from package.json
one for one, and points at extends for the ones that repeat — and then carries the same field
guide:
Scripts are written sorted by name, and a name that is not an identifier is quoted. Descriptions
are left out, because package.json has nowhere to put one.
The translation is mechanical on purpose. Rune does not try to spot commands that repeat across
packages and fold them into extends chains: guessing which duplicates were intentional would
leave you auditing the result line by line. Rune puts everything in one file; the factoring
is yours.
Move the file to the repository root and delete the entries that belong to one package only. What remains is the shared set. Adopting Rune in a monorepo covers the rest.