What we ship
There are no official Engine client libraries today. By design — the API is small enough that a wrapper is more code than the calls themselves. The quickstarts at curl, Python, and Node each show a complete client in around 30 lines.Using the Engine from your language of choice
Whatever HTTP client you’d reach for is what the Engine wants:
The same three things matter regardless of language:
- Set
X-Engine-Keyon every request except/health. - Disable response buffering for streaming (so you see SSE events as they arrive).
- Set the read timeout high (or
None) — turns can take minutes.
Wrapping the API: when it’s worth it
A thin client wrapper makes sense when:- You’ll have many call sites in your codebase and want shared retry logic.
- You want strongly-typed event handling (e.g. TypeScript discriminated unions for SSE event types).
- You need to mock the Engine in tests.
- You have one or two call sites.
- The API is moving and the wrapper would lag.
What a useful wrapper has
Resilient streaming wrapper
A wrapper that handles reconnection cleanly is worth the lines:Roadmap
Official client libraries are planned for:- Python —
engine-client(or similar), pip-installable. - TypeScript — npm package, isomorphic (Node + browser).
- Type-safe event handling.
- Built-in retry / reconnection.
- Async iterators / generators for streams.
- Mock support for tests.
See also
- Quickstart with curl — minimal shell client.
- Quickstart with Python —
httpx-based. - Quickstart with Node —
fetch-based. - Streaming — patterns for consuming the SSE stream.

