Skip to main content
CruciHiL ships a single crucihil command with subcommands for every workflow.
crucihil --help

Commands

CommandDescription
crucihil runRun a YAML test suite against a rig TOML
crucihil analyzeExtract the signal interface of a C/C++ SWC using tree-sitter + AI
crucihil discoverProbe local hardware and generate a rig TOML using AI
crucihil initInteractive wizard — create a rig TOML by answering prompts
crucihil scaffoldGenerate a test project, custom backend stub, or runnable example
crucihil agentStart the local agent daemon — connects to cloud via WebSocket
crucihil stubGenerate missing Python stub functions for a YAML suite
crucihil deregisterRemove a rig’s saved API key from ~/.crucihil/credentials.toml
crucihil versionPrint the installed version

Exit codes

All commands follow these exit code conventions:
CodeMeaning
0Success — all tests passed (for run), or operation completed
1One or more tests failed or errored
2Framework error — bad config, missing files, setup failure

Global options

Most commands support:
OptionDescription
--verbose / -vEnable debug logging or per-test status output
--helpShow help for a specific command

Configuration locations

FilePurpose
rigs/*.tomlRig configuration — hardware backends, DBC paths, ECU addresses
suites/*.yamlTest suite manifests — test IDs, metadata, setup/teardown
tests/*.pyPython test functions
~/.crucihil/credentials.tomlSaved agent API keys (written by crucihil agent on first boot)

Typical workflow

# 1. Install
pip install 'crucihil[analyze]'

# 2. Create a rig config
crucihil init
# or: crucihil discover  (AI-assisted, probes hardware)

# 3. Scaffold a test project
crucihil scaffold --rig rigs/my_rig.toml

# 4. Fill in test assertions, then run
crucihil run --suite suites/smoke.yaml --rig rigs/virtual.toml

# 5. Analyze a firmware component
crucihil analyze \
  --source swc/brake_controller \
  --component BrakeController \
  --rig rigs/bench.toml

# 6. Start the cloud agent
crucihil agent --rig rigs/bench.toml