Core ConceptsCommon Workflows

Core Concepts

Common Workflows

The patterns you'll reach for daily. Most start the same way — run /init once so answers are grounded in your board — then describe what you want in plain language.

Start a new project

Run flash inside a firmware folder and it opens straight into the TUI. Outside one, the launcher lets you open a recent project or scaffold a new one — pick an MCU/board, a framework, and a build system (PlatformIO or a native ESP-IDF / Zephyr / Arduino / Pico toolchain). Then analyse it:

shell
/init            # index & analyse the project/init --verbose  # with counts, smells, coupling and violations

Hardware interaction

Watch the serial monitor

The DEBUG navbar panel is a multi-tab serial monitor: open several ports at once, each with its own baud rate and buffer, split two side by side, and read log-level-coloured output (it understands ESP-IDF and STM32 formats). Toggle it from the navbar or watch it fill while the agent works.

Firmware development

Write drivers

Describe the part and target; Flash grounds the code in your board model and datasheets:

shell
write an I2C driver for the temperature sensor on this boardwrite a UART driver for the GPS module at 9600 baud

Build & flash

Use the BUILD panel to install the toolchain, build, and flash — Flash resolves the right commands for your board — or just ask:

shell
build the projectbuild and flash, then show serial output

Work with HALs & SDKs

Ask vendor-specific configuration questions grounded in the SDK version you target:

shell
configure I2C on this STM32 using the HALset up a GPIO interrupt in ESP-IDFinitialize DMA for the ADC

Debug with serial output

Analyse errors

Paste a crash dump or point Flash at the serial log, and let the debug agent work the fix loop against the board — plan → fix → build → flash → verify:

shell
my SPI peripheral isn't responding  help me debugthe device panics on boot  find where it hangs

Trace execution

Add targeted logging and confirm the path on hardware. Give the agent a success marker (a line that should appear or stop) and it verifies on-target instead of guessing.

Plan mode

For anything touching several files, switch modes so Flash explores and proposes before it edits. /mode cycles normal, plan, teach and research:

shell
/mode plan     # explore & propose first/mode normal   # execute

Documentation & context

/init writes a FLASH.md at your project root that's injected into every session — the board summary, build commands, and conventions. Keep it tight; it's the highest-leverage context you have. Point Flash at specific files with @path when you want it to focus.

Bash mode

Prefix a line with ! to run a shell command and send its output to the chat — handy for git, toolchain, or quick checks:

shell
! git status! pio device list

Reference files

Use @to browse and inline-expand a file's contents into your prompt, so the agent reasons over exactly what you mean:

shell
explain @src/main.cwhy does @drivers/spi.c hang on init?

Session management

Steer the session as you go:

shell
/model            # switch the active model/model fast <m>   # pin a cheap auxiliary model/provider         # switch LLM provider/config set      # tweak configuration for this session

Quick reference

Do thisType
Analyse the project/init
Architecture report/architecture
Manage components/peripherals
Explore before editing/mode plan
Run a shell command! <cmd>
Reference a file@path
Switch model / provider/model · /provider
Tip
The full command list is in the Slash Commands Reference, and every binding in Keyboard Shortcuts.

What's next