Installation¶
BenchCI is distributed via PyPI and can be installed using pip.
BenchCI access is tied to a BenchCI account and workspace.
Install BenchCI¶
Install directly from PyPI:
pip install benchci
Verify the CLI is available:
benchci --help
Upgrade BenchCI¶
pip install --upgrade benchci
Create or access your workspace¶
Use the BenchCI dashboard:
https://app.benchci.dev
For early access customers, the BenchCI team activates paid workspace access manually after onboarding or invoicing.
Log in¶
Log in with your BenchCI email/password account:
benchci login
Check the stored session:
benchci whoami
Remove the session:
benchci logout
Verify your environment¶
Run diagnostics:
benchci doctor
You can also check a specific bench file:
benchci doctor --bench bench.yaml
Check agent reachability:
benchci doctor --agent http://192.168.1.50:8080
If the agent requires authentication:
benchci doctor --agent http://192.168.1.50:8080 --token "$BENCHCI_AGENT_TOKEN"
Install on a hardware-connected machine¶
Install BenchCI on the machine that has direct access to hardware:
pip install benchci
Start the Agent:
benchci agent serve
To require authentication:
export BENCHCI_AGENT_TOKEN=secure-token
benchci agent serve
Install on CI or runner machines¶
A CI runner only needs the BenchCI CLI and network access to the Agent or the BenchCI backend. It does not need direct hardware access for remote runs.
pip install benchci
Example remote Agent run:
benchci run \
--agent "$BENCHCI_AGENT_URL" \
--bench bench.yaml \
--suite suite.yaml \
--artifact build/fw.elf \
--token "$BENCHCI_AGENT_TOKEN"
Example registered-bench remote run:
benchci run \
--agent "$BENCHCI_AGENT_URL" \
--bench-id my-bench \
--suite suite.yaml \
--artifact build/fw.elf \
--token "$BENCHCI_AGENT_TOKEN"
Example Cloud Mode run:
benchci login
benchci run --cloud \
--bench-id my-cloud-bench \
--suite suite.yaml \
--artifact build/fw.elf
External tools¶
BenchCI uses Python packages and, depending on your bench, external system tools.
Common Python dependencies include:
pydanticpyyamltyperhttpxfastapiuvicorn
Transport and GPIO dependencies include:
pyserialpymodbuspython-cangpiodon Linux
Flashing tools may include:
openocdSTM32_Programmer_CLIJLinkExeorJLink.exeesptool.py
Use benchci doctor to verify what your current bench needs.