In short: Ecuhawk has four levels. 1) No-code steps in the test table and panel designer. 2) Tests saved as readable YAML files. 3) Python scripts behind panels and, during the beta, inside tests. 4) An MCP interface so AI agents can read signals, run tests and draft new ones. There is no proprietary scripting language.
1. No code: steps and panels
Tests are built from ready-made steps in the test table, and panels are drawn in the panel designer. Signals and diagnostic services come from your project files, so most benches need no code at all.
2. Readable test files
Every test is saved as a .test.yaml file. You can switch the editor to a YAML view, review changes in Git and generate tests from other tools.
id: TC-021
title: Under-voltage warning
requirements: [REQ-PWR-07]
setup:
- psu_voltage: { volts: 13.5 }
- relay: { channel: KL15, state: on }
main:
- wait_until: { cond: "ECU.State == RUN", timeout: 500 ms }
- ramp: { target: PSU.Voltage, to: 9.0, duration: 2 s }
- check: { target: LowVoltageWarning, op: "==", expected: 1 }
cleanup:
- safe_state: {}
A real test file, shortened.
3. Python where you need it
- Panel scripts (built): put Python behind a panel or any control. Scripts react to signal changes, clicks and timers, write signals, control the bus, change control properties, open screens and write to the log. The script editor checks syntax and shows the output.
- Python in tests (in development): call your own Python functions as test steps for custom calculations, lab equipment or file handling.
- Calculated signals (built): formulas with filters, averages, peaks and derivatives, without writing a script.
4. AI agents through MCP
Ecuhawk's engine has an MCP server, the standard way AI agents use tools. An agent such as Claude Code can read signal values and limits, check the bench status, send UDS read requests, run tests and draft new test files from requirement documents. Writes are limited by the same bench limits as a person, every write is logged, and the emergency stop is always available. See AI test automation.
Coming from CAPL?
CAPL is the scripting language of Vector CANoe. In Ecuhawk, the jobs CAPL usually does are covered by built-in features: rest-bus simulation from a DBC, fault injection, test steps and panel scripts. Where you still need code, you write Python.
Questions
What programming language does Ecuhawk use?
Python. Panel scripts are Python, and Python test steps are being added during the beta. Most tests and panels need no code at all.
Do I need to learn CAPL to use Ecuhawk?
No. Ecuhawk does not use CAPL. Simulation, fault injection and tests are built in, and custom logic is written in Python.
Can I keep my tests in Git?
Yes. Tests are plain YAML files in the project folder.
Can AI agents control Ecuhawk?
Yes. Ecuhawk includes an MCP server so AI agents can read signals, run tests and draft test files, always within the bench limits and with every write logged.