Getting Started
Prerequisites
- Windows: Visual Studio 2022 with C++ desktop development
- Linux: GCC 11+, CMake 3.20+
- vcpkg: dependency management
- Python 3: test tooling
- Git: source control
Install Dependencies
Linux (Debian/Ubuntu):
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git curl zip unzip tar pkg-config python3 python3-pipWindows (PowerShell):
winget install Kitware.CMake
winget install Ninja-build.Ninja
winget install Git.Git
winget install Python.Python.3.12Install Visual Studio 2022 (or Build Tools) with the Desktop development with C++ workload.
Install vcpkg (Linux/macOS):
git clone https://github.com/microsoft/vcpkg.git "$HOME/vcpkg"
"$HOME/vcpkg/bootstrap-vcpkg.sh"
echo 'export VCPKG_ROOT="$HOME/vcpkg"' >> ~/.bashrc
export VCPKG_ROOT="$HOME/vcpkg"
test -f "$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"Install vcpkg (Windows):
git clone https://github.com/microsoft/vcpkg.git $env:USERPROFILE\vcpkg
& "$env:USERPROFILE\vcpkg\bootstrap-vcpkg.bat"
[Environment]::SetEnvironmentVariable("VCPKG_ROOT", "$env:USERPROFILE\\vcpkg", "User")
$env:VCPKG_ROOT = [Environment]::GetEnvironmentVariable("VCPKG_ROOT", "User")
Test-Path "$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake"Quick Start (Preset-First)
Linux/macOS:
git clone https://github.com/anolishq/anolis.git
cd anolis
git submodule update --init --recursive
cmake --preset dev-release
cmake --build --preset dev-release --parallel
ctest --preset dev-release
./build/dev-release/core/anolis-runtime --config ./config/anolis-runtime.yamlBefore launching, verify providers[].command paths in config/anolis-runtime.yaml match your local platform/build outputs.
Windows (PowerShell):
git clone https://github.com/anolishq/anolis.git
Set-Location anolis
git submodule update --init --recursive
cmake --preset dev-windows-release
cmake --build --preset dev-windows-release --parallel
ctest --preset dev-windows-release
.\build\dev-windows-release\core\Release\anolis-runtime.exe --config .\config\anolis-runtime.yamlFor commissioning-managed systems, use anolis-workbench to prepare runtime YAML and launch flows.
Use presets directly when needed:
cmake --list-presets
ctest --list-presetsRuntime API Smoke Check
# List devices
curl -s http://127.0.0.1:8080/v0/devices | jq
# Read state
curl -s http://127.0.0.1:8080/v0/state/sim0/motorctl0 | jqSee http-api.md for full API details.
Local Verification
Run the focused local verification bundle before lab work or branch handoff:
bash tools/verify-local.shOperator UI
The Operator UI has been extracted to anolis-hq/anolis-operator-ui. Clone that repo and follow its README to run the standalone tool.
Automation Quickstart
Enable automation in runtime config:
automation:
enabled: true
behavior_tree: ./behaviors/demo.xml
tick_rate_hz: 10
manual_gating_policy: BLOCK
parameters:
- name: temp_setpoint
type: double
default: 25.0
min: 10.0
max: 50.0Update a parameter at runtime:
curl -s -X POST http://127.0.0.1:8080/v0/parameters \
-H "Content-Type: application/json" \
-d '{"name": "temp_setpoint", "value": 30.0}' | jqSwitch to AUTO mode:
curl -s -X POST http://127.0.0.1:8080/v0/mode \
-H "Content-Type: application/json" \
-d '{"mode": "AUTO"}' | jqNext Steps
- For provider integration and safety contracts: providers.md
- For runtime config details: configuration.md
- For contributor workflow: CONTRIBUTING.md
