id = "arduino-cli" name = "Arduino CLI" homepage = "https://arduino.github.io/arduino-cli/latest/" description = "An all-in-one solution that provides Boards/Library Managers, sketch builder, board detection and uploader." icon = "SimpleIcons:arduino" executables = ["arduino-cli"] [dotfiles] # https://docs.arduino.cc/arduino-cli/configuration/ — the file is called # arduino-cli.yaml and the default data directory is {HOME}/Library/Arduino15 # on macOS, {HOME}/.arduino15 on Linux and {HOME}/AppData/Local/Arduino15 on # Windows. paths = [ "~/Library/Arduino15/arduino-cli.yaml", "~/.arduino15/arduino-cli.yaml", "%LOCALAPPDATA%/Arduino15/arduino-cli.yaml", ] # Downloaded core/library indexes, staged archives and the installed # platforms: hundreds of megabytes of toolchain, re-fetchable at will. exclude = [ "~/Library/Arduino15/packages/", "~/Library/Arduino15/staging/", "~/.arduino15/packages/", "~/.arduino15/staging/", "%LOCALAPPDATA%/Arduino15/packages/", "%LOCALAPPDATA%/Arduino15/staging/", ] secret = [] # Read on every command; the CLI holds no resident state. side_effect = false # directories.* are absolute paths into this machine's filesystem — the data # directory, the download staging area, and the sketchbook. The board manager # URLs above them are a preference and stay. All three are written out with # this user's home directory expanded, so they are one machine's; the # sketchbook in particular is where the user's own sketches sit, which makes # the set worth keeping for a rebuild: backup. [[dotfiles.machine_lines]] file = [ "~/Library/Arduino15/arduino-cli.yaml", "~/.arduino15/arduino-cli.yaml", "%LOCALAPPDATA%/Arduino15/arduino-cli.yaml", ] match = { key_path = ["directories.data", "directories.downloads", "directories.user"] } scope = "backup" [commands] format = 1 label = "Arduino CLI" description = "Compile and upload sketches and manage boards, cores and libraries. Daemon, debug and config commands are left out." quality = "ai-draft" base = "fig:arduino-cli" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/arduino-cli.ts" license = "MIT" [[commands.field]] id = "format" label = "Output format" type = "string" option = ["--format"] suggestions = [{ value = "text", label = "text" }, { value = "json", label = "json" }, { value = "jsonmini", label = "jsonmini" }, { value = "yaml", label = "yaml" }] sources = ["fig"] [[commands.field]] id = "no_color" label = "No color" type = "boolean" option = ["--no-color"] sources = ["fig"] [[commands.field]] id = "config_file" label = "Config file" type = "path" option = ["--config-file"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.group]] id = "basic" label = "Basic" fields = ["format"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["no_color", "config_file"] [[commands.subcommand]] path = ["compile"] label = "Compile a sketch" description = "Compile a sketch for a board." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/arduino-cli.ts" license = "MIT" [[commands.subcommand.field]] id = "sketch" label = "Sketch folder" type = "path" position = 0 path = { kind = "directory", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "fqbn" label = "Board (FQBN)" description = "Example: arduino:avr:uno." type = "string" option = ["--fqbn", "-b"] sources = ["fig"] [[commands.subcommand.field]] id = "upload" label = "Upload after compiling" type = "boolean" option = ["--upload", "-u"] sources = ["fig"] [[commands.subcommand.field]] id = "port" label = "Port" description = "Example: /dev/ttyACM0 or COM3." type = "string" option = ["--port", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "verify" label = "Verify after upload" type = "boolean" option = ["--verify", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "clean" label = "Clean build, no cache" type = "boolean" option = ["--clean"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["fig"] [[commands.subcommand.field]] id = "warnings" label = "Warning level" type = "string" option = ["--warnings"] suggestions = [{ value = "none", label = "none" }, { value = "default", label = "default" }, { value = "more", label = "more" }, { value = "all", label = "all" }] sources = ["fig"] [[commands.subcommand.field]] id = "build_path" label = "Build path" type = "path" option = ["--build-path"] path = { kind = "directory", role = "output", must_exist = false } sources = ["fig"] [[commands.subcommand.field]] id = "output_dir" label = "Output directory" type = "path" option = ["--output-dir"] path = { kind = "directory", role = "output", must_exist = false } sources = ["fig"] [[commands.subcommand.field]] id = "library" label = "Library folders" type = "path" option = ["--library"] multiple = true path = { kind = "directory", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "optimize_for_debug" label = "Optimize for debugging" type = "boolean" option = ["--optimize-for-debug"] sources = ["fig"] [[commands.subcommand.task]] id = "compile" label = "Compile" fields = ["sketch", "fqbn", "warnings", "verbose"] required = ["fqbn"] [[commands.subcommand.task]] id = "compile-upload" label = "Compile and upload" set = { upload = [true] } lock = ["upload"] fields = ["sketch", "fqbn", "port", "upload", "verify"] required = ["fqbn", "port"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["sketch", "fqbn", "upload", "port", "verify"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["clean", "verbose", "warnings", "build_path", "output_dir", "library", "optimize_for_debug"] [[commands.subcommand]] path = ["upload"] label = "Upload a sketch" description = "Upload a compiled sketch. This does not compile first." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/arduino-cli.ts" license = "MIT" [[commands.subcommand.field]] id = "sketch" label = "Sketch folder" type = "path" position = 0 path = { kind = "directory", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "fqbn" label = "Board (FQBN)" description = "Example: arduino:avr:uno." type = "string" option = ["--fqbn", "-b"] sources = ["fig"] [[commands.subcommand.field]] id = "port" label = "Port" description = "Example: /dev/ttyACM0 or COM3." type = "string" option = ["--port", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "verify" label = "Verify after upload" type = "boolean" option = ["--verify", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "input_file" label = "Binary file" type = "path" option = ["--input-file", "-i"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["fig"] [[commands.subcommand.task]] id = "upload" label = "Upload" fields = ["sketch", "fqbn", "port", "verify"] required = ["fqbn", "port"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["sketch", "fqbn", "port", "verify"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["input_file", "verbose"] [[commands.subcommand]] path = ["board", "list"] label = "List connected boards" description = "Detect boards connected to this computer." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/arduino-cli.ts" license = "MIT" [[commands.subcommand.field]] id = "watch" label = "Keep running and print changes" type = "boolean" option = ["--watch", "-w"] sources = ["fig"] [[commands.subcommand.task]] id = "list" label = "List boards" fields = [] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["watch"] [[commands.subcommand]] path = ["core", "install"] label = "Install a core" description = "Install board platforms, for example arduino:avr." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/arduino-cli.ts" license = "MIT" [[commands.subcommand.field]] id = "cores" label = "Cores" type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "no_overwrite" label = "Do not overwrite installed" type = "boolean" option = ["--no-overwrite"] sources = ["fig"] [[commands.subcommand.task]] id = "install" label = "Install cores" fields = ["cores"] required = ["cores"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["cores", "no_overwrite"] [[commands.subcommand]] path = ["lib", "install"] label = "Install a library" description = "Install libraries by name, from a Git URL or from a zip file." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/arduino-cli.ts" license = "MIT" [[commands.subcommand.field]] id = "libs" label = "Libraries" description = "Name, optionally with @version." type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "no_deps" label = "Skip dependencies" type = "boolean" option = ["--no-deps"] sources = ["fig"] [[commands.subcommand.task]] id = "install" label = "Install libraries" fields = ["libs", "no_deps"] required = ["libs"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["libs", "no_deps"]