Skip to content

Services and Deployment

ReMe can run as a local HTTP service, a standalone MCP server, or a one-shot CLI Job. The default starts HTTP on 127.0.0.1:2333 and serves JSON, SSE, streamable HTTP MCP, and optional ReMe Studio from one process.

HTTP API

bash
reme start
reme start service.host=127.0.0.1 service.port=8181

Regular Jobs become POST /<job-name>:

bash
curl -s http://127.0.0.1:2333/search \
  -H 'Content-Type: application/json' \
  -d '{"query":"user preferences","limit":5}'

Job arguments live at the request body's top level. A regular response follows the Response schema:

json
{"success": true, "answer": "...", "metadata": {}}

Unhandled Step failures become unsuccessful responses.

Streaming and SSE

Jobs with backend: stream also use POST /<job-name>, returning text/event-stream. Error paths emit an error chunk and always terminate the stream. The default chat Job is streaming:

bash
curl -N http://127.0.0.1:2333/chat \
  -H 'Content-Type: application/json' \
  -d '{"query":"Summarize my long-term preferences"}'

MCP does not expose Stream Jobs.

MCP

The default HTTP service mounts streamable HTTP MCP at /mcp:

yaml
service:
  backend: http
  mcp_enabled: true
  mcp_path: /mcp
  mcp_stateless_http: false

For a standalone MCP service:

bash
reme start service.backend=mcp service.transport=stdio
reme start service.backend=mcp service.transport=sse service.port=2333
reme start service.backend=mcp service.transport=streamable-http service.port=2333

MCP tools come from non-stream Jobs with enable_serve: true. Use service.jobs as an allowlist. injected_job_kwargs adds server-managed values that callers cannot override.

yaml
service:
  backend: http
  jobs: [search, read, traverse, auto_memory]
  injected_job_kwargs:
    tenant_id: local-user
  tool_error_on_failure: true

ReMe Studio

After installing reme-ai[web] or reme-ai[core], the default HTTP origin also serves Studio:

text
http://127.0.0.1:2333/

Disable it with service.web_enabled=false or select a build with service.web_static_dir. Missing static assets do not prevent the Job API from starting.

One-shot Jobs

bash
reme start job=search query="user preferences" limit=5

This selects the one-shot CLI Service while retaining the normal Application, Component, and Job lifecycle.

Service discovery

bash
reme find_reme

Ordinary reme <action> commands prefer the running service's actual backend, host, port, and transport. They fall back to local configuration only when no service is discovered.

Security boundary

ReMe is local-first:

  • the default binds to 127.0.0.1;
  • HTTP CORS allows any origin;
  • Jobs may write, move, or delete files;
  • the service layer has no general-purpose user authentication.

Do not expose the default service directly to the public internet. For remote access, place it on a controlled network or behind an authenticated TLS reverse proxy, apply access controls and request-size limits, and expose only necessary Jobs.

OpenAPI

FastAPI exposes the active endpoints through /docs, /redoc, and /openapi.json. The Studio SPA fallback preserves these reserved paths.

Released under the Apache-2.0 License.