# Install arduino-cli with Homebrew, apk, chocolatey, MacPorts, Nix, pacman, scoop, winget

Arduino command-line interface. Version 1.5.1 via Homebrew; verified 2026-06-05.

## Install

```sh
sudo av install brew:arduino-cli
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install arduino-cli
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install arduino-cli
```

  Evidence: MacPorts ports tree: devel/arduino-cli/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add arduino-cli
```

  Evidence: Alpine Linux edge package indexes: arduino-cli from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#arduino-cli
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ar/arduino-cli/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S arduino-cli
```

  Evidence: Arch Linux sync databases: arduino-cli from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

### Windows

- Chocolatey (92%):

```sh
choco install arduino-cli
```

  Evidence: Chocolatey community package catalog: arduino-cli from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','ansicon'

- Scoop (92%):

```sh
scoop install main/arduino-cli
```

  Evidence: Scoop official bucket manifest trees: bucket/arduino-cli.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id ArduinoSA.CLI -e
```

  Evidence: Windows Package Manager source index: ArduinoSA.CLI from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:arduino-cli
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/arduino-cli>
- **Version:** 1.5.1
- **Source summary:** Arduino command-line interface
- **Homepage:** <https://arduino.github.io/arduino-cli/latest/>
- **Repository:** <https://github.com/arduino/arduino-cli>
- **Upstream docs:** <https://arduino.github.io/arduino-cli/latest>
- **License:** GPL-3.0-only
- **Source archive:** <https://github.com/arduino/arduino-cli/archive/refs/tags/v1.5.1.tar.gz>
- **Last updated:** 2026-06-05T11:31:14Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- arduino-cli (cli)
- arduino-cli (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.5.1
- Package-manager updated: 2026-06-05
- Local data: ok
- Upstream repository: https://github.com/arduino/arduino-cli
- Upstream latest detected: v1.5.1 (current)
## Project history and usage

Arduino CLI is Arduino's official command-line and machine-interface tool for board management, library management, sketch builds, board detection, and uploads.

### Project history

The official GitHub repository was created on 2018-08-08. The README describes Arduino CLI as an all-in-one command-line solution for Arduino-compatible boards and platforms, covering the core tasks that the Arduino IDE historically wrapped in a graphical workflow.

The project is written in Go and ships versioned user docs, a command reference, nightly builds, a gRPC reference, and security policy. Its release stream in the official GitHub API shows the 1.x line active through 2026.

### Adoption history

Arduino CLI is broadly packaged: the input package facts list Homebrew, Alpine, Chocolatey, MacPorts, Nix, Arch, Scoop, and winget. That breadth fits its role as the scriptable substrate for Arduino workflows in CI, editors, build systems, and headless devices.

The tool matters because it decouples Arduino development from the IDE. Package users can install one binary, initialize indexes, install cores and libraries, compile sketches, upload firmware, and integrate Arduino boards into reproducible automation.

### How it is used

Typical commands include `arduino-cli config init`, board and library manager operations, `arduino-cli compile`, and `arduino-cli upload`. The README points users to installation docs, a getting-started guide, and a full command reference.

The default config file is `arduino-cli.yaml`. Official docs say the default data directory is `${HOME}/.arduino15` on Linux and other Unix-like systems, `${HOME}/Library/Arduino15` on macOS, and `${HOME}/AppData/Local/Arduino15` on Windows, so the default config paths follow from those data directories.

### Why package nerds care

Arduino CLI is important package-manager infrastructure because it turns a huge embedded ecosystem into a stable command-line interface that other tools can call.

It is also a good example of an official vendor CLI that replaced ad hoc IDE automation with a documented binary, config schema, command reference, nightly builds, and multi-OS package distribution.

### Timeline

- 2018-08-08: GitHub repository created.
- 2021-09-22: Earliest release returned in the current GitHub releases API page for this batch, 0.19.1-rc1.
- 2026-06-05: Latest GitHub release observed for this batch, v1.5.1.

### Related projects

- The CLI serves the Arduino boards/platforms ecosystem and Arduino-compatible board packages.
- The docs expose command and gRPC interfaces used by editors, CI systems, and other developer tools around Arduino.

### Sources

- <https://api.github.com/repos/arduino/arduino-cli>
- <https://api.github.com/repos/arduino/arduino-cli/releases>
- <https://arduino.github.io/arduino-cli/latest/>
- <https://arduino.github.io/arduino-cli/latest/configuration/>
- <https://github.com/arduino/arduino-cli>


## Security Notes

No matching local secret-handling manifest was found for arduino-cli. Nucleus package metadata is still published here so future coverage has a stable package URL.



## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Linux: ${HOME}/.arduino15/arduino-cli.yaml
- macOS: ${HOME}/Library/Arduino15/arduino-cli.yaml
- Windows: ${HOME}/AppData/Local/Arduino15/arduino-cli.yaml
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** arduino-cli
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - arduino-cli: normalized package name match | nixpkgs package indexes: pkgs/by-name/ar/arduino-cli/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - arduino-cli - 1.4.1-r3: normalized package name match | Alpine Linux edge package indexes: arduino-cli from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Arduino command line tool | https://github.com/arduino/arduino-cli
- pacman - arduino-cli - 1.4.1-1: normalized package name match | Arch Linux sync databases: arduino-cli from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Arduino command line interface | https://github.com/arduino/arduino-cli
- MacPorts - arduino-cli: normalized package name match | MacPorts ports tree: devel/arduino-cli/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - arduino-cli: normalized package name match | Chocolatey community package catalog: arduino-cli from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','ansicon'
- Scoop - main/arduino-cli: normalized package name match | Scoop official bucket manifest trees: bucket/arduino-cli.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - ArduinoSA.CLI: normalized package name match | Windows Package Manager source index: ArduinoSA.CLI from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [arm-none-eabi-binutils](https://www.automicvault.com/pkg/brew/arm-none-eabi-binutils/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [arm-none-eabi-gcc](https://www.automicvault.com/pkg/brew/arm-none-eabi-gcc/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [arm-none-eabi-gdb](https://www.automicvault.com/pkg/brew/arm-none-eabi-gdb/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [avrdude](https://www.automicvault.com/pkg/brew/avrdude/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [bossa](https://www.automicvault.com/pkg/brew/bossa/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [cargo-binutils](https://www.automicvault.com/pkg/brew/cargo-binutils/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [dtc](https://www.automicvault.com/pkg/brew/dtc/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [elf2uf2-rs](https://www.automicvault.com/pkg/brew/elf2uf2-rs/) - Shares av.db curated category or tags: cli, developer-tools, embedded.
- [teensy_loader_cli](https://www.automicvault.com/pkg/brew/teensy-loader-cli/) - Local package facts share a topical domain. Shared terms: cli, command-line, developer, developer-tools, embedded.
- [apibuilder-cli](https://www.automicvault.com/pkg/brew/apibuilder-cli/) - Local package facts share a topical domain. Shared terms: cli, command-line, developer, developer-tools, interface.

## Combined YAML source

View the package source record on GitHub. [combined/arduino-cli.yml](https://github.com/automic-vault/db/blob/main/combined/arduino-cli.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
