tofupilot init
Last updated on November 10, 2026
The init command creates a procedure project that validates and runs as is: a procedure.yaml with a simulated power supply plug, setup, main and teardown phases, a measurement with limits, a pyproject.toml, and the agent files tofupilot agents-md writes. No account is needed.
tofupilot init board-test
cd board-test
tofupilot validate && tofupilot runboard-test/
├── procedure.yaml # name from the folder: "Board Test"
├── phases/power.py # power_on, check_output_voltage, power_off
├── plugs/mock_power_supply.py # the simulator the YAML points at
├── pyproject.toml
├── .gitignore
├── AGENTS.md # managed block for coding agents
├── CLAUDE.md # @AGENTS.md
└── .tofupilot/
├── procedure.schema.json # JSON Schema of procedure.yaml
└── stubs/tofupilot_phase.pyi # types of the injected phase parametersThe plug is a simulator, so the first run passes without hardware. Point its python: at your real driver once the bench is wired, and keep the simulator for offline runs with tofupilot run --plug. procedure.yaml starts with a yaml-language-server comment that points editors at the schema, and pyproject.toml points Pyright and mypy at the stubs.
[DIR]
The directory to create the project in, created when missing. Defaults to the current directory. A directory that holds anything but a .git is refused (exit code 2) unless --force.
--name <NAME>
The procedure's name. Defaults to the directory name in title case (board-test → Board Test).
tofupilot init board-test --name "Board Functional Test"--force
Adds the starter files to a directory that is not empty. An existing file is never overwritten: it is kept and listed as skipped. AGENTS.md and CLAUDE.md are updated as agents-md does.
--json
Prints one object with path and the created, updated and skipped files, relative to the project.
How is this guide?