MCPcopy
hub / github.com/arduino/arduino-cli

github.com/arduino/arduino-cli @v1.5.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.5.1 ↗
4,938 symbols 17,597 edges 396 files 1,469 documented · 30%
README

arduino-cli

cli-logo

Arduino CLI is an all-in-one solution that provides Boards/Library Managers, sketch builder, board detection, uploader, and many other tools needed to use any Arduino compatible board and platform from command line or machine interfaces.

Test Go status Publish Nightly Build status Deploy Website status Codecov

Docs

For guidance on installation and development, see the User documentation.

Quickstart

  1. Install the Arduino CLI
  2. Follow the Getting Started guide to check out what the CLI can do
  3. Browse the Commands reference to see all the available commands
  4. Should you have an issue, read the FAQ page

How to contribute

Contributions are welcome!

Please read the document How to contribute which will show you how to build the source code, run the tests, and contribute your changes to the project.

:sparkles: Thanks to all our contributors! :sparkles:

Testing builds

Nightly builds are available for testing.

Security

If you think you found a vulnerability or other security-related bug in the Arduino CLI, please read our security policy and report the bug to our Security Team 🛡️ Thank you!

e-mail contact: security@arduino.cc

License

Arduino CLI is licensed under the GPL-3.0 license.

You can be released from the requirements of the above license by purchasing a commercial license. Buying such a license is mandatory if you want to modify or otherwise use the software for commercial activities involving the Arduino software without disclosing the source code of your own applications. To purchase a commercial license, send an email to license@arduino.cc

Extension points exported contracts — how you extend this code

CommandError (Interface)
CommandError is an error that may be converted into a gRPC status. [51 implementers]
commands/cmderrors/cmderrors.go
Result (Interface)
Result is anything more complex than a sentence that needs to be printed for the user. [33 implementers]
internal/cli/feedback/feedback.go
InstanceCommand (Interface)
InstanceCommand is an interface that represents a gRPC command with a gRPC Instance. [40 implementers]
rpc/cc/arduino/cli/commands/v1/common.go
Locale (Interface)
(no doc) [7 implementers]
internal/i18n/i18n.go
Map (Interface)
Map is a map that keeps ordering insertion.
internal/orderedmap/orderedmap.go
Future (Interface)
Future is an object that holds a result value. The value may be read and written asynchronously.
internal/algorithms/channels.go
CompilerOutputParserCB (FuncType)
CompilerOutputParserCB is a callback function that is called to feed a parser with the plain-text compiler output.
internal/arduino/builder/internal/diagnostics/parser.go
ErrorResult (Interface)
ErrorResult is a result embedding also an error. In case of textual output the error will be printed on stderr. [1 implementers]
internal/cli/feedback/feedback.go

Core symbols most depended-on inside this repo

Run
called by 1343
internal/integrationtest/subtests.go
Tr
called by 1118
internal/i18n/i18n.go
String
called by 898
internal/version/version.go
Contains
called by 643
internal/arduino/libraries/librarieslist.go
Set
called by 529
internal/orderedmap/orderedmap.go
CleanUp
called by 254
internal/integrationtest/arduino-cli.go
CreateArduinoCLIWithEnvironment
called by 244
internal/integrationtest/arduino-cli.go
Get
called by 236
internal/i18n/i18n.go

Shape

Method 2,975
Function 1,318
Struct 567
TypeAlias 38
Interface 35
FuncType 5

Languages

Go100%
Python1%

Modules by API surface

rpc/cc/arduino/cli/commands/v1/lib.pb.go401 symbols
rpc/cc/arduino/cli/commands/v1/commands.pb.go350 symbols
rpc/cc/arduino/cli/commands/v1/commands_grpc.pb.go286 symbols
rpc/cc/arduino/cli/commands/v1/common.pb.go236 symbols
rpc/cc/arduino/cli/commands/v1/board.pb.go213 symbols
rpc/cc/arduino/cli/commands/v1/settings.pb.go198 symbols
commands/cmderrors/cmderrors.go193 symbols
rpc/cc/arduino/cli/commands/v1/core.pb.go167 symbols
rpc/cc/arduino/cli/commands/v1/upload.pb.go157 symbols
rpc/cc/arduino/cli/commands/v1/compile.pb.go118 symbols
internal/cli/feedback/result/rpc.go115 symbols
rpc/cc/arduino/cli/commands/v1/debug.pb.go101 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
charm.land/bubbles/v2v2.0.0 · 1×
charm.land/bubbletea/v2v2.0.1 · 1×
charm.land/lipgloss/v2v2.0.0 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/monitoringv1.24.3 · 1×
cloud.google.com/go/storagev1.61.3 · 1×
dario.cat/mergov1.0.0 · 1×

For agents

$ claude mcp add arduino-cli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact