This page documents YAZE automation APIs for tools and integrations. It covers the HTTP Agent API (REST) and the gRPC automation services.
The HTTP API is exposed by both z3ed (CLI) and the desktop app when enabled.
Build with HTTP API support:
Start the server:
Notes:
--http-host controls the host shown in z3ed output (useful for clients)./api/v1/symbols, which returns plain text by default). Use OPTIONS for a 204 preflight response with Access-Control-Allow-* headers.Use the helper script to validate core endpoints:
The script checks health/models/symbols plus POST endpoints and basic CORS headers.
GET /api/v1/health
GET /api/v1/models
?refresh=1 (or ?refresh=true / ?refresh) to bypass the server-side model cache.name, display_name, provider, description, family, parameter_size, quantization, size_bytes, and is_local.display_name falls back to name if the provider does not supply a friendly label.GET /api/v1/symbols?format=mesen|asar|wla|bsnes
Accept: application/json for JSON.400 for unsupported format values (JSON error with supported formats).503 if no symbol provider is available.POST /api/v1/navigate
{ "address": 4660, "source": "tool" }400 on invalid JSON payloads.POST /api/v1/breakpoint/hit
{ "address": 4660, "source": "mesen", "cpu_state": { ... } }cpu_state payload is stored for later analysis.400 on invalid JSON payloads.POST /api/v1/state/update
{ ... } (schema is evolving; used for panel state updates).400 on invalid JSON payloads.POST /api/v1/window/show POST /api/v1/window/hide
501 if unsupported.Errors return JSON with an error field and an appropriate HTTP status code:
The gRPC services are provided by the desktop app for automation, ROM access, and emulator debugging. They are available only in builds with gRPC enabled (YAZE_ENABLE_GRPC / YAZE_WITH_GRPC).
--server also enables automation in headless/service mode.
EmulatorService - src/protos/emulator_service.protoRomService - src/protos/rom_service.protoCanvasAutomation - src/protos/canvas_automation.protoImGuiTestHarness - src/protos/imgui_test_harness.protoVisualService - src/protos/visual_service.protoMost services require a ROM to be loaded and will return FAILED_PRECONDITION when unavailable.
The helper script uses grpcurl with the ImGui test harness Ping endpoint:
You can also call grpcurl directly (no reflection enabled):
These APIs do not require authentication. Keep them on localhost unless you intentionally expose them and understand the risks.