Metadata-Version: 2.4
Name: alloy-cli
Version: 0.2.0
Summary: Alloy multi-vendor bare-metal runtime CLI: scaffold, build, flash, and monitor projects.
Project-URL: Homepage, https://github.com/Alloy-Embedded/alloy
Project-URL: Source, https://github.com/Alloy-Embedded/alloy
Project-URL: Issues, https://github.com/Alloy-Embedded/alloy/issues
Author: Alloy Contributors
License: Apache-2.0
Keywords: alloy,arm,bare-metal,cortex-m,embedded,mcu
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Embedded Systems
Requires-Python: >=3.10
Requires-Dist: jinja2>=3.1
Requires-Dist: tomli>=2.0; python_version < '3.11'
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# alloy-cli

User-facing entry point for the Alloy multi-vendor bare-metal runtime.

This package provides the `alloy` command. Phase 1 wraps the existing
`scripts/alloyctl.py` shipped inside an Alloy runtime checkout. Later phases add an SDK
manager, a toolchain manager, project scaffolding, and editor integration so that a fresh
machine can go from zero to a flashing board with a single install command.

The full design lives in
[`openspec/changes/add-project-scaffolding-cli`](../../openspec/changes/add-project-scaffolding-cli/).

## Install (development)

```bash
pipx install --editable tools/alloy-cli
# or, with uv:
uv tool install --editable tools/alloy-cli
```

## Usage

```bash
alloy --help
alloy doctor
alloy configure --board nucleo_g071rb
alloy flash --board nucleo_g071rb --target blink --build-first
```

The CLI locates the runtime checkout in this order:

1. The `ALLOY_ROOT` environment variable, when set.
2. The current working directory, walking up until `scripts/alloyctl.py` and
   `cmake/board_manifest.cmake` are found.

Set `ALLOY_ROOT` when invoking `alloy` from outside a checkout, e.g. inside a downstream
project tree:

```bash
export ALLOY_ROOT=$HOME/code/alloy
alloy doctor
```

A future release will replace this lookup with a versioned cache under `~/.alloy/sdk/`.
