Setup · Dry-run first

Set up Paniolo around
the repositories you
already have.

Start a new harness, adopt this repo, or connect it to one you keep elsewhere. A short guided interview asks what it needs — every answer is also a flag, so anything interactive replays as one command. Run a dry run first; nothing changes until you apply.

Runs locally. --dry-run changes nothing.
npx @paniolo/cli init --dry-run
Choose a situation

New, adopt,
or connect.

01

New harness

Stamp a harness beside your work — the default layout places it under harness/. --mode new skips the placement question; --name and --out answer the rest.

02

Adopt this repo

Adapt Paniolo to guidance that is already there — retrieval hooks and MCP registration are added to your existing files, marked, and removable. --no-retrieval keeps only the safety hooks.

03

Connect

Wire this repository to a harness you keep elsewhere with --mode connect --connect-to ../harness — the relationship is named once in paniolo.config.json.

No flags also works: init detects what it can — existing harness, sibling candidates, config — and asks the placement question it can't answer. It prints the underlying evolve harness command before it runs it, so a guided run teaches the commands it wraps.

What stays yours

Keep what
works.

Paniolo adds marked sections to your instruction files instead of replacing them, and one paniolo.config.json names each repository once — a config you can read.

Give your agents a knowledge base

--wiki stamps an agentic knowledge base beside the harness, already wired so supported agents read it on every prompt. --no-wiki skips it — add one later with paniolo wiki init.

Interview once, replay anywhere

The interview ships today: --print-answers emits the resolved intent as versioned JSON, and --answers answers.json replays it non-interactively — the same setup in CI that you walked through locally.

Every question has a flag

No prompt-only answers: --mode, --name, --out, --wiki/--no-wiki, --repo name=path:kind, --tool, --yes. Without a terminal, a missing answer is an error naming the flag — never a guess.

Objections

If you're
hesitating.

We already wrote instructions.
Init adds marked sections to the files you have and leaves the rest alone. Adoption is designed to be removable — your content stays yours.
We already keep docs somewhere.
Docs describe the code. The knowledge base holds what the code can't — why decisions were made, what you rejected, what you learned — where agents read it automatically on each prompt.
We do not want a knowledge base yet.
Skip it with --no-wiki and add it later with paniolo wiki init.
We already have a config.
paniolo evolve config migrate previews the upgrade before writing — and evolve config effective shows what every repo inherits.

Preview first.
Then apply.