Protocol Documentation 
Table of Contents 
Top 
cc/arduino/cli/commands/v1/common.proto 
Board 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Name used to identify the board to humans. 
 
fqbn 
string  
 
Fully qualified board name used to identify the board to machines. The FQBN is only available for installed boards. 
 
 
DownloadProgress 
DownloadProgressEnd 
Field 
Type 
Label 
Description 
 
 
success 
bool  
 
True if the download is successful. 
 
message 
string  
 
Info or error message, depending on the value of 'success'. Some examples: "File xxx already downloaded" or "Connection timeout". 
 
 
DownloadProgressStart 
Field 
Type 
Label 
Description 
 
 
url 
string  
 
URL of the download. 
 
label 
string  
 
The label to display on the progress bar. 
 
 
DownloadProgressUpdate 
Field 
Type 
Label 
Description 
 
 
downloaded 
int64  
 
Size of the downloaded portion of the file. 
 
total_size 
int64  
 
Total size of the file being downloaded. 
 
 
HelpResources 
Field 
Type 
Label 
Description 
 
 
online 
string  
 
A URL provided by the author of the platform's package, intended to point to their online help service. 
 
 
Field 
Type 
Label 
Description 
 
 
id 
string  
 
Platform ID (e.g., arduino:avr). 
 
version 
string  
 
Version of the platform. 
 
install_dir 
string  
 
Installation directory of the platform. 
 
package_url 
string  
 
3rd party platform URL. 
 
 
Instance 
Field 
Type 
Label 
Description 
 
 
id 
int32  
 
The ID of the instance. 
 
 
MissingProgrammerError 
MissingProgrammerError is a status error detail that is returned when
the operation can not be completed due to a missing programmer argument.
MonitorPortConfiguration 
Field 
Type 
Label 
Description 
 
 
settings 
MonitorPortSetting  
repeated 
The port configuration parameters. 
 
 
MonitorPortSetting 
Field 
Type 
Label 
Description 
 
 
setting_id 
string  
 
The setting identifier. 
 
value 
string  
 
The setting value. 
 
 
Platform is a structure containing all the information about a single
platform release.
Field 
Type 
Label 
Description 
 
 
metadata 
PlatformMetadata  
 
Generic information about a platform. 
 
release 
PlatformRelease  
 
Information about a specific release of a platform. 
 
 
PlatformMetadata contains generic information about a platform (not
correlated to a specific release).
Field 
Type 
Label 
Description 
 
 
id 
string  
 
Platform ID (e.g., arduino:avr). 
 
maintainer 
string  
 
Maintainer of the platform's package. 
 
website 
string  
 
A URL provided by the author of the platform's package, intended to point to their website. 
 
email 
string  
 
Email of the maintainer of the platform's package. 
 
manually_installed 
bool  
 
If true this Platform has been installed manually in the user' sketchbook hardware folder. 
 
deprecated 
bool  
 
True if the latest release of this Platform has been deprecated. 
 
indexed 
bool  
 
If true the platform is indexed. 
 
 
PlatformRelease contains information about a specific release of a platform.
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Name used to identify the platform to humans (e.g., "Arduino AVR Boards"). 
 
version 
string  
 
Version of the platform release. 
 
types 
string  
repeated 
Type of the platform. 
 
installed 
bool  
 
True if the platform is installed. 
 
boards 
Board  
repeated 
List of boards provided by the platform. If the platform is installed, this is the boards listed in the platform's boards.txt. If the platform is not installed, this is an arbitrary list of board names provided by the platform author for display and may not match boards.txt. 
 
help 
HelpResources  
 
A URL provided by the author of the platform's package, intended to point to their online help service. 
 
missing_metadata 
bool  
 
This field is true if the platform is missing installation metadata (this happens if the platform has been installed with the legacy Arduino IDE <=1.8.x). If the platform miss metadata and it's not indexed through a package index, it may fail to work correctly in some circumstances, and it may need to be reinstalled. This should be evaluated only when the PlatformRelease is Installed otherwise is an undefined behaviour. 
 
deprecated 
bool  
 
True this release is deprecated. 
 
compatible 
bool  
 
True if the platform dependencies are available for the current OS/ARCH. This also means that the platform is installable. 
 
 
PlatformSummary is a structure containing all the information about
a platform and all its available releases.
Field 
Type 
Label 
Description 
 
 
metadata 
PlatformMetadata  
 
Generic information about a platform. 
 
releases 
PlatformSummary.ReleasesEntry  
repeated 
Maps version to the corresponding PlatformRelease. 
 
installed_version 
string  
 
The installed version of the platform, or empty string if none installed. 
 
latest_version 
string  
 
The latest available version of the platform that can be installable, or empty if none available. 
 
 
PlatformSummary.ReleasesEntry 
Programmer 
Field 
Type 
Label 
Description 
 
 
platform 
string  
 
Platform name. 
 
id 
string  
 
Programmer ID. 
 
name 
string  
 
Programmer name. 
 
 
Sketch 
Field 
Type 
Label 
Description 
 
 
main_file 
string  
 
Absolute path to a main sketch files. 
 
location_path 
string  
 
Absolute path to folder that contains main_file. 
 
other_sketch_files 
string  
repeated 
List of absolute paths to other sketch files. 
 
additional_files 
string  
repeated 
List of absolute paths to additional sketch files. 
 
root_folder_files 
string  
repeated 
List of absolute paths to supported files in the sketch root folder, main file excluded. 
 
default_fqbn 
string  
 
Default FQBN set in project file (sketch.yaml). 
 
default_port 
string  
 
Default Port set in project file (sketch.yaml). 
 
default_protocol 
string  
 
Default Protocol set in project file (sketch.yaml). 
 
profiles 
SketchProfile  
repeated 
List of profiles present in the project file (sketch.yaml). 
 
default_profile 
SketchProfile  
 
Default profile set in the project file (sketch.yaml). 
 
default_programmer 
string  
 
Default Programmer set in project file (sketch.yaml). 
 
default_port_config 
MonitorPortConfiguration  
 
Default Port configuration set in project file (sketch.yaml). 
 
 
SketchProfile 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Name of the profile. 
 
fqbn 
string  
 
FQBN used by the profile. 
 
programmer 
string  
 
Programmer used by the profile. 
 
port 
string  
 
Default Port in this profile. 
 
port_config 
MonitorPortConfiguration  
 
Default Port configuration set in project file (sketch.yaml). 
 
protocol 
string  
 
Default Protocol in this profile. 
 
 
TaskProgress 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Description of the task. 
 
message 
string  
 
Additional information about the task. 
 
completed 
bool  
 
Whether the task is complete. 
 
percent 
float  
 
Amount in percent of the task completion (optional). 
 
 
Top 
cc/arduino/cli/commands/v1/port.proto 
Port 
Port represents a board port that may be used to upload or to monitor a board.
Field 
Type 
Label 
Description 
 
 
address 
string  
 
Address of the port (e.g., /dev/ttyACM0). 
 
label 
string  
 
The port label to show on the GUI (e.g. "ttyACM0"). 
 
protocol 
string  
 
Protocol of the port (e.g., serial, network, ...). 
 
protocol_label 
string  
 
A human friendly description of the protocol (e.g., "Serial Port (USB)"). 
 
properties 
Port.PropertiesEntry  
repeated 
A set of properties of the port. 
 
hardware_id 
string  
 
The hardware ID (serial number) of the board attached to the port. 
 
 
Port.PropertiesEntry 
Top 
cc/arduino/cli/commands/v1/board.proto 
BoardDetailsRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
The fully qualified board name of the board you want information about (e.g., arduino:avr:uno). 
 
do_not_expand_build_properties 
bool  
 
If set to true the returned build properties will be left unexpanded, with the variables placeholders exactly as defined in the platform. 
 
 
BoardDetailsResponse 
Field 
Type 
Label 
Description 
 
 
fqbn 
string  
 
The fully qualified board name of the board. 
 
name 
string  
 
Name used to identify the board to humans (e.g., Arduino Uno). 
 
version 
string  
 
Installed version of the board's platform. 
 
properties_id 
string  
 
The board ID component of the FQBN (e.g., uno). 
 
alias 
string  
 
Board alias that can be used as a more user friendly alternative to the FQBN. 
 
official 
bool  
 
Whether this is an official or 3rd party board. 
 
pinout 
string  
 
URL of the board's pinout documentation. 
 
package 
Package  
 
Data about the package that contains the board's platform. 
 
platform 
BoardPlatform  
 
Data about the board's platform. 
 
tools_dependencies 
ToolsDependencies  
repeated 
Tool dependencies of the board. 
 
config_options 
ConfigOption  
repeated 
The board's custom configuration options. 
 
programmers 
Programmer  
repeated 
List of programmers supported by the board. 
 
identification_properties 
BoardIdentificationProperties  
repeated 
Identifying information for the board (e.g., USB VID/PID). 
 
build_properties 
string  
repeated 
Board build properties used for compiling. 
 
default_programmer_id 
string  
 
Default programmer for the board. 
 
 
BoardIdentificationProperties 
BoardIdentificationProperties.PropertiesEntry 
BoardIdentifyRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
properties 
BoardIdentifyRequest.PropertiesEntry  
repeated 
A set of properties to search (can be taken from a Port message). 
 
use_cloud_api_for_unknown_board_detection 
bool  
 
If set to true, when a board cannot be identified using the installed platforms, the cloud API will be called to detect the board. 
 
 
BoardIdentifyRequest.PropertiesEntry 
BoardIdentifyResponse 
Field 
Type 
Label 
Description 
 
 
boards 
BoardListItem  
repeated 
List of matching boards (they may have an FQBN with options set). 
 
 
BoardListAllRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
search_args 
string  
repeated 
The search query to filter the board list by. 
 
include_hidden_boards 
bool  
 
Set to true to get also the boards marked as "hidden" in the platform. 
 
 
BoardListAllResponse 
Field 
Type 
Label 
Description 
 
 
boards 
BoardListItem  
repeated 
List of installed boards. 
 
 
BoardListItem 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
The name for use when identifying the board to a human. 
 
fqbn 
string  
 
The fully qualified board name. Used to identify the board to a machine. 
 
is_hidden 
bool  
 
If the board is marked as "hidden" in the platform. 
 
platform 
Platform  
 
Platform this board belongs to. 
 
 
BoardListRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
timeout 
int64  
 
Search for boards for the given time (in milliseconds). 
 
fqbn 
string  
 
The fully qualified board name of the board you want information about (e.g., arduino:avr:uno). 
 
skip_cloud_api_for_board_detection 
bool  
 
If set to true, when a board cannot be identified using the installed platforms, the cloud API will not be called to detect the board. 
 
 
BoardListResponse 
Field 
Type 
Label 
Description 
 
 
ports 
DetectedPort  
repeated 
List of ports and the boards detected on those ports. 
 
warnings 
string  
repeated 
Warning messages or errors coming from the discoveries. 
 
 
BoardListWatchRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
skip_cloud_api_for_board_detection 
bool  
 
If set to true, when a board cannot be identified using the installed platforms, the cloud API will not be called to detect the board. 
 
 
BoardListWatchResponse 
Field 
Type 
Label 
Description 
 
 
event_type 
string  
 
Event type as received from the serial discovery tool. 
 
port 
DetectedPort  
 
Information about the port. 
 
error 
string  
 
Eventual errors when detecting connected boards. 
 
 
Field 
Type 
Label 
Description 
 
 
architecture 
string  
 
Architecture of the platform (e.g., avr). 
 
category 
string  
 
Category of the platform. Set to Contributed for 3rd party platforms. 
 
url 
string  
 
Download URL of the platform archive file. 
 
archive_filename 
string  
 
File name of the platform archive. 
 
checksum 
string  
 
Checksum of the platform archive. 
 
size 
int64  
 
File size of the platform archive. 
 
name 
string  
 
Name used to identify the platform to humans. 
 
 
BoardSearchRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
search_args 
string  
 
The search query to filter the board list by. 
 
include_hidden_boards 
bool  
 
Set to true to get also the boards marked as "hidden" in installed platforms. 
 
 
BoardSearchResponse 
Field 
Type 
Label 
Description 
 
 
boards 
BoardListItem  
repeated 
List of installed and installable boards. 
 
 
ConfigOption 
Field 
Type 
Label 
Description 
 
 
option 
string  
 
ID of the configuration option. For identifying the option to machines. 
 
option_label 
string  
 
Name of the configuration option for identifying the option to humans. 
 
values 
ConfigValue  
repeated 
Possible values of the configuration option. 
 
 
ConfigValue 
Field 
Type 
Label 
Description 
 
 
value 
string  
 
The configuration option value. 
 
value_label 
string  
 
Label to identify the configuration option to humans. 
 
selected 
bool  
 
Whether the configuration option is selected. 
 
 
DetectedPort 
Field 
Type 
Label 
Description 
 
 
matching_boards 
BoardListItem  
repeated 
The possible boards attached to the port. 
 
port 
Port  
 
The port details. 
 
 
Help 
Field 
Type 
Label 
Description 
 
 
online 
string  
 
URL for getting online help. 
 
 
Package 
Systems 
Field 
Type 
Label 
Description 
 
 
checksum 
string  
 
Checksum of the tool archive. 
 
host 
string  
 
Operating system identifier. 
 
archive_filename 
string  
 
File name of the tool archive. 
 
url 
string  
 
Download URL of the tool archive. 
 
size 
int64  
 
File size of the tool archive. 
 
 
Field 
Type 
Label 
Description 
 
 
packager 
string  
 
Vendor name of the package containing the tool definition. 
 
name 
string  
 
Tool name. 
 
version 
string  
 
Tool version. 
 
systems 
Systems  
repeated 
Data for the operating system-specific builds of the tool. 
 
 
Top 
cc/arduino/cli/commands/v1/lib.proto 
DownloadResource 
Field 
Type 
Label 
Description 
 
 
url 
string  
 
Download URL of the library archive. 
 
archive_filename 
string  
 
Filename of the library archive. 
 
checksum 
string  
 
Checksum of the library archive. 
 
size 
int64  
 
File size of the library archive. 
 
cache_path 
string  
 
The directory under the staging subdirectory of the data directory the library archive file will be downloaded to. 
 
 
GitLibraryInstallRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
url 
string  
 
URL to the repository containing the library. 
 
overwrite 
bool  
 
Set to true to overwrite an already installed library with the same name. Defaults to false. 
 
 
GitLibraryInstallResponse 
GitLibraryInstallResponse.Result 
Empty message, reserved for future expansion.
InstalledLibrary 
Field 
Type 
Label 
Description 
 
 
library 
Library  
 
Information about the library. 
 
release 
LibraryRelease  
 
When the updatable field of the LibraryList request is set to true, this will contain information on the latest version of the library in the libraries index. 
 
 
Library 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Library name (value of name field in library.properties). 
 
author 
string  
 
Value of the author field in library.properties. 
 
maintainer 
string  
 
Value of the maintainer field in library.properties. 
 
sentence 
string  
 
Value of the sentence field in library.properties. 
 
paragraph 
string  
 
Value of the paragraph field in library.properties. 
 
website 
string  
 
Value of the url field in library.properties. 
 
category 
string  
 
Value of the category field in library.properties. 
 
architectures 
string  
repeated 
Value of the architectures field in library.properties. 
 
types 
string  
repeated 
The type categories of the library. Possible values: Arduino, Partner, Recommended, Contributed, Retired. 
 
install_dir 
string  
 
The path of the library directory. 
 
source_dir 
string  
 
The location of the library's source files. 
 
utility_dir 
string  
 
The location of the library's utility directory. 
 
container_platform 
string  
 
If location is platform_builtin or referenced_platform_builtin, the identifying string for the platform containing the library (e.g., arduino:avr@1.8.2). 
 
dot_a_linkage 
bool  
 
Value of the dot_a_linkage field in library.properties. 
 
precompiled 
bool  
 
Value of the precompiled field in library.properties. 
 
ld_flags 
string  
 
Value of the ldflags field in library.properties. 
 
is_legacy 
bool  
 
A library.properties file is not present in the library's root directory. 
 
version 
string  
 
Value of the version field in library.properties. 
 
license 
string  
 
Value of the license field in library.properties. 
 
properties 
Library.PropertiesEntry  
repeated 
The data from the library's library.properties file, including unused fields. 
 
location 
LibraryLocation  
 
The location type of the library installation. 
 
layout 
LibraryLayout  
 
The library format type. 
 
examples 
string  
repeated 
The example sketches provided by the library. 
 
provides_includes 
string  
repeated 
Value of the includes field in library.properties or, if missing, the list of include files available on the library source root directory. 
 
compatible_with 
Library.CompatibleWithEntry  
repeated 
Map of FQBNs that specifies if library is compatible with this library. 
 
in_development 
bool  
 
This value is set to true if the library is in development and should not be treated as read-only. This status is determined by the presence of a .development file in the library root directory. 
 
 
Library.CompatibleWithEntry 
Field 
Type 
Label 
Description 
 
 
key 
string  
 
 
 
value 
bool  
 
 
 
 
Library.PropertiesEntry 
LibraryDependency 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Library name of the dependency. 
 
version_constraint 
string  
 
Version constraint of the dependency. 
 
 
LibraryDependencyStatus 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
The name of the library dependency. 
 
version_required 
string  
 
The required version of the library dependency. 
 
version_installed 
string  
 
Version of the library dependency currently installed. 
 
 
LibraryDownloadRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
name 
string  
 
Name of the library. 
 
version 
string  
 
The version of the library to download. 
 
 
LibraryDownloadResponse 
LibraryDownloadResponse.Result 
Empty message, reserved for future expansion.
LibraryInstallRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
name 
string  
 
Name of the library. 
 
version 
string  
 
The version of the library to install. 
 
no_deps 
bool  
 
Set to true to skip installation of specified library's dependencies, defaults to false. 
 
no_overwrite 
bool  
 
Set to true to skip installation if a different version of the library or one of its dependencies is already installed, defaults to false. 
 
install_location 
LibraryInstallLocation  
 
Install the library and dependencies in the specified location. 
 
 
LibraryInstallResponse 
LibraryInstallResponse.Result 
Empty message, reserved for future expansion.
LibraryListRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
all 
bool  
 
Whether to include built-in libraries (from platforms and the Arduino IDE) in the listing. 
 
updatable 
bool  
 
Whether to list only libraries for which there is a newer version than the installed version available in the libraries index. 
 
name 
string  
 
If set filters out the libraries not matching name. 
 
fqbn 
string  
 
By setting this field all duplicate libraries are filtered out leaving only the libraries that will be used to compile for the specified board FQBN. 
 
 
LibraryListResponse 
Field 
Type 
Label 
Description 
 
 
installed_libraries 
InstalledLibrary  
repeated 
List of installed libraries. 
 
 
LibraryRelease 
Field 
Type 
Label 
Description 
 
 
author 
string  
 
Value of the author field in library.properties. 
 
version 
string  
 
Value of the version field in library.properties. 
 
maintainer 
string  
 
Value of the maintainer field in library.properties. 
 
sentence 
string  
 
Value of the sentence field in library.properties. 
 
paragraph 
string  
 
Value of the paragraph field in library.properties. 
 
website 
string  
 
Value of the url field in library.properties. 
 
category 
string  
 
Value of the category field in library.properties. 
 
architectures 
string  
repeated 
Value of the architectures field in library.properties. 
 
types 
string  
repeated 
The type categories of the library, as defined in the libraries index. Possible values: Arduino, Partner, Recommended, Contributed, Retired. 
 
resources 
DownloadResource  
 
Information about the library archive file. 
 
license 
string  
 
Value of the license field in library.properties. 
 
provides_includes 
string  
repeated 
Value of the includes field in library.properties. 
 
dependencies 
LibraryDependency  
repeated 
The names of the library's dependencies, as defined by the 'depends' field of library.properties. 
 
 
LibraryResolveDependenciesRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
name 
string  
 
Name of the library. 
 
version 
string  
 
The version of the library to check dependencies of. If no version is specified, dependencies of the newest version will be listed. 
 
do_not_update_installed_libraries 
bool  
 
If true the computed solution will try to keep exising libraries at their current version. 
 
 
LibraryResolveDependenciesResponse 
LibrarySearchRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
omit_releases_details 
bool  
 
Set to true to not populate the releases field in the response (may save a lot of bandwidth/CPU). 
 
search_args 
string  
 
Keywords for the search. 
 
 
LibrarySearchResponse 
LibraryUninstallRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
name 
string  
 
Name of the library. 
 
version 
string  
 
The version of the library to uninstall. 
 
 
LibraryUninstallResponse 
LibraryUninstallResponse.Result 
Empty message, reserved for future expansion.
LibraryUpgradeAllRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
 
LibraryUpgradeAllResponse 
LibraryUpgradeAllResponse.Result 
Empty message, reserved for future expansion.
LibraryUpgradeRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
name 
string  
 
Name of the library. 
 
no_deps 
bool  
 
Set to true to skip installation of specified library's dependencies, defaults to false. 
 
 
LibraryUpgradeResponse 
LibraryUpgradeResponse.Result 
Empty message, reserved for future expansion.
SearchedLibrary 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
Library name. 
 
releases 
SearchedLibrary.ReleasesEntry  
repeated 
The index data for the available versions of the library. The key of the map is the library version. 
 
latest 
LibraryRelease  
 
The index data for the latest version of the library. 
 
available_versions 
string  
repeated 
The available versions of this library. 
 
 
SearchedLibrary.ReleasesEntry 
ZipLibraryInstallRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
path 
string  
 
Path to the archived library. 
 
overwrite 
bool  
 
Set to true to overwrite an already installed library with the same name. Defaults to false. 
 
 
ZipLibraryInstallResponse 
ZipLibraryInstallResponse.Result 
Empty message, reserved for future expansion.
LibraryInstallLocation 
Represent a library installation location.
Name 
Number 
Description 
 
 
LIBRARY_INSTALL_LOCATION_USER 
0 
In the libraries subdirectory of the user directory (sketchbook). This is the default if not specified. 
 
LIBRARY_INSTALL_LOCATION_BUILTIN 
1 
In the configured 'builtin.libraries' directory. 
 
 
LibraryLayout 
Represent the library layout.
Name 
Number 
Description 
 
 
LIBRARY_LAYOUT_FLAT 
0 
Library is in the 1.0 Arduino library format. 
 
LIBRARY_LAYOUT_RECURSIVE 
1 
Library is in the 1.5 Arduino library format. 
 
 
LibraryLocation 
Represent the location of the library.
Name 
Number 
Description 
 
 
LIBRARY_LOCATION_BUILTIN 
0 
In the configured 'builtin.libraries' directory. 
 
LIBRARY_LOCATION_USER 
1 
In the libraries subdirectory of the user directory (sketchbook). 
 
LIBRARY_LOCATION_PLATFORM_BUILTIN 
2 
In the libraries subdirectory of a platform. 
 
LIBRARY_LOCATION_REFERENCED_PLATFORM_BUILTIN 
3 
When LibraryLocation is used in a context where a board is specified, this indicates the library is in the libraries subdirectory of a platform referenced by the board's platform. 
 
LIBRARY_LOCATION_UNMANAGED 
4 
Outside the libraries folders managed by the CLI. 
 
LIBRARY_LOCATION_PROFILE 
5 
Library is part of the sketch profile. 
 
 
LibrarySearchStatus 
Represent the result of the library search.
Name 
Number 
Description 
 
 
LIBRARY_SEARCH_STATUS_FAILED 
0 
No search results were found. 
 
LIBRARY_SEARCH_STATUS_SUCCESS 
1 
Search results were found. 
 
 
Top 
cc/arduino/cli/commands/v1/compile.proto 
BuilderResult 
Field 
Type 
Label 
Description 
 
 
build_path 
string  
 
The compiler build path. 
 
used_libraries 
Library  
repeated 
The libraries used in the build. 
 
executable_sections_size 
ExecutableSectionSize  
repeated 
The size of the executable split by sections. 
 
board_platform 
InstalledPlatformReference  
 
The platform where the board is defined. 
 
build_platform 
InstalledPlatformReference  
 
The platform used for the build (if referenced from the board platform). 
 
build_properties 
string  
repeated 
Build properties used for compiling. 
 
diagnostics 
CompileDiagnostic  
repeated 
Compiler errors and warnings. 
 
 
CompileDiagnostic 
Field 
Type 
Label 
Description 
 
 
severity 
string  
 
Severity of the diagnostic. 
 
message 
string  
 
The explanation of the diagnostic (it may be multiple preformatted lines). 
 
file 
string  
 
The file containing the diagnostic. 
 
line 
int64  
 
The line of the diagnostic if available (starts from 1). 
 
column 
int64  
 
The column of the diagnostic if available (starts from 1). 
 
context 
CompileDiagnosticContext  
repeated 
The context where this diagnostic is found (it may be multiple files that represents a chain of includes, or a text describing where the diagnostic is found). 
 
notes 
CompileDiagnosticNote  
repeated 
Annotations or suggestions to the diagnostic made by the compiler. 
 
 
CompileDiagnosticContext 
Field 
Type 
Label 
Description 
 
 
message 
string  
 
The message describing the context reference. 
 
file 
string  
 
The file of the context reference. 
 
line 
int64  
 
The line of the context reference. 
 
column 
int64  
 
The column of the context reference. 
 
 
CompileDiagnosticNote 
Field 
Type 
Label 
Description 
 
 
message 
string  
 
The message describing the compiler note. 
 
file 
string  
 
The file of the compiler note. 
 
line 
int64  
 
The line of the compiler note. 
 
column 
int64  
 
The column of the compiler note. 
 
 
CompileRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully Qualified Board Name, e.g.: arduino:avr:uno. If this field is not defined, the FQBN of the board attached to the sketch via the BoardAttach method is used. 
 
sketch_path 
string  
 
The path where the sketch is stored. 
 
show_properties 
bool  
 
Just get the build properties and do not run the full compile. 
 
preprocess 
bool  
 
Print preprocessed code to stdout instead of compiling. 
 
build_cache_path 
string  
 
Deprecated.  Builds of core and sketches are saved into this path to be cached and reused. 
 
build_path 
string  
 
Path to use to store the files used for the compilation. If omitted, a directory will be created in the operating system's default temporary path. 
 
build_properties 
string  
repeated 
List of custom build properties. 
 
warnings 
string  
 
Used to tell gcc which warning level to use. The level names are: "none", "default", "more" and "all". 
 
verbose 
bool  
 
Turns on verbose mode. 
 
quiet 
bool  
 
Suppresses almost every output. 
 
jobs 
int32  
 
The max number of concurrent compiler instances to run (as make -jx). If jobs is set to 0, it will use the number of available CPUs as the maximum. 
 
libraries 
string  
repeated 
A list of paths to directories containing a collection of libraries. 
 
optimize_for_debug 
bool  
 
Optimize compile output for debug, not for release. 
 
export_dir 
string  
 
Optional: save the build artifacts in this directory, the directory must exist. 
 
clean 
bool  
 
Optional: cleanup the build folder and do not use any previously cached build. 
 
create_compilation_database_only 
bool  
 
When set to true only the compilation database will be produced and no actual build will be performed. 
 
source_override 
CompileRequest.SourceOverrideEntry  
repeated 
This map (source file -> new content) let the builder use the provided content instead of reading the corresponding file on disk. This is useful for IDE that have unsaved changes in memory. The path must be relative to the sketch directory. Only files from the sketch are allowed. 
 
export_binaries 
bool  
optional 
When set to true the compiled binary will be copied to the export directory. 
 
library 
string  
repeated 
A list of paths to single libraries root directory. 
 
keys_keychain 
string  
 
The path where to search for the custom signing key name and the encrypt key name. 
 
sign_key 
string  
 
The name of the custom key to use for signing during the compile process. 
 
encrypt_key 
string  
 
The name of the custom key to use for encrypting during the compile process. 
 
skip_libraries_discovery 
bool  
 
If set to true the build will skip the library discovery process and will use the same libraries of latest build. Enabling this flag may produce a wrong output and should not be used in regular compiles unless there is a very specific reason to do so. This flag is mainly provided for usage in language servers to optimize the build speed in some particular cases. 
 
do_not_expand_build_properties 
bool  
 
If set to true the returned build properties will be left unexpanded, with the variables placeholders exactly as defined in the platform. 
 
build_cache_extra_paths 
string  
repeated 
Search for precompiled cores in the given paths and use them if found. This search is performed after the standard build_cache directory. 
 
 
CompileRequest.SourceOverrideEntry 
CompileResponse 
Field 
Type 
Label 
Description 
 
 
out_stream 
bytes  
 
The output of the compilation process (stream). 
 
err_stream 
bytes  
 
The error output of the compilation process (stream). 
 
progress 
TaskProgress  
 
Completions reports of the compilation process (stream). 
 
result 
BuilderResult  
 
The compilation result. 
 
 
ExecutableSectionSize 
Field 
Type 
Label 
Description 
 
 
name 
string  
 
The name of the section. 
 
size 
int64  
 
The used size of the section in bytes. 
 
max_size 
int64  
 
The maximum size of the section in bytes. 
 
 
InstanceNeedsReinitializationError 
Top 
cc/arduino/cli/commands/v1/core.proto 
AlreadyAtLatestVersionError 
AlreadyAtLatestVersionError is returned when an upgrade is not possible
because already at latest version.
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
platform_package 
string  
 
Vendor name of the platform (e.g., arduino). 
 
architecture 
string  
 
Architecture name of the platform (e.g., avr). 
 
version 
string  
 
Platform version to download. 
 
 
Empty message, reserved for future expansion.
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
platform_package 
string  
 
Vendor name of the platform (e.g., arduino). 
 
architecture 
string  
 
Architecture name of the platform (e.g., avr). 
 
version 
string  
 
Platform version to install. 
 
skip_post_install 
bool  
 
Set to true to not run (eventual) post install scripts for trusted platforms. 
 
no_overwrite 
bool  
 
Set to true to skip installation if a different version of the platform is already installed. 
 
skip_pre_uninstall 
bool  
 
Set to true to not run (eventual) pre uninstall scripts for trusted platforms when performing platform upgrades. 
 
 
Empty message, reserved for future expansion.
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
search_args 
string  
 
Keywords for the search. 
 
manually_installed 
bool  
 
Whether to show manually installed platforms. false causes to skip manually installed platforms. 
 
 
Field 
Type 
Label 
Description 
 
 
search_output 
PlatformSummary  
repeated 
Results of the search. 
 
 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
platform_package 
string  
 
Vendor name of the platform (e.g., arduino). 
 
architecture 
string  
 
Architecture name of the platform (e.g., avr). 
 
skip_pre_uninstall 
bool  
 
Set to true to not run (eventual) pre uninstall scripts for trusted platforms. 
 
 
Empty message, reserved for future expansion.
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
platform_package 
string  
 
Vendor name of the platform (e.g., arduino). 
 
architecture 
string  
 
Architecture name of the platform (e.g., avr). 
 
skip_post_install 
bool  
 
Set to true to not run (eventual) post install scripts for trusted platforms. 
 
skip_pre_uninstall 
bool  
 
Set to true to not run (eventual) pre uninstall scripts for trusted platforms when performing platform upgrades. 
 
 
Field 
Type 
Label 
Description 
 
 
platform 
Platform  
 
The upgraded platform. 
 
 
Top 
cc/arduino/cli/commands/v1/debug.proto 
Configurations specific for the 'gcc' toolchain.
DebugOpenOCDServerConfiguration 
Configuration specific for the 'openocd` server.
Field 
Type 
Label 
Description 
 
 
path 
string  
 
Path to openocd. 
 
scripts_dir 
string  
 
Path to openocd scripts. 
 
scripts 
string  
repeated 
List of scripts to execute by openocd. 
 
 
DebugRequest 
The top-level message sent by the client for the Debug method.
Multiple DebugRequest messages can be sent but the first message
must contain a GetDebugConfigRequest message to initialize the debug
session. All subsequent messages must contain bytes to be sent to the debug
session and must not contain a GetDebugConfigRequest message.
Content must be either a debug session config or data to be sent.
Field 
Type 
Label 
Description 
 
 
debug_request 
GetDebugConfigRequest  
 
Provides information to the debug that specifies which is the target. The first DebugRequest message must contain a GetDebugConfigRequest message. 
 
data 
bytes  
 
The data to be sent to the target being monitored. 
 
send_interrupt 
bool  
 
Set this to true to send and Interrupt signal to the debugger process. 
 
 
DebugResponse 
The streaming response may contain chunks of data from the debugger or an
error.
DebugResponse.Result 
Field 
Type 
Label 
Description 
 
 
error 
string  
 
Incoming error output from the debugger tool. 
 
 
GetDebugConfigRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the board in use (e.g., arduino:samd:mkr1000). If this is omitted, the FQBN attached to the sketch will be used. 
 
sketch_path 
string  
 
Path to the sketch that is running on the board. The compiled executable is expected to be located under this path. 
 
port 
Port  
 
Port of the debugger (optional). 
 
interpreter 
string  
 
Which GDB command interpreter to use. 
 
import_dir 
string  
 
Directory containing the compiled executable. If import_dir is not specified, the executable is assumed to be in {sketch_path}/build/{fqbn}/. 
 
programmer 
string  
 
The programmer to use for debugging. 
 
debug_properties 
string  
repeated 
List of custom debug properties. 
 
 
GetDebugConfigResponse 
Field 
Type 
Label 
Description 
 
 
executable 
string  
 
The executable binary to debug. 
 
toolchain 
string  
 
The toolchain type used for the build (for example "gcc"). 
 
toolchain_path 
string  
 
The toolchain directory. 
 
toolchain_prefix 
string  
 
The toolchain architecture prefix (for example "arm-none-eabi"). 
 
server 
string  
 
The GDB server type used to connect to the programmer/board (for example "openocd"). 
 
server_path 
string  
 
The GDB server directory. 
 
toolchain_configuration 
google.protobuf.Any  
 
Extra configuration parameters wrt toolchain. 
 
server_configuration 
google.protobuf.Any  
 
Extra configuration parameters wrt GDB server. 
 
custom_configs 
GetDebugConfigResponse.CustomConfigsEntry  
repeated 
Custom debugger configurations (not handled directly by Arduino CLI but provided for 3rd party plugins/debuggers). The map keys identifies which 3rd party plugin/debugger is referred, the map string values contains a JSON configuration for it. 
 
svd_file 
string  
 
the SVD file to use. 
 
programmer 
string  
 
The programmer specified in the request. 
 
 
GetDebugConfigResponse.CustomConfigsEntry 
IsDebugSupportedRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the board in use (e.g., arduino:samd:mkr1000). 
 
port 
Port  
 
Port of the debugger (optional). 
 
interpreter 
string  
 
Which GDB command interpreter to use. 
 
programmer 
string  
 
The programmer to use for debugging. 
 
debug_properties 
string  
repeated 
List of custom debug properties. 
 
 
IsDebugSupportedResponse 
Field 
Type 
Label 
Description 
 
 
debugging_supported 
bool  
 
True if debugging is supported. 
 
debug_fqbn 
string  
 
This is the same FQBN given in the IsDebugSupportedRequest but cleaned up of the board options that do not affect the debugger configuration. It may be used by clients/IDE to group slightly different boards option selections under the same debug configuration. 
 
 
Top 
cc/arduino/cli/commands/v1/monitor.proto 
EnumerateMonitorPortSettingsRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
port_protocol 
string  
 
The port protocol to enumerate settings. 
 
fqbn 
string  
 
The board FQBN we are trying to connect to. This is optional, and it's needed to disambiguate if more than one platform provides the pluggable monitor for a given port protocol. 
 
 
EnumerateMonitorPortSettingsResponse 
Field 
Type 
Label 
Description 
 
 
settings 
MonitorPortSettingDescriptor  
repeated 
A list of descriptors of the settings that may be changed for the monitor port. 
 
 
MonitorPortOpenRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
port 
Port  
 
Port to open, must be filled only on the first request. 
 
fqbn 
string  
 
The board FQBN we are trying to connect to. This is optional, and it's needed to disambiguate if more than one platform provides the pluggable monitor for a given port protocol. 
 
port_configuration 
MonitorPortConfiguration  
 
Port configuration, optional, contains settings of the port to be applied. 
 
 
MonitorPortSettingDescriptor 
Field 
Type 
Label 
Description 
 
 
setting_id 
string  
 
The setting identifier. 
 
label 
string  
 
A human-readable label of the setting (to be displayed on the GUI). 
 
type 
string  
 
The setting type (at the moment only "enum" is avaiable). 
 
enum_values 
string  
repeated 
The values allowed on "enum" types. 
 
value 
string  
 
The selected or default value. 
 
 
MonitorRequest 
Field 
Type 
Label 
Description 
 
 
open_request 
MonitorPortOpenRequest  
 
Open request, it must be the first incoming message. 
 
tx_data 
bytes  
 
Data to send to the port. 
 
updated_configuration 
MonitorPortConfiguration  
 
Port configuration, contains settings of the port to be changed. 
 
close 
bool  
 
Close message, set to true to gracefully close a port (this ensure that the gRPC streaming call is closed by the daemon AFTER the port has been successfully closed). 
 
 
MonitorResponse 
Field 
Type 
Label 
Description 
 
 
error 
string  
 
Eventual errors dealing with monitor port. 
 
rx_data 
bytes  
 
Data received from the port. 
 
applied_settings 
MonitorPortConfiguration  
 
Settings applied to the port, may be returned after a port is opened (to report the default settings) or after a new port_configuration is sent (to report the new settings applied). 
 
success 
bool  
 
A message with this field set to true is sent as soon as the port is succesfully opened. 
 
 
Top 
cc/arduino/cli/commands/v1/settings.proto 
Configuration 
Configuration to apply to the given instance.
Any missing field will be kept at the default value.
Configuration.BoardManager 
Field 
Type 
Label 
Description 
 
 
additional_urls 
string  
repeated 
Additional URLs to be used for the board manager. 
 
 
Configuration.BuildCache 
Field 
Type 
Label 
Description 
 
 
compilations_before_purge 
uint64  
 
The minimum number of compilations before the cache is purged. 
 
ttl_secs 
uint64  
 
Time to live of the cache in seconds. 
 
 
Configuration.Daemon 
Field 
Type 
Label 
Description 
 
 
port 
string  
 
The TCP port of the daemon. 
 
 
Configuration.Directories 
Configuration.Directories.Builtin 
Field 
Type 
Label 
Description 
 
 
libraries 
string  
optional 
The directory where the built-in libraries are installed. 
 
 
Configuration.Library 
Field 
Type 
Label 
Description 
 
 
enable_unsafe_install 
bool  
 
Set to true to enable library installation from zip archives or git repositories. 
 
 
Configuration.Logging 
Field 
Type 
Label 
Description 
 
 
level 
string  
 
The logging level. 
 
format 
string  
 
The logging format. 
 
file 
string  
optional 
The logging file. 
 
 
Configuration.Network 
Field 
Type 
Label 
Description 
 
 
extra_user_agent 
string  
optional 
Extra user-agent information to be appended in network requests. 
 
proxy 
string  
optional 
The proxy to use for network requests. 
 
 
Configuration.Output 
Field 
Type 
Label 
Description 
 
 
no_color 
bool  
 
Set to true to disable coloring of the output. 
 
 
Configuration.Sketch 
Field 
Type 
Label 
Description 
 
 
always_export_binaries 
bool  
 
Set to true to always export binaries to the sketch directory. 
 
 
Configuration.Updater 
Field 
Type 
Label 
Description 
 
 
enable_notification 
bool  
 
Set to true to enable notifications for updates. 
 
 
ConfigurationGetRequest 
ConfigurationGetResponse 
Field 
Type 
Label 
Description 
 
 
configuration 
Configuration  
 
The current configuration. 
 
 
ConfigurationOpenRequest 
Field 
Type 
Label 
Description 
 
 
encoded_settings 
string  
 
The encoded settings. 
 
settings_format 
string  
 
The format of the encoded settings, allowed values are "json" and "yaml". 
 
 
ConfigurationOpenResponse 
Field 
Type 
Label 
Description 
 
 
warnings 
string  
repeated 
Warnings that occurred while opening the configuration (e.g. unknown keys, or invalid values). 
 
 
ConfigurationSaveRequest 
Field 
Type 
Label 
Description 
 
 
settings_format 
string  
 
The format of the encoded settings, allowed values are "json" and "yaml". 
 
 
ConfigurationSaveResponse 
Field 
Type 
Label 
Description 
 
 
encoded_settings 
string  
 
The encoded settings. 
 
 
SettingsEnumerateRequest 
SettingsEnumerateResponse 
SettingsEnumerateResponse.Entry 
Field 
Type 
Label 
Description 
 
 
key 
string  
 
The key. 
 
type 
string  
 
The key type. 
 
 
SettingsGetValueRequest 
Field 
Type 
Label 
Description 
 
 
key 
string  
 
The key to get. 
 
value_format 
string  
 
The format of the encoded_value (default is "json", allowed values are "json" and "yaml). 
 
 
SettingsGetValueResponse 
Field 
Type 
Label 
Description 
 
 
encoded_value 
string  
 
The value of the key (encoded). 
 
 
SettingsSetValueRequest 
Field 
Type 
Label 
Description 
 
 
key 
string  
 
The key to change. 
 
encoded_value 
string  
 
The new value (encoded), no objects, only scalar or array of scalars are allowed. 
 
value_format 
string  
 
The format of the encoded_value (default is "json", allowed values are "json", "yaml" and "cli"). 
 
 
SettingsSetValueResponse 
Top 
cc/arduino/cli/commands/v1/upload.proto 
BurnBootloaderRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the target board (e.g., arduino:avr:uno). 
 
port 
Port  
 
The port of the programmer used to program the bootloader. 
 
verbose 
bool  
 
Whether to turn on verbose output during the programming. 
 
verify 
bool  
 
After programming, verify the contents of the memory on the board match the uploaded binary. 
 
programmer 
string  
 
The programmer to use for burning bootloader. 
 
dry_run 
bool  
 
If set to true, the actual upload will not be performed but a trace output will be printed stdout. This is for debugging purposes. 
 
user_fields 
BurnBootloaderRequest.UserFieldsEntry  
repeated 
User provided fields usually used by upload tools that need authentication or in any case fields that can be customized by the user at upload time and cannot be known previously. For more info: https://arduino.github.io/arduino-cli/latest/platform-specification/#user-provided-fields  
 
upload_properties 
string  
repeated 
List of custom upload properties. 
 
 
BurnBootloaderRequest.UserFieldsEntry 
BurnBootloaderResponse 
Field 
Type 
Label 
Description 
 
 
out_stream 
bytes  
 
The output of the burn bootloader process. 
 
err_stream 
bytes  
 
The error output of the burn bootloader process. 
 
 
ListProgrammersAvailableForUploadRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the target board (e.g., arduino:avr:uno). 
 
 
ListProgrammersAvailableForUploadResponse 
Field 
Type 
Label 
Description 
 
 
programmers 
Programmer  
repeated 
List of programmers supported by the board. 
 
 
ProgrammerIsRequiredForUploadError 
SupportedUserFieldsRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the target board (e.g., arduino:avr:uno). 
 
protocol 
string  
 
Protocol that will be used to upload, this information is necessary to pick the right upload tool for the board specified with the FQBN. 
 
 
SupportedUserFieldsResponse 
Field 
Type 
Label 
Description 
 
 
user_fields 
UserField  
repeated 
User fields supported by board specified in SupportedUserFieldsRequest. If board doesn't support any field it will be empty. 
 
 
UploadRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the target board (e.g., arduino:avr:uno). If this field is not defined, the FQBN of the board attached to the sketch via the BoardAttach method is used. 
 
sketch_path 
string  
 
Path where the sketch to be uploaded is stored. Unless the import_file field is defined, the compiled binary is assumed to be at the location and filename under this path where it is saved by the Compile method. 
 
port 
Port  
 
The port of the board. 
 
verbose 
bool  
 
Whether to turn on verbose output during the upload. 
 
verify 
bool  
 
After upload, verify that the contents of the memory on the board match the uploaded binary. 
 
import_file 
string  
 
When import_file is specified, it overrides the import_dir and sketch_path params. 
 
import_dir 
string  
 
Custom path to a directory containing compiled files. When import_dir is not specified, the standard build directory under sketch_path is used. 
 
programmer 
string  
 
The programmer to use for upload. If set an UploadUsingProgrammer is triggered instead of a normal upload. The UploadUsingProgrammer call may also be used for explicit error check. 
 
dry_run 
bool  
 
If set to true, the actual upload will not be performed but a trace output will be printed stdout. This is for debugging purposes. 
 
user_fields 
UploadRequest.UserFieldsEntry  
repeated 
User provided fields usually used by upload tools that need authentication or in any case fields that can be customized by the user at upload time and cannot be known previously. For more info: https://arduino.github.io/arduino-cli/latest/platform-specification/#user-provided-fields  
 
upload_properties 
string  
repeated 
List of custom upload properties. 
 
 
UploadRequest.UserFieldsEntry 
UploadResponse 
Field 
Type 
Label 
Description 
 
 
out_stream 
bytes  
 
The output of the upload process. 
 
err_stream 
bytes  
 
The error output of the upload process. 
 
result 
UploadResult  
 
The upload result. 
 
 
UploadResult 
Field 
Type 
Label 
Description 
 
 
updated_upload_port 
Port  
 
When a board requires a port disconnection to perform the upload, this field returns the port where the board reconnects after the upload. 
 
 
UploadUsingProgrammerRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
fqbn 
string  
 
Fully qualified board name of the target board (e.g., arduino:avr:uno). If this field is not defined, the FQBN of the board attached to the sketch via the BoardAttach method is used. 
 
sketch_path 
string  
 
Path where the sketch to be uploaded is stored. Unless the import_file field is defined, the compiled binary is assumed to be at the location and filename under this path where it is saved by the Compile method. 
 
port 
Port  
 
The port of the board. 
 
verbose 
bool  
 
Whether to turn on verbose output during the upload. 
 
verify 
bool  
 
After upload, verify that the contents of the memory on the board match the uploaded binary. 
 
import_file 
string  
 
When import_file is specified, it overrides the import_dir and sketch_path params. 
 
import_dir 
string  
 
Custom path to a directory containing compiled files. When import_dir is not specified, the standard build directory under sketch_path is used. 
 
programmer 
string  
 
The programmer to use for upload. 
 
dry_run 
bool  
 
If set to true, the actual upload will not be performed but a trace output will be printed stdout. This is for debugging purposes. 
 
user_fields 
UploadUsingProgrammerRequest.UserFieldsEntry  
repeated 
User provided fields usually used by upload tools that need authentication or in any case fields that can be customized by the user at upload time and cannot be known previously. For more info: https://arduino.github.io/arduino-cli/latest/platform-specification/#user-provided-fields  
 
upload_properties 
string  
repeated 
List of custom upload properties. 
 
 
UploadUsingProgrammerRequest.UserFieldsEntry 
UploadUsingProgrammerResponse 
Field 
Type 
Label 
Description 
 
 
out_stream 
bytes  
 
The output of the upload process. 
 
err_stream 
bytes  
 
The error output of the upload process. 
 
 
UserField 
Field 
Type 
Label 
Description 
 
 
tool_id 
string  
 
Id of the tool that supports this field. 
 
name 
string  
 
Name used internally to store and retrieve this field. 
 
label 
string  
 
Label is the text shown to the user when they need to input this field. 
 
secret 
bool  
 
True if the value of the field must not be shown when typing, for example when the user inputs a network password. 
 
 
Top 
cc/arduino/cli/commands/v1/commands.proto 
ArchiveSketchRequest 
Field 
Type 
Label 
Description 
 
 
sketch_path 
string  
 
Absolute path to Sketch file or folder containing Sketch file. 
 
archive_path 
string  
 
Absolute path to archive that will be created or folder that will contain it. 
 
include_build_dir 
bool  
 
Specifies if build directory should be included in the archive. 
 
overwrite 
bool  
 
Allows to override an already existing archive. 
 
 
ArchiveSketchResponse 
CheckForArduinoCLIUpdatesRequest 
Field 
Type 
Label 
Description 
 
 
force_check 
bool  
 
Force the check, even if the configuration says not to check for updates. 
 
 
CheckForArduinoCLIUpdatesResponse 
Field 
Type 
Label 
Description 
 
 
newest_version 
string  
 
The latest version of Arduino CLI available, if bigger than the current version. 
 
 
CleanDownloadCacheDirectoryRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
The Arduino Core Service instance. 
 
 
CleanDownloadCacheDirectoryResponse 
CreateRequest 
CreateResponse 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
An Arduino Core instance. 
 
 
DestroyRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
The Arduino Core Service instance to destroy. 
 
 
DestroyResponse 
FailedInstanceInitError 
IndexUpdateReport 
InitRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
An Arduino Core instance. 
 
profile 
string  
 
Profile to use. 
 
sketch_path 
string  
 
The path where the sketch is stored. 
 
 
InitResponse 
InitResponse.Progress 
Field 
Type 
Label 
Description 
 
 
download_progress 
DownloadProgress  
 
Progress of the downloads of platforms and libraries index files. 
 
task_progress 
TaskProgress  
 
Describes the current stage of the initialization. 
 
 
LoadSketchRequest 
Field 
Type 
Label 
Description 
 
 
sketch_path 
string  
 
Absolute path to single sketch file or a sketch folder. 
 
 
LoadSketchResponse 
Field 
Type 
Label 
Description 
 
 
sketch 
Sketch  
 
The loaded sketch. 
 
 
NewSketchRequest 
Field 
Type 
Label 
Description 
 
 
sketch_name 
string  
 
New sketch name. 
 
sketch_dir 
string  
 
Optional: create a Sketch in this directory (used as "Sketchbook" directory). Default Sketchbook directory "directories.User" is used if sketch_dir is empty. 
 
overwrite 
bool  
 
Specificies if an existing .ino sketch should be overwritten. 
 
 
NewSketchResponse 
Field 
Type 
Label 
Description 
 
 
main_file 
string  
 
Absolute path to a main sketch file. 
 
 
SetSketchDefaultsRequest 
Field 
Type 
Label 
Description 
 
 
sketch_path 
string  
 
Absolute path to Sketch file or folder containing Sketch file. 
 
default_fqbn 
string  
 
The desired value for default_fqbn in project file (sketch.yaml). 
 
default_port_address 
string  
 
The desired value for default_port in project file (sketch.yaml). 
 
default_port_protocol 
string  
 
The desired value for default_protocol in project file (sketch.yaml). 
 
default_programmer 
string  
 
The desired value for default_programmer in project file (sketch.yaml). 
 
 
SetSketchDefaultsResponse 
Field 
Type 
Label 
Description 
 
 
default_fqbn 
string  
 
The value of default_fqnn that has been written in project file (sketch.yaml). 
 
default_port_address 
string  
 
The value of default_port that has been written in project file (sketch.yaml). 
 
default_port_protocol 
string  
 
The value of default_protocol that has been written in project file (sketch.yaml). 
 
default_programmer 
string  
 
The value of default_programmer that has been written in project file (sketch.yaml). 
 
 
UpdateIndexRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
ignore_custom_package_indexes 
bool  
 
If set to true user defined package indexes will not be updated. 
 
update_if_older_than_secs 
int64  
 
Only perform index update if the index file is older than this value in seconds. 
 
 
UpdateIndexResponse 
UpdateIndexResponse.Result 
Field 
Type 
Label 
Description 
 
 
updated_indexes 
IndexUpdateReport  
repeated 
The result of the packages index update. 
 
 
UpdateLibrariesIndexRequest 
Field 
Type 
Label 
Description 
 
 
instance 
Instance  
 
Arduino Core Service instance from the Init response. 
 
update_if_older_than_secs 
int64  
 
Only perform index update if the index file is older than this value in seconds. 
 
 
UpdateLibrariesIndexResponse 
UpdateLibrariesIndexResponse.Result 
Field 
Type 
Label 
Description 
 
 
libraries_index 
IndexUpdateReport  
 
The result of the libraries index update. 
 
 
VersionRequest 
VersionResponse 
Field 
Type 
Label 
Description 
 
 
version 
string  
 
The version of Arduino CLI in use. 
 
 
FailedInstanceInitReason 
Represent the reason why an instance initialization failed.
Name 
Number 
Description 
 
 
FAILED_INSTANCE_INIT_REASON_UNSPECIFIED 
0 
FAILED_INSTANCE_INIT_REASON_UNSPECIFIED the error reason is not specialized. 
 
FAILED_INSTANCE_INIT_REASON_INVALID_INDEX_URL 
1 
INVALID_INDEX_URL a package index url is malformed. 
 
FAILED_INSTANCE_INIT_REASON_INDEX_LOAD_ERROR 
2 
FAILED_INSTANCE_INIT_REASON_INDEX_LOAD_ERROR failure encountered while loading an index. 
 
FAILED_INSTANCE_INIT_REASON_TOOL_LOAD_ERROR 
3 
FAILED_INSTANCE_INIT_REASON_TOOL_LOAD_ERROR failure encountered while loading a tool. 
 
FAILED_INSTANCE_INIT_REASON_INDEX_DOWNLOAD_ERROR 
4 
FAILED_INSTANCE_INIT_REASON_INDEX_DOWNLOAD_ERROR failure encountered while downloading an index. 
 
 
IndexUpdateReport.Status 
The status represents the result of the index update.
Name 
Number 
Description 
 
 
STATUS_UNSPECIFIED 
0 
The status of the index update is unspecified. 
 
STATUS_UPDATED 
1 
The index has been successfully updated. 
 
STATUS_ALREADY_UP_TO_DATE 
2 
The index was already up to date. 
 
STATUS_FAILED 
3 
The index update failed. 
 
STATUS_SKIPPED 
4 
The index update was skipped. 
 
 
ArduinoCoreService 
The main Arduino Platform service API.
Scalar Value Types 
.proto Type 
Notes 
C++ 
Java 
Python 
Go 
C# 
PHP 
Ruby 
 
 
  double 
 
double 
double 
float 
float64 
double 
float 
Float 
 
  float 
 
float 
float 
float 
float32 
float 
float 
Float 
 
  int32 
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
  int64 
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
  uint32 
Uses variable-length encoding. 
uint32 
int 
int/long 
uint32 
uint 
integer 
Bignum or Fixnum (as required) 
 
  uint64 
Uses variable-length encoding. 
uint64 
long 
int/long 
uint64 
ulong 
integer/string 
Bignum or Fixnum (as required) 
 
  sint32 
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
  sint64 
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
  fixed32 
Always four bytes. More efficient than uint32 if values are often greater than 2^28. 
uint32 
int 
int 
uint32 
uint 
integer 
Bignum or Fixnum (as required) 
 
  fixed64 
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. 
uint64 
long 
int/long 
uint64 
ulong 
integer/string 
Bignum 
 
  sfixed32 
Always four bytes. 
int32 
int 
int 
int32 
int 
integer 
Bignum or Fixnum (as required) 
 
  sfixed64 
Always eight bytes. 
int64 
long 
int/long 
int64 
long 
integer/string 
Bignum 
 
  bool 
 
bool 
boolean 
boolean 
bool 
bool 
boolean 
TrueClass/FalseClass 
 
  string 
A string must always contain UTF-8 encoded or 7-bit ASCII text. 
string 
String 
str/unicode 
string 
string 
string 
String (UTF-8) 
 
  bytes 
May contain any arbitrary sequence of bytes. 
string 
ByteString 
str 
[]byte 
ByteString 
string 
String (ASCII-8BIT)