Skip to content
Docs
WebsiteRequest a demo

Getting started

Initialise your project

Run /init once per project: Flash analyses the firmware, tries a build, prepares connections and writes a guide into FLASH.md.

Run /init

Run it from the project root, the folder with your source and build configuration. It runs as a task in your conversation: you can follow its progress, and it asks before any action that needs approval.

In Flash
/init

What /init does

  • Analyses the code: structure, architecture and startup path.
  • Reads the hardware: the board design, target MCU, protocols and connections.
  • Tries a baseline build and records the result, or what blocks it.
  • Prepares connection profiles for serial, MQTT, Bluetooth LE and the debugger. Nothing connects yet.
  • Writes a project guide into FLASH.md, listing the sources it used.
Keep in mind
/init never edits your source, installs tools, programs the board or opens connections.

Review the result

Fix anything wrong before you rely on it: add missing parts with /peripherals, then run /init again.

  • Is the board, MCU and framework right?
  • Did the baseline build pass?
  • Are all fitted components listed?
  • Do the prepared connections match your setup?
  • What does the guide list as still open?

FLASH.md: your rules and Flash’s guide

FLASH.md has two parts. Flash writes its guide between two markers and only ever updates that section. Write your own rules outside it, and commit the file so your team shares it.

If you edit the generated section, /init keeps your change and asks you to resolve it rather than overwrite it.

FLASH.md
# Project instructions - Target: the exact board and revision.- Preserve the bootloader and existing pin assignments.- Ask before changing the flash partition layout. <!-- flash:init:start -->(Project guide written by /init. Flash updates this section.)<!-- flash:init:end -->

Run it again when things change

After significant changes to the source, build or hardware, run /init again. It updates the guide without duplicating it.

  • /init --analyze-only refreshes the code analysis only, without changing FLASH.md.
  • /init --force rebuilds the analysis from scratch.

Continue reading