Skip to content
PYTHON · NO SPECIAL LANGUAGE

How coding works in Ecuhawk

Most work needs no code at all. When you do need code, it is Python, the language your team already knows, not a tool-only language that takes weeks to learn.

panel script · Overview
@on_change("Pack.CellDeltaMax")
def imbalance(value):
    set_prop("WarnLamp", "visible", value > 0.030)
    if value > 0.030:
        log("Cell imbalance above 30 mV")
✓ Syntax OK · running

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

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.

Join the private beta.

Tell us how you test today. It takes about a minute. Beta members get early access, a vote on the roadmap and a direct line to our engineers.

Become a design partner

Run Ecuhawk on your own bench before launch and shape it with us. We are taking five teams.

Prefer email? hello@ecuhawk.com

Which features matter most? Pick up to three.