Transport and deployment

2.1 Default deployment

A service MUST listen on the loopback addresses 127.0.0.1 and ::1 by default. The conventional port is 17832, which makes the default base address http://127.0.0.1:17832.

Item Value
Listen addresses 127.0.0.1 and ::1
Transport HTTP/1.1 or HTTP/2 carrying JSON
Streaming Server-sent events, Content-Type: text/event-stream
Core interface prefix /lmsp/v1
OpenAI-compatible prefix /v1
Service description GET /.well-known/lmsp.json
Machine-readable contract GET /lmsp/v1/openapi.json
Optional local channel Unix domain socket or Windows named pipe

Requests and responses use JSON in UTF-8 (Content-Type: application/json), except streams (text/event-stream) and errors (application/problem+json). Timestamps are integers: seconds since the Unix epoch. Identifiers are opaque strings; a type prefix such as resp_ or task_ is RECOMMENDED.

The interface contract is an OpenAPI 3.2 document. OpenAPI 3.2 can describe server-sent events, JSON Lines and JSON Sequences, so the streaming endpoints are specified in the same document as the rest. The contract for this version is published at /lmsp/1.0/openapi.json.

A service MAY also accept connections on a Unix domain socket or a Windows named pipe with the same HTTP semantics. In 1.0, how such endpoints are advertised is left to extensions.

2.2 Always-on operation

A service SHOULD be hosted by the operating system: launchd on macOS, systemd on Linux and the Windows Service manager on Windows.

The service process and the model processes SHOULD be separate. A model crash SHOULD affect only the tasks that use that model. It SHOULD NOT make service discovery, the model catalog or queries about earlier tasks unavailable.