awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
arduino avatar

arduino/arduino-cli

0
View on GitHub↗
4,936 stars·482 forks·Go·GPL-3.0·24 viewsarduino.github.io/arduino-cli/latest↗

Arduino Cli

Arduino CLI is a command line interface for compiling, uploading, and managing libraries and board cores for Arduino-compatible hardware. It functions as a microcontroller toolchain manager and hardware programming tool, providing utilities to discover and install the platform definitions and compilers required for various hardware architectures.

The project features an RPC-enabled development daemon that allows external programs to trigger internal tool operations and manage automated electronics workflows programmatically. It also includes an interactive hardware debugger for real-time troubleshooting of code running on physical devices.

The tool covers board and library management, including dependency analysis, index synchronization, and the integration of third-party repositories. Its build and deployment capabilities encompass source code compilation, binary uploading, and bootloader installation, supported by serial output monitoring and connected hardware detection.

The utility provides shell completion generation and manages environment settings through a file-based configuration system.

Features

  • Microcontroller Programming - Compiles source code into binaries and uploads them to Arduino compatible microcontrollers via a command line interface.
  • Toolchain Managers - Automates the provisioning and version management of compilers, board definitions, and platform cores.
  • Library Managers - Provides utilities for searching, installing, and updating software libraries to extend microcontroller project functionality.
  • Index-Based Installations - Uses remote JSON registries as indices to discover and install versioned hardware cores and libraries.
  • Board Support Packages - Employs external platform packages to define hardware-dependent settings and memory maps for various boards.
  • Core Lifecycle Management - Manages the complete installation, update, and removal lifecycle of hardware platform cores and toolchains.
  • Library Version Resolution - Resolves compatible library version sets and nested dependencies to ensure software libraries work together.
  • Arduino Framework Integrations - Manages the search, installation, and update of software libraries used in Arduino sketches.
  • Board Managers - Provides a utility to discover and install hardware cores and platform definitions for various compatible boards.
  • Serial Port Interfaces - Establishes and manages data connections over serial communication ports for binary uploads and monitoring.
  • Microcontroller Command Line Interfaces - Provides a comprehensive command line interface for compiling, uploading, and managing libraries and board cores.
  • Hardware Binary Uploads - Transfers compiled machine-readable binaries to compatible microcontroller hardware using the command line interface.
  • Compiler Toolchain Management - Orchestrates multiple compilers and linkers with board-specific flags to target different hardware architectures.
  • External Library Installers - Implements capabilities to search for and install external software libraries from remote registries.
  • Source Code Compilers - Transforms high-level source code into machine code specifically optimized for various hardware boards.
  • Hardware Daemons - Runs as a background process providing an RPC interface for programmatic control of hardware toolchains.
  • Library Uninstallation - Provides a command-line interface for removing installed software libraries from the local environment.
  • Update Checking - Identifies installed board cores and libraries that have newer versions available for upgrade.
  • Core Search Utilities - Provides keyword-based discovery tools to locate compatible hardware platform packages and required drivers.
  • Index Synchronization - Synchronizes local package lists with remote hardware repositories to keep available board definitions current.
  • Package Index Synchronizers - Refreshes the local list of available libraries to ensure the latest versions and metadata are used.
  • Version Upgrades - Updates installed board cores and libraries to their latest available versions for new features and fixes.
  • Workflow Automation - Uses a daemon and RPC interface to programmatically control the compilation and flashing of hardware.
  • Microcontroller Flash Programmers - Flashes binaries to microcontrollers and burns bootloaders using external hardware programmers.
  • Embedded Systems Debugging - Supports real-time serial output monitoring and interactive debugging sessions for troubleshooting physical hardware.
  • Third-Party Hardware Repositories - Integrates external registries and JSON indices to support non-standard hardware cores.
  • Programmatic API Interfaces - Provides a programmatic gRPC API that enables external programs to trigger internal tool operations.
  • gRPC Server Implementations - Implements a gRPC server that allows the CLI to operate as a background process for handling remote requests.
  • Hardware Debugging Environments - Provides an interactive environment to pause execution and inspect memory on physical hardware in real time.
  • Daemon API Interfaces - Provides a remote procedure call interface designed specifically for controlling and managing the background daemon process.
  • Library Dependency Managers - Provides tools for analyzing required software library dependencies to ensure consistent project builds.
  • Serial Communication Monitors - Opens communication ports to receive and display real-time text data sent from connected boards.
  • Hardware Interaction - Provides an official CLI for Arduino development.

Star history

Star history chart for arduino/arduino-cliStar history chart for arduino/arduino-cli

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does arduino/arduino-cli do?

Arduino CLI is a command line interface for compiling, uploading, and managing libraries and board cores for Arduino-compatible hardware. It functions as a microcontroller toolchain manager and hardware programming tool, providing utilities to discover and install the platform definitions and compilers required for various hardware architectures.

What are the main features of arduino/arduino-cli?

The main features of arduino/arduino-cli are: Microcontroller Programming, Toolchain Managers, Library Managers, Index-Based Installations, Board Support Packages, Core Lifecycle Management, Library Version Resolution, Arduino Framework Integrations.

What are some open-source alternatives to arduino/arduino-cli?

Open-source alternatives to arduino/arduino-cli include: swiftlang/swift-evolution — Swift Evolution serves as the central governance and design platform for the Swift programming language. It provides a… swiftlang/swift-package-manager — Swift Package Manager is a build tool, dependency manager, and registry client for the Swift language. It transforms… spack/spack — Spack is a source-based build system and package manager designed for high-performance computing. It serves as a… crablang/crab — Crab is a memory-safe systems programming language and ahead-of-time compiler designed for high-performance software.… adafruit/circuitpython — CircuitPython is a specialized derivative of the MicroPython runtime designed as an embedded Python interpreter for… rust-lang/cargo — Cargo is the official build system and package manager for the Rust programming language. It provides a unified…

Open-source alternatives to Arduino Cli

Similar open-source projects, ranked by how many features they share with Arduino Cli.
  • swiftlang/swift-evolutionswiftlang avatar

    swiftlang/swift-evolution

    15,854View on GitHub↗

    Swift Evolution serves as the central governance and design platform for the Swift programming language. It provides a structured, collaborative framework for tracking, discussing, and managing the formal proposals and technical goals that define the language's syntax, semantics, and core features. By maintaining a comprehensive collection of design documentation, the project ensures the long-term stability and consistency of the language as it matures. The repository acts as the primary hub for the language's evolution, coordinating community feedback and technical decisions through a transp

    Markdown
    View on GitHub↗15,854
  • swiftlang/swift-package-managerswiftlang avatar

    swiftlang/swift-package-manager

    10,172View on GitHub↗

    Swift Package Manager is a build tool, dependency manager, and registry client for the Swift language. It transforms source files and external dependencies into executable binaries or libraries and manages the resolution, download, and integration of external code libraries. The project provides a client for publishing and versioning signed code packages via a remote registry, ensuring identity verification through digital signing. It also includes a source code formatter to standardize code style and indentation. The system covers a broad range of capabilities including modular code distrib

    Swift
    View on GitHub↗10,172
  • spack/spackspack avatar

    spack/spack

    5,076View on GitHub↗

    Spack is a source-based build system and package manager designed for high-performance computing. It serves as a multi-version software manager and a logic-based dependency solver that handles complex software stacks across various platforms and hardware architectures. The project distinguishes itself by managing multiple compilers and toolchains to target specific hardware. It allows the coexistence of multiple versions and configurations of the same software package on a single system by utilizing prefix-based isolation and unprivileged deployment. The system provides comprehensive capabil

    Python
    View on GitHub↗5,076
  • crablang/crabcrablang avatar

    crablang/crab

    5,090View on GitHub↗

    Crab is a memory-safe systems programming language and ahead-of-time compiler designed for high-performance software. It utilizes a type system based on strict ownership and borrowing rules to prevent memory access errors at compile time. The toolchain includes an automated documentation generator that produces technical reference manuals and API guides by parsing structured source code annotations. It also features a dependency management tool to resolve external library graphs and ensure consistent project builds. The project covers software build automation, static type checking, and mult

    Rust
    View on GitHub↗5,090
See all 30 alternatives to Arduino Cli→