Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
dbbda6b
docs: update README and add user documentation
dido18 Nov 10, 2025
a501b36
docs: enhance contribution guidelines in README
dido18 Nov 10, 2025
333ce2f
docs: tidy up README and user documentation formatting
dido18 Nov 10, 2025
a1bfdd8
docs: enhance contributor guide with detailed contribution methods an…
dido18 Nov 10, 2025
a85d3f9
docs: update development guide with additional instructions and resou…
dido18 Nov 10, 2025
f4117d8
Update docs/contributor-guide/development.md
dido18 Nov 11, 2025
3a65f23
Update docs/contributor-guide/development.md
dido18 Nov 11, 2025
86c2ba0
Update docs/contributor-guide/development.md
dido18 Nov 11, 2025
3ec35e9
Update docs/contributor-guide/development.md
dido18 Nov 11, 2025
608e486
Update docs/contributor-guide/issues.md
dido18 Nov 11, 2025
f36b0b6
Update docs/contributor-guide/issues.md
dido18 Nov 11, 2025
5e7502a
Update docs/user-documentation.md
dido18 Nov 11, 2025
2894d79
Update README.md
dido18 Nov 11, 2025
a7c6c8f
Update README.md
dido18 Nov 11, 2025
bc7ef20
Update README.md
dido18 Nov 11, 2025
506dc89
Update README.md
dido18 Nov 11, 2025
506c000
docs: clarify terminology in Docker images registry section of user d…
dido18 Nov 11, 2025
2d4f461
docs: simplify description of arduino-app-cli in README.md
dido18 Nov 11, 2025
901f8de
docs: update contributor guide for clarity and accuracy
dido18 Nov 11, 2025
4b5e754
docs: update development guide and issue report instructions for clarity
dido18 Nov 11, 2025
511aba4
docs: restructure environment variables section for clarity and organ…
dido18 Nov 11, 2025
e2c472a
docs: improve clarity and consistency in user documentation
dido18 Nov 11, 2025
1643009
docs: add bug report and feature request issue templates for better u…
dido18 Nov 11, 2025
50c3cf7
docs: improve formatting and clarity in environment variables section
dido18 Nov 11, 2025
838c8a7
docs: update contribution methods for testing section in CONTRIBUTING.md
dido18 Nov 11, 2025
10898fd
docs: fix formatting in contribution methods table for consistency
dido18 Nov 11, 2025
b496ffa
chore: update cli messages (#61)
dido18 Nov 11, 2025
d16133c
Add Serial Number to Avahi Service for Board Deduplication (#48)
mirkoCrobu Nov 11, 2025
e7ac2da
Improve the arduino-app-cli version command by adding the "server ver…
martacarbone Nov 11, 2025
1de2d4c
docs: clarify description of temporary files in user documentation
dido18 Nov 11, 2025
7b26ce3
fix: correct contributors link in README.md
dido18 Nov 12, 2025
2d62074
feat: enhance issue templates by adding additional context field and …
dido18 Nov 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 25 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,47 @@
# Arduino App CLI
# arduino-app-cli

`arduino-app-cli` is a command line tool and a service running on Arduino UNO Q boards, that:

- manages and runs Arduino Apps on the board (both Linux and microcontroller parts)
- provides multiple APIs to perform actions and fetch data, used by the front-end (ArduinoAppsLab)
- auto-updates itself and other components

## Environment Variables
[![Test Go status](https://github.com/arduino/arduino-app-cli/actions/workflows/go-test.yml/badge.svg)](https://github.com/arduino/arduino-app-cli/actions/workflows/go-test.yml)

The following environment variables are used to configure `arduino-app-cli`:
## Docs

### Application Directories
For guidance on installation and development, see the [User documentation].

- **`ARDUINO_APP_CLI__APPS_DIR`** Path to the directory where Arduino Apps created by the user are stored.\
**Default:** `/home/arduino/ArduinoApps`
## Quickstart

- **`ARDUINO_APP_CLI__DATA_DIR`** Path to the directory where internal data is stored.\
**Default:** `/home/arduino/.local/share/arduino-app-cli`\
This folder contains:
- **`examples/`** default example Apps (_e.g._ `/home/arduino/.local/share/arduino-app-cli/examples`)
- **`assets/`** contains a subfolder for each asset version (_e.g._ `/home/arduino/.local/share/arduino-app-cli/assets/0.4.5`)
- Each asset folder includes:
- `bricks-list.yaml`
- `models-list.yaml`
- **other data** such as `properties.msgpack` containing variable values
// TODO

- **`ARDUINO_APP_BRICKS__CUSTOM_MODEL_DIR`** Path to the directory where custom models are stored.\
**Default:** `$HOME/.arduino-bricks/ei-models`\
(_e.g._ `/home/arduino/.arduino-bricks/ei-models`)
## How to contribute

---
Contributions are welcome!

### Execution Settings
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.

- **`ARDUINO_APP_CLI__ALLOW_ROOT`** Allow running `arduino-app-cli` as root.\
**Default:** `false` **Not recommended to set to true.**
:sparkles: Thanks to all our [contributors]! :sparkles:

---
## Security

### External Services
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!

- **`LIBRARIES_API_URL`** URL of the external service used to search libraries.\
**Default:** `https://api2.arduino.cc/libraries/v1/libraries`
e-mail contact: security@arduino.cc

---
## License

### Docker Settings
Arduino CLI is licensed under the GPL-3.0 license.

- **`DOCKER_REGISTRY_BASE`** Docker registry used to pull images.\
**Default:** `ghcr.io/arduino/`
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

- **`DOCKER_PYTHON_BASE_IMAGE`** Tag of the Docker image for the Python runner.\
**Default:** `app-bricks/python-apps-base:<RUNNER_VERSION>`

### App folder and persistent data

When running an app, persistent files will be saved in the `data` folder inside the app folder; other supporting files, including the Python venv are saved in the `.cache` folder inside the app folder.

### Docker images registry

Arduino Apps bricks might required a docker image, in that case the orchestrator will pull those from the registry configured with the `DOCKER_REGISTRY_BASE` environment variable. By default this points to an Arduino GitHub Container Registry (ghcr.io/arduino).

The only image that needs to be referenced directly is the base Python image (`DOCKER_PYTHON_BASE_IMAGE`), all other containers can be downloaded automatically by the orchestrator depending on the bricks specified as dependencies in the app.yml file.
[user documentation]: https://github.com/arduino/arduino-app-cli/docs/user-documentation.md
[how to contribute]: https://arduino.github.io/arduino-app-cli/latest/CONTRIBUTING/
[security policy]: https://github.com/arduino/arduino-app-cli/security/policy
[contributors]: https://github.com/arduino/arduino-cli/graphs/contributors
25 changes: 25 additions & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<!-- Source: https://github.com/arduino/tooling-project-assets/blob/main/documentation-templates/contributor-guide/general/CONTRIBUTING.md -->

# Contributor Guide

Thanks for your interest in contributing to this project!

There are several ways you can get involved:

| Type of contribution | Contribution method |
| ----------------------------------------- | ---------------------------------------------------------------- |
| - Support<br/>- Question<br/>- Discussion | Post on the [**Arduino Forum**][forum] |
| - Bug report<br/>- Feature request | Issue report (see the guide [**here**][issues]) |
| Testing | Beta testing, PR review (see the guide [**here**][beta-testing]) |
| - Bug fix<br/>- Enhancement | Pull request (see the guide [**here**][prs]) |
| Monetary | [Buy official products][store] |

[forum]: https://forum.arduino.cc
[issues]: contributor-guide/issues.md#issue-report-guide
[beta-testing]: contributor-guide/beta-testing.md#beta-testing-guide
[prs]: contributor-guide/pull-requests.md#pull-request-guide
[store]: https://store.arduino.cc

## Resources

- [**Development Guide**](development.md#development-guide)
Binary file added docs/contributor-guide/assets/checks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions docs/contributor-guide/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<!-- Source: https://github.com/arduino/tooling-project-assets/blob/main/documentation-templates/contributor-guide/other/development.md -->

# Development Guide

## Prerequisites

The following development tools must be available in your local environment:

- [Go](https://go.dev/dl/)
- [Taskfile](https://taskfile.dev/)
- [ddb client]//https://developer.android.com/tools/adb) [optionally]

## Building the Project

- `task init`

## Uploading the arduino-app-cli into the board
Connect an [Arduino UNO Q](https://www.arduino.cc/product-uno-q) board to the PC via USB.

- `task board:install` it installs the current `arduino-app-cli` inside the board (`adb` is needed). The password of the `ardiuno` username of the board is requested.

## Running Checks

Checks and tests are set up to ensure the project content is functional and compliant with the established standards.

- `task fmt-check`
- `task test`

## Automatic Corrections

Tools are provided to automatically bring the project into compliance with some of the required checks.

- `task lint`
- `task fmt`
33 changes: 33 additions & 0 deletions docs/contributor-guide/issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!-- Source: https://github.com/arduino/tooling-project-assets/blob/main/documentation-templates/contributor-guide/general/contributor-guide/issues.md -->

# Issue Report Guide

---

❗ Do you need help or have a question about using this project? Support requests should be made to the [Arduino Forum](https://forum.arduino.cc).

---

High quality bug reports and feature requests are valuable contributions to this project. These can be made by submitting an issue report to the project's GitHub repository:

https://github.com/arduino/TODO_REPO_NAME/issues/new/choose

## Before Reporting an Issue

- Give the latest development version a test drive to see if your issue was already resolved:<br />
<!-- TODO: Nightly build link -->
- Search [existing pull requests and issues](https://github.com/arduino/TODO_REPO_NAME/issues?q=) to see if it was already reported.<br />
If you have additional information to provide about an existing issue, please comment there instead of creating a duplicate. You can use [GitHub's "Reactions" feature](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) if you only want to express support 👍.

## Qualities of an Excellent Report

- Concise and descriptive issue title.<br />
Vague titles make it difficult to decipher the purpose of the issue when looking through the list of reports, which might result in your issue not being given proper attention.
- Describe the issue and what behavior you were expecting.<br />
Include the full and exact text of any relevant error or warning messages you might have encountered.
- Provide a full set of steps necessary to reproduce the issue.<br />
Demonstration code or commands should be complete and simplified to the minimum necessary to reproduce the issue.
- Be responsive.<br />
We may need you to provide additional information in order to investigate and resolve the issue.<br />
Make sure your GitHub account is configured so that you will receive notifications of responses to your issue report.
- If you find a solution to your problem, please comment on your issue report with an explanation of how you were able to fix it, then close the issue.
Loading
Loading