analyze_component
Extract the signal interface contract of a C/C++ firmware SWC. Maps AUTOSAR RTE and COM module identifiers to DBC signal names.
crucihil discover
Probe hardware and generate a ready-to-use rig TOML. Describes CAN interfaces, bitrates, and ECU topology automatically.
generate_test_suite
Scaffold a YAML manifest and matching Python test stubs from a natural-language description, with signal names auto-extracted from your DBC.
BYOK — Bring Your Own Key
CruciHiL does not include or host an AI model. Every AI feature requires an API key from a supported provider. This means:- You control the model and the cost
- No data leaves your environment via CruciHiL — queries go directly from your machine to the AI provider
- You can use whichever model your team already has access to
Supported providers
| Provider | Environment variable | Default model |
|---|---|---|
| Anthropic (Claude) | ANTHROPIC_API_KEY | claude-sonnet-4-6 |
| OpenAI (GPT) | OPENAI_API_KEY | gpt-4o |
| Google (Gemini) | GOOGLE_API_KEY | gemini-2.0-flash |
Provider auto-detection
All AI features check for API keys in this order:ANTHROPIC_API_KEYOPENAI_API_KEYGOOGLE_API_KEY
--provider if you want to force a specific provider:
Setting up API keys
~/.bashrc, ~/.zshrc) to persist across sessions.
No AI key? No problem
All AI features degrade gracefully when no key is present:crucihil analyze— returns the extracted identifiers and corpus size without signal matching. You can review identifiers manually.crucihil discover— falls back to--no-aimode and generates a minimal stub TOML with# TODO:markers.generate_test_suite— writes static placeholder stubs instead of AI-generated assertions.
MCP + AI = stronger together
The MCP server exposes 14 tools to AI assistants (Claude Desktop, Copilot, Cursor). When an AI assistant has access to both the MCP tools and a real CruciHiL deployment, it can:- Query which rigs are connected
- Trigger test runs and poll for results
- Explain why a specific test failed, with signal trace context
- Generate new test suites from natural language
- Map firmware SWC source to DBC signals
What the AI sees
CruciHiL sends the AI:- For
analyze_component: a filtered list of C/C++ identifiers (up to 500) and the DBC signal corpus (allMessageName.SignalNamepairs). No source code text. - For
discover: the output of hardware probe commands (ip link,/proc/net/dev) plus any description you provide. - For
generate_test_suite: signal names from your DBC, hardware capability context from the rig TOML, and your natural-language description.